mightyscape-1.2/extensions/fablabchemnitz/dxf_dwg_importer/node_modules/dxf/src/handlers/entity/attdef.js

320 lines
7.3 KiB
JavaScript

import common from './common'
import { assign as assignMTEXT } from './mtext'
import { assign as assignTEXT } from './text'
export const TYPE = 'ATTDEF'
export const process = (tuples) => {
return tuples.reduce(
(entity, tuple) => {
const type = tuple[0]
const value = tuple[1]
assign(entity, type, value)
return entity
},
{
type: TYPE,
subclassMarker: 'AcDbText',
thickness: 0,
scaleX: 1,
mtext: {},
text: {},
},
)
}
export const assign = (entity, type, value) => {
switch (type) {
case 100: {
entity.subclassMarker = value
break
}
case 1:
switch (entity.subclassMarker) {
case 'AcDbText':
assignTEXT(entity.text, type, value)
break
case 'AcDbMText':
assignMTEXT(entity.mtext, type, value)
break
}
break
case 2:
switch (entity.subclassMarker) {
case 'AcDbAttributeDefinition':
case 'AcDbAttribute':
entity.tag = value
break
case 'AcDbXrecord':
entity.attdefFlag = value
break
}
break
case 3:
switch (entity.subclassMarker) {
case 'AcDbAttributeDefinition':
entity.prompt = value
break
case 'AcDbMText':
assignMTEXT(entity.mtext, type, value)
break
}
break
case 7:
switch (entity.subclassMarker) {
case 'AcDbAttributeDefinition':
case 'AcDbAttribute':
assignTEXT(entity.text, type, value)
break
case 'AcDbMText':
assignMTEXT(entity.mtext, type, value)
break
}
break
case 10:
switch (entity.subclassMarker) {
case 'AcDbText':
assignTEXT(entity.text, type, value)
break
case 'AcDbMText':
assignMTEXT(entity.mtext, type, value)
break
case 'AcDbXrecord':
entity.x = value
break
}
break
case 20:
switch (entity.subclassMarker) {
case 'AcDbText':
assignTEXT(entity.text, type, value)
break
case 'AcDbMText':
assignMTEXT(entity.mtext, type, value)
break
case 'AcDbXrecord':
entity.y = value
break
}
break
case 30:
switch (entity.subclassMarker) {
case 'AcDbText':
assignTEXT(entity.text, type, value)
break
case 'AcDbMText':
assignMTEXT(entity.mtext, type, value)
break
case 'AcDbXrecord':
entity.z = value
break
}
break
case 11:
switch (entity.subclassMarker) {
case 'AcDbAttributeDefinition':
case 'AcDbAttribute':
entity.x2 = value
break
case 'AcDbMText':
assignMTEXT(entity.mtext, type, value)
break
}
break
case 21:
switch (entity.subclassMarker) {
case 'AcDbAttributeDefinition':
case 'AcDbAttribute':
entity.y2 = value
break
case 'AcDbMText':
assignMTEXT(entity.mtext, type, value)
break
}
break
case 31:
switch (entity.subclassMarker) {
case 'AcDbAttributeDefinition':
case 'AcDbAttribute':
entity.z2 = value
break
case 'AcDbMText':
assignMTEXT(entity.mtext, type, value)
break
}
break
case 39:
assignTEXT(entity.text, type, value)
break
case 40:
switch (entity.subclassMarker) {
case 'AcDbText':
assignTEXT(entity.text, type, value)
break
case 'AcDbMText':
assignMTEXT(entity.mtext, type, value)
break
case 'AcDbXrecord':
entity.annotationScale = value
break
}
break
case 41:
switch (entity.subclassMarker) {
case 'AcDbAttributeDefinition':
case 'AcDbAttribute':
assignTEXT(entity.text, type, value)
break
case 'AcDbMText':
assignMTEXT(entity.mtext, type, value)
break
}
break
case 42:
case 43:
case 44:
case 45:
assignMTEXT(entity.mtext, type, value)
break
case 46:
entity.mtext.annotationHeight = value
break
case 48:
case 49:
assignMTEXT(entity.mtext, type, value)
break
case 50:
switch (entity.subclassMarker) {
case 'AcDbAttributeDefinition':
case 'AcDbAttribute':
assignTEXT(entity.text, type, value)
break
case 'AcDbMText':
{
assignMTEXT(entity.mtext, type, value)
}
break
}
break
case 51:
assignTEXT(entity.text, type, value)
break
case 63:
assignMTEXT(entity.mtext, type, value)
break
case 70:
{
switch (entity.subclassMarker) {
case 'AcDbAttributeDefinition':
case 'AcDbAttribute':
entity.attributeFlags = value
break
case 'AcDbXrecord':
{
if (typeof entity.mTextFlag === 'undefined')
entity.mTextFlag = value
else if (typeof entity.isReallyLocked === 'undefined')
entity.isReallyLocked = value
else entity.secondaryAttdefCount = value
}
break
}
}
break
case 71:
case 72:
switch (entity.subclassMarker) {
case 'AcDbAttributeDefinition':
case 'AcDbAttribute':
assignTEXT(entity.text, type, value)
break
case 'AcDbMText':
assignMTEXT(entity.mtext, type, value)
break
}
break
case 73:
switch (entity.subclassMarker) {
case 'AcDbAttributeDefinition':
case 'AcDbAttribute':
entity.fieldLength = value
break
case 'AcDbMText':
assignMTEXT(entity.mtext, type, value)
break
}
break
case 74:
assignTEXT(entity.text, 73, value)
break
case 75:
case 76:
case 78:
case 79:
assignMTEXT(entity.mtext, type, value)
break
case 90:
assignMTEXT(entity.mtext, type, value)
break
case 210:
case 220:
case 230:
switch (entity.subclassMarker) {
case 'AcDbAttributeDefinition':
case 'AcDbAttribute':
assignTEXT(entity.mtext, type, value)
break
case 'AcDbMText':
assignMTEXT(entity.mtext, type, value)
break
}
break
case 280:
{
switch (entity.subclassMarker) {
case 'AcDbAttributeDefinition':
case 'AcDbAttribute':
entity.lock = value
break
case 'AcDbXrecord':
entity.clone = true
break
}
}
break
case 340:
entity.attdefHandle = value
break
case 420:
case 421:
case 422:
case 423:
case 424:
case 425:
case 426:
case 427:
case 428:
case 429:
case 430:
case 431:
case 432:
case 433:
case 434:
case 435:
case 436:
case 437:
case 438:
case 439:
case 441:
assignMTEXT(entity.mtext, type, value)
break
default:
Object.assign(entity, common(type, value))
break
}
}
export default { TYPE, process, assign }