The common package provides shared utilities and base classes that are used across the RealDWG-Web ecosystem. This package contains fundamental components for color management, event handling, logging, performance monitoring, and file loading operations.
This package serves as the foundation for the RealDWG-Web project, providing essential utilities and base classes that mimic AutoCAD ObjectARX's AcCm (Common) classes. It includes color management, event dispatching, logging utilities, performance monitoring, and file loading capabilities.
npm install @mlightcad/common
import { AcCmColor, AcCmColorUtil } from '@mlightcad/common';
// Create a color from AutoCAD color index
const color = new AcCmColor(1); // Red
// Create a color from RGB values
const rgbColor = new AcCmColor(255, 0, 0);
// Convert between formats
const rgb = AcCmColorUtil.toRgb(color);
const index = AcCmColorUtil.toColorIndex(rgbColor);
import { AcCmEventManager, AcCmEventDispatcher } from '@mlightcad/common';
// Create an event dispatcher
const dispatcher = new AcCmEventDispatcher();
// Register an event listener
dispatcher.addEventListener('fileLoaded', (event) => {
console.log('File loaded:', event.data);
});
// Dispatch an event
dispatcher.dispatchEvent('fileLoaded', { fileName: 'drawing.dwg' });
import { AcCmLogUtil } from '@mlightcad/common';
// Configure logging
AcCmLogUtil.setLevel('info');
// Log messages
AcCmLogUtil.info('Application started');
AcCmLogUtil.warn('Deprecated feature used');
AcCmLogUtil.error('Failed to load file', error);
import { AcCmFileLoader, AcCmLoadingManager } from '@mlightcad/common';
// Create a file loader
const loader = new AcCmFileLoader();
// Load a file with progress tracking
loader.load('drawing.dwg', {
onProgress: (progress) => {
console.log(`Loading: ${progress}%`);
},
onComplete: (data) => {
console.log('File loaded successfully');
},
onError: (error) => {
console.error('Failed to load file:', error);
}
});
// Use loading manager for multiple files
const manager = new AcCmLoadingManager();
manager.addLoader(loader);
manager.start();
For detailed API documentation, visit the RealDWG-Web documentation.
This package is part of the RealDWG-Web monorepo. Please refer to the main project README for contribution guidelines.