@bitbybit-dev/base
Version:
Bit By Bit Developers Base CAD Library to Program Geometry
122 lines (121 loc) • 3.07 kB
TypeScript
import * as Inputs from "../../../inputs";
export declare class DxfGenerator {
private entityHandle;
private colorFormat;
private acadVersion;
/**
* Generate a complete DXF file content from path-based entities
*/
generateDxf(dxfInputs: Inputs.IO.DxfModelDto): string;
/**
* Generate DXF header section
*/
private generateHeader;
/**
* Generate DXF tables section (layers, line types, etc.)
*/
private generateTables;
/**
* Generate line type table
*/
private generateLineTypeTable;
/**
* Generate text style table
*/
private generateStyleTable;
/**
* Generate VPORT table (viewport configuration)
*/
private generateVportTable;
/**
* Generate VIEW table (empty but required for AC1009)
*/
private generateViewTable;
/**
* Generate UCS table (user coordinate system - empty but required for AC1009)
*/
private generateUcsTable;
/**
* Generate APPID table (application ID - required for AC1009)
*/
private generateAppidTable;
/**
* Generate DIMSTYLE table (dimension style - empty but required for AC1009)
*/
private generateDimstyleTable;
/**
* Generate blocks section (empty but required)
*/
private generateBlocks;
/**
* Generate layer table based on unique layers in all parts
*/
private generateLayerTable;
/**
* Generate DXF entities section with all path segments
*/
private generateEntities;
/**
* Generate entity for a single segment based on its type
*/
private generateSegmentEntity;
/**
* Type guard for line segments
*/
private isLineSegment;
/**
* Type guard for arc segments
*/
private isArcSegment;
/**
* Type guard for circle segments
*/
private isCircleSegment;
/**
* Type guard for polyline segments
*/
private isPolylineSegment;
/**
* Type guard for spline segments
*/
private isSplineSegment;
/**
* Generate a LINE entity
*/
private generateLineEntity;
/**
* Generate a CIRCLE entity
*/
private generateCircleEntity;
/**
* Generate an ARC entity
*/
private generateArcEntity;
/**
* Generate a LWPOLYLINE entity
*/
private generatePolylineEntity;
/**
* Generate a SPLINE entity
*/
private generateSplineEntity;
/**
* Check if polyline should be closed (first and last points are the same)
*/
private isClosedPolyline;
/**
* Get next entity handle as hex string
*/
private getNextHandle;
/**
* Convert color to DXF format
* Accepts hex color (#RRGGBB) or ACI color index (1-255)
* Returns appropriate DXF color codes based on colorFormat setting
*/
private convertColorToDxf;
/**
* Convert RGB values to nearest AutoCAD Color Index (ACI)
* Uses a simplified mapping to standard ACI colors
*/
private rgbToAciColorIndex;
}