69 lines
2.0 KiB
JavaScript
69 lines
2.0 KiB
JavaScript
import fs from 'fs'
|
|
import { join } from 'path'
|
|
import expect from 'expect'
|
|
|
|
import { parseString } from '../../src'
|
|
const dxfContents = fs.readFileSync(
|
|
join(__dirname, '/../resources/dimensions.dxf'),
|
|
'utf-8',
|
|
)
|
|
|
|
const verticalDxfDimension = fs.readFileSync(
|
|
join(__dirname, '/../resources/dimension-vertical.dxf'),
|
|
'utf-8',
|
|
)
|
|
|
|
describe('DIMENSION', () => {
|
|
it('can be parsed', () => {
|
|
const parsed = parseString(dxfContents)
|
|
const entities = parsed.entities
|
|
const dimensions = entities.filter((e) => e.type === 'DIMENSION')
|
|
const header = parsed.header
|
|
expect(dimensions.length).toEqual(2)
|
|
|
|
expect(dimensions[0]).toEqual({
|
|
type: 'DIMENSION',
|
|
block: '*D1',
|
|
dimensionType: 0,
|
|
handle: '5C',
|
|
attachementPoint: 5,
|
|
start: { x: 90, y: 20, z: 0 },
|
|
textMidpoint: { x: 50, y: 21.875, z: 0 },
|
|
measureStart: { x: 10, y: 10, z: 0 },
|
|
measureEnd: { x: 90, y: 10, z: 0 },
|
|
extrudeDirection: { x: 0, y: 0, z: 1 },
|
|
textRotation: 0,
|
|
uniqueBlockReference: true,
|
|
layer: '0',
|
|
colorNumber: 256,
|
|
lineTypeName: 'ByLayer',
|
|
})
|
|
|
|
expect(header.dimArrowSize).toEqual(2.5)
|
|
})
|
|
it('can handle rotation for vertical dimension', () => {
|
|
const parsed = parseString(verticalDxfDimension)
|
|
const entities = parsed.entities
|
|
const dimensions = entities.filter((e) => e.type === 'DIMENSION')
|
|
const header = parsed.header
|
|
expect(dimensions.length).toEqual(1)
|
|
|
|
expect(dimensions[0]).toEqual({
|
|
type: 'DIMENSION',
|
|
handle: '3026C',
|
|
dimensionType: 0,
|
|
uniqueBlockReference: true,
|
|
userDefinedLocation: true,
|
|
attachementPoint: 5,
|
|
start: { x: 88.15777111112607, y: 148.1076419471065, z: 0 },
|
|
textMidpoint: { x: 88.15777111112607, y: 121.3576419471065, z: 0 },
|
|
measureStart: { x: 187.8323741464143, y: 148.1076419471065, z: 0 },
|
|
measureEnd: { x: 109.5740206784428, y: 94.60764194710634, z: 0 },
|
|
rotation: 90,
|
|
layer: '0',
|
|
})
|
|
|
|
expect(header.dimArrowSize).toEqual(3)
|
|
})
|
|
})
|