import type { Point2D, Point3D } from './common'; import type { DXFTuple } from './dxf'; /** * Partial point for parsing (all coordinates optional) */ export type PartialPoint2D = Partial; /** * Partial 3D point for parsing (all coordinates optional) */ export type PartialPoint3D = Partial; /** * DXF Header section result */ export interface ParsedHeader { /** Minimum drawing extents */ extMin?: PartialPoint3D; /** Maximum drawing extents */ extMax?: PartialPoint3D; /** Drawing units for measurement (0=English, 1=Metric) */ measurement?: string | number; /** Default drawing units for AutoCAD DesignCenter blocks */ insUnits?: string | number; /** Dimension arrow size */ dimArrowSize?: string | number | Record; } /** * Block table entry * Internal representation during DXF parsing */ export interface BlockInternal { /** Block name */ name?: string | number; /** Base point X coordinate */ x?: string | number; /** Base point Y coordinate */ y?: string | number; /** Base point Z coordinate */ z?: string | number; /** External reference path */ xref?: string | number; /** Paper space flag */ paperSpace?: string | number; /** Layout name reference */ layout?: string | number; /** Entities within this block */ entities?: any[]; } /** * Line type element definition * Represents a single element in a complex line type pattern */ export interface LTypeElement { /** Length of the element */ length?: string | number; /** Scale factors for the element */ scales?: Array; /** Offset positions for the element */ offset?: Array<{ x: string | number; y: string | number; }>; /** Shape definition code */ shape?: string | number; /** Shape number reference */ shapeNumber?: string | number; /** Style handle reference */ styleHandle?: string | number; /** Rotation angle */ rotation?: string | number; /** Text content for text elements */ text?: string | number; } /** * Line Type (LTYPE) table entry * Internal representation during DXF parsing */ export interface LTypeInternal { type: string; /** Pattern elements that define the line type */ pattern: LTypeElement[]; /** Line type name */ name?: string | number; /** Line type description */ description?: string | number; /** Standard flag values (bit-coded) */ flag?: string | number; /** Alignment code (ASCII code for 'A' = 65) */ alignment?: string | number; /** Number of elements in the pattern */ elementCount?: number; /** Total pattern length */ patternLength?: string | number; } /** * Layer table entry * Internal representation during DXF parsing */ export interface LayerInternal { type: string; /** Layer name */ name?: string | number; /** Line type name for this layer */ lineTypeName?: string | number; /** ACI color number */ colorNumber?: string | number; /** Standard flags (bit-coded) */ flags?: string | number; /** Plot flag */ plot?: boolean; /** Line weight enumeration */ lineWeightEnum?: string | number; } /** * Application ID (APPID) table entry * Minimal internal representation during DXF parsing */ export interface AppIdInternal { type: string; /** Application name */ name?: string | number; /** Standard flags (bit-coded) */ flags?: string | number; } /** * Block Record (BLOCK_RECORD) table entry * Minimal internal representation during DXF parsing */ export interface BlockRecordInternal { type: string; /** Block record name */ name?: string | number; /** Standard flags (bit-coded) */ flags?: string | number; } /** * User Coordinate System (UCS) table entry * Minimal internal representation during DXF parsing */ export interface UcsInternal { type: string; /** UCS name */ name?: string | number; /** Standard flags (bit-coded) */ flags?: string | number; } /** * View (VIEW) table entry * Minimal internal representation during DXF parsing */ export interface ViewInternal { type: string; /** View name */ name?: string | number; /** Standard flags (bit-coded) */ flags?: string | number; } /** * Text Style (STYLE) table entry * Internal representation during DXF parsing */ export interface StyleInternal { type: string; /** Style name */ name?: string | number; /** Line type name */ lineTypeName?: string | number; /** Fixed text height (0 if variable) */ fixedTextHeight?: string | number; /** Width factor */ widthFactor?: string | number; /** Oblique angle */ obliqueAngle?: string | number; /** Standard flags (bit-coded) */ flags?: string | number; /** Last height used */ lastHeightUsed?: string | number; /** Primary font file name */ primaryFontFileName?: string | number; /** Big font file name */ bigFontFileName?: string | number; } /** * Viewport (VPORT) table entry * Internal representation during DXF parsing */ export interface VPortInternal { type: string; /** Viewport name */ name?: string | number; /** Handle reference */ handle?: string | number; /** Standard flags (bit-coded) */ flags?: string | number; /** Lower-left corner coordinates */ lowerLeft: { x?: number; y?: number; }; /** Upper-right corner coordinates */ upperRight: { x?: number; y?: number; }; /** Center point coordinates */ center: { x?: number; y?: number; }; /** Snap settings */ snap?: Record; /** Snap spacing */ snapSpacing: { x?: number; y?: number; }; /** Grid spacing */ gridSpacing: { x?: number; y?: number; }; /** View direction from target */ direction: { x?: number; y?: number; z?: number; }; /** View target point */ target: { x?: number; y?: number; z?: number; }; /** View height */ height?: number; /** Snap rotation angle */ snapAngle?: number; /** View twist angle */ angle?: number; /** UCS origin X coordinate */ x?: number; /** UCS origin Y coordinate */ y?: number; /** UCS origin Z coordinate */ z?: number; /** UCS X-axis X component */ xAxisX?: number; /** UCS X-axis Y component */ xAxisY?: number; /** UCS X-axis Z component */ xAxisZ?: number; /** View elevation */ elevation?: number; } /** * Layout object entry * Internal representation during DXF parsing */ export interface LayoutInternal { /** Layout name */ name?: string | number; /** Handle reference */ handle?: string | number; /** Minimum limits X coordinate */ minLimitX?: number; /** Minimum limits Y coordinate */ minLimitY?: number; /** Maximum limits X coordinate */ maxLimitX?: number; /** Maximum limits Y coordinate */ maxLimitY?: number; /** Base point X coordinate */ x?: number; /** Base point Y coordinate */ y?: number; /** Base point Z coordinate */ z?: number; /** Minimum extents X coordinate */ minX?: number; /** Minimum extents Y coordinate */ minY?: number; /** Minimum extents Z coordinate */ minZ?: number; /** Maximum extents X coordinate */ maxX?: number; /** Maximum extents Y coordinate */ maxY?: number; /** Maximum extents Z coordinate */ maxZ?: number; /** Layout flag (PSLTSCALE or LIMCHECK) */ flag?: 'PSLTSCALE' | 'LIMCHECK'; /** Tab order */ tabOrder?: string | number; /** Elevation */ elevation?: number; /** UCS origin X coordinate */ ucsX?: number; /** UCS origin Y coordinate */ ucsY?: number; /** UCS origin Z coordinate */ ucsZ?: number; /** UCS X-axis X component */ ucsXaxisX?: number; /** UCS X-axis Y component */ ucsXaxisY?: number; /** UCS X-axis Z component */ ucsXaxisZ?: number; /** UCS Y-axis X component */ ucsYaxisX?: number; /** UCS Y-axis Y component */ ucsYaxisY?: number; /** UCS Y-axis Z component */ ucsYaxisZ?: number; /** UCS orthographic type */ ucsType?: 'NOT ORTHOGRAPHIC' | 'TOP' | 'BOTTOM' | 'FRONT' | 'BACK' | 'LEFT' | 'RIGHT'; /** Associated table record handle */ tableRecord?: string | number; /** Last active viewport handle */ lastActiveViewport?: string | number; /** Shade plot mode */ shadePlot?: string | number; } /** * Dimension Style (DIMSTYLE) table entry * Internal representation during DXF parsing */ export interface DimStyleInternal { type: string; /** Dimension style name */ name?: string | number; /** Standard flags (bit-coded) */ flags?: string | number; /** DIMPOST - General dimensioning suffix */ dimPost?: string | number; /** DIMAPOST - Alternate dimensioning suffix */ dimAPost?: string | number; /** DIMSCALE - Overall dimensioning scale factor */ dimScale?: number; /** DIMASZ - Dimensioning arrow size */ dimAsz?: number; /** DIMEXO - Extension line offset */ dimExo?: number; /** DIMDLI - Dimension line increment */ dimDli?: number; /** DIMEXE - Extension line extension */ dimExe?: number; /** DIMRND - Rounding value for dimension distances */ dimRnd?: number; /** DIMDLE - Dimension line extension */ dimDle?: number; /** DIMTP - Plus tolerance */ dimTp?: number; /** DIMTM - Minus tolerance */ dimTm?: number; /** DIMTXT - Dimensioning text height */ dimTxt?: number; /** DIMCEN - Size of center mark/lines */ dimCen?: number; /** DIMTSZ - Dimensioning tick size */ dimTsz?: number; /** DIMALTF - Alternate unit scale factor */ dimAltf?: number; /** DIMLFAC - Linear measurements scale factor */ dimLfac?: number; /** DIMTVP - Text vertical position */ dimTvp?: number; /** DIMTFAC - Dimension tolerance display scale factor */ dimTfac?: number; /** DIMGAP - Dimension line gap */ dimGap?: number; /** DIMALTRND - Determines rounding of alternate units */ dimAltRnd?: number; /** DIMTOL - Dimension tolerances generated if nonzero */ dimTol?: number; /** DIMLIM - Dimension limits generated if nonzero */ dimLim?: number; /** DIMTIH - Text inside horizontal if nonzero */ dimTih?: number; /** DIMTOH - Text outside horizontal if nonzero */ dimToh?: number; /** DIMSE1 - First extension line suppressed if nonzero */ dimSe1?: number; /** DIMSE2 - Second extension line suppressed if nonzero */ dimSe2?: number; /** DIMTAD - Text above dimension line if nonzero */ dimTad?: number; /** DIMZIN - Controls suppression of zeros for primary unit values */ dimZin?: number; /** DIMAZIN - Controls suppression of zeros for angular dimensions */ dimAzin?: number; /** DIMALT - Alternate unit dimensioning performed if nonzero */ dimAlt?: number; /** DIMALTD - Alternate unit decimal places */ dimAltd?: number; /** DIMTOFL - Force text inside extensions if nonzero */ dimTofl?: number; /** DIMSAH - Use separate arrow blocks if nonzero */ dimSah?: number; /** DIMTIX - Force text inside extensions if nonzero */ dimTix?: number; /** DIMSOXD - Suppress outside-extensions dimension lines if nonzero */ dimSoxd?: number; /** DIMCLRD - Dimension line color */ dimClrd?: number; /** DIMCLRE - Dimension extension line color */ dimClre?: number; /** DIMCLRT - Dimension text color */ dimClrt?: number; /** DIMADEC - Number of precision places for angular dimensions */ dimAdec?: number; /** DIMUNIT - Units format (obsolete, now use DIMLUNIT AND DIMFRAC) */ dimUnit?: number; /** DIMDEC - Number of decimal places for tolerance values */ dimDec?: number; /** DIMTDEC - Number of decimal places for tolerance values */ dimTdec?: number; /** DIMALTU - Units format for alternate units */ dimAltu?: number; /** DIMALTTD - Number of decimal places for alternate tolerance values */ dimAlttd?: number; /** DIMAUNIT - Angle format for angular dimensions */ dimAunit?: number; /** DIMFRAC - Fraction format */ dimFrac?: number; /** DIMLUNIT - Linear unit format */ dimLunit?: number; /** DIMDSEP - Decimal separator character */ dimDsep?: number; /** DIMTMOVE - Dimension text movement rules */ dimTmove?: number; /** DIMJUST - Horizontal dimension text position */ dimJust?: number; /** DIMSD1 - Suppression of first extension line */ dimSd1?: number; /** DIMSD2 - Suppression of second extension line */ dimSd2?: number; /** DIMTOLJ - Vertical justification for tolerance values */ dimTolj?: number; /** DIMTZIN - Controls suppression of zeros for tolerance values */ dimTzin?: number; /** DIMALTZ - Controls suppression of zeros for alternate unit values */ dimAltz?: number; /** DIMALTTZ - Controls suppression of zeros for alternate tolerance values */ dimAlttz?: number; /** DIMFIT - Fit options (obsolete, now use DIMATFIT and DIMTMOVE) */ dimFit?: number; /** DIMUPT - Cursor functionality for user-positioned text */ dimUpt?: number; /** DIMATFIT - Controls dimension text and arrow placement */ dimAtfit?: number; /** DIMTXSTY - Dimension text style (handle reference) */ dimTxsty?: string | number; /** DIMLDRBLK - Leader arrow block (handle reference) */ dimLdrblk?: string | number; /** DIMBLK - Arrow block (handle reference) */ dimBlk?: string | number; /** DIMBLK1 - First arrow block (handle reference) */ dimBlk1?: string | number; /** DIMBLK2 - Second arrow block (handle reference) */ dimBlk2?: string | number; /** DIMLWD - Dimension line lineweight */ dimLwd?: number; /** DIMLWE - Extension line lineweight */ dimLwe?: number; } /** * DXF Objects section result */ export interface DictionaryObject { type: 'DICTIONARY'; handle?: string | number; ownerHandle?: string | number; entries: Record; } export interface XRecordObject { type: 'XRECORD'; handle?: string | number; ownerHandle?: string | number; /** Raw tuples for downstream consumers (excluding the initial 0/XRECORD tuple). */ tuples: DXFTuple[]; } export interface ImageDefObject { type: 'IMAGEDEF'; handle?: string | number; /** Soft-pointer ID/handle to the ACAD_IMAGE_dict dictionary (when present). */ ownerHandle?: string | number; /** File name of the referenced image. */ fileName?: string; /** Image size in pixels (when available). */ pixelSizeX?: number; pixelSizeY?: number; /** Raw tuples for downstream consumers (excluding the initial 0/IMAGEDEF tuple). */ tuples: DXFTuple[]; } export interface ImageDefReactorObject { type: 'IMAGEDEF_REACTOR'; handle?: string | number; /** Object ID/handle for the associated IMAGE entity (when present). */ imageHandle?: string | number; /** Raw tuples for downstream consumers (excluding the initial 0/IMAGEDEF_REACTOR tuple). */ tuples: DXFTuple[]; } export type UnderlayDefinitionObjectType = 'UNDERLAYDEFINITION' | 'PDFDEFINITION' | 'DWFDEFINITION' | 'DGNDEFINITION'; export interface UnderlayDefinitionObject { type: UnderlayDefinitionObjectType; handle?: string | number; /** Soft-pointer ID/handle to the owning dictionary (when present). */ ownerHandle?: string | number; /** File name or path of the referenced underlay. */ fileName?: string; /** Underlay name within the file (e.g., sheet name). */ underlayName?: string; /** Raw tuples for downstream consumers (excluding the initial 0/ tuple). */ tuples: DXFTuple[]; } export interface DimAssocObject { type: 'DIMASSOC'; handle?: string | number; /** Soft-pointer ID/handle to the owning dictionary (when present). */ ownerHandle?: string | number; /** Raw tuples for downstream consumers (excluding the initial 0/DIMASSOC tuple). */ tuples: DXFTuple[]; } export interface FieldObject { type: 'FIELD'; handle?: string | number; /** Soft-pointer ID/handle to the owning dictionary (when present). */ ownerHandle?: string | number; /** Raw tuples for downstream consumers (excluding the initial 0/FIELD tuple). */ tuples: DXFTuple[]; } export interface ParsedObjects { /** Layout objects */ layouts: LayoutInternal[]; /** DICTIONARY objects keyed by handle */ dictionaries?: Record; /** XRECORD objects keyed by handle */ xRecords?: Record; /** IMAGEDEF objects keyed by handle */ imageDefs?: Record; /** IMAGEDEF_REACTOR objects keyed by handle */ imageDefReactors?: Record; /** UNDERLAYDEFINITION objects keyed by handle */ underlayDefinitions?: Record; /** DIMASSOC objects keyed by handle */ dimAssocs?: Record; /** FIELD objects keyed by handle */ fields?: Record; } //# sourceMappingURL=tables.d.ts.map