电气装置
大家好,我仍然是lisp和VBA的新手,但我正在尝试创建一个lisp例程,从MEP 2009中的一个电气设备中提取样式名称。
例如,如果样式名为“断路器”,我希望能够提取此字符串,并在稍后的文本命令中使用它。
问题是我不知道如何提取这些信息。我一直在搜索通过“assoc”函数使用的dxf代码,但到目前为止还没有找到任何东西。
有谁知道这是怎么做到的,或者我在哪里可以找到电气mep设备的dxf参考指南?
干杯
您好,dhl,
欢迎来到论坛,如果项目是acad块或任何类型的acad实体,该程序将返回与您的选择相关联的dxf数据。我不使用MEP 2009,但我假设它们仍然是acad实体。
试试看。
(defun C:pdxf (/ pick)
(if (setq pick (car (entsel "\nSelect Object: ")))
(progn (textscr)
(foreach x (entget pick)
(print x))))
(princ)) 谢谢buzzard,这正是我一直在寻找/尝试自己创建的lisp例程!谢谢
然而,似乎是Autocad Mep将设备信息存储在实体内部以外的某个地方,不幸的是,我不知道如何存储。我将插入您程序中的dxf返回值,也许这对我在哪里可以找到样式名称等有意义。
Command: pdxf
Select Object:
(-1 . <Entity name: 7ffff946b10>)
(0 . "AECB_DEVICE")
(330 . <Entity name: 7ffff9039f0>)
(5 . "1B0C1")
(100 . "AcDbEntity")
(67 . 0)
(410 . "Model")
(8 . "E-63F-3IE-N")
(100 . "AecDbEntity")
(102 . "{AEC_SUBOBJECT")
(300 . "AecbImpDevice")
(100 . "AecImpObj")
(3 . "")
(100 . "AecImpEnt")
(171 . 0)
(100 . "AecImpGeo")
(10 28226.0 39324.0 0.0)
(15 1.0 0.0 0.0)
(16 0.0 1.0 0.0)
(210 0.0 0.0 1.0)
(360 . <Entity name: 0>)
(100 . "AecImpLayoutTool")
(100 . "AecbImpBuildingServiceMember")
(102 . "{AEC_SUBOBJECT")
(300 . "AecbPartCatalogData")
(100 . "AecImpObj")
(3 . "")
(100 . "AecbPartCatalogData")
(102 . "{AECB_PART_DATA_FIELD_ARRAY")
(100 . "AecImpObj")
(3 . "")
(100 . "AecImpArray")
(90 . 10)
(102 . "{AEC_SUBOBJECT")
(300 . "AecbPartCatalogDataField")
(100 . "AecImpObj")
(3 . "")
(100 . "AecbPartCatalogDataField")
(1 . "ConnectionProp_Circuit")
(1 . "Circuit")
(63 . 684)
(90 . 1)
(66 . 0)
(68 . -1)
(65 . 5)
(341 . <Entity name: 0>)
(281 . 0)
(282 . 0)
(283 . 1)
(102 . "AEC_SUBOBJECT}")
(102 . "{AEC_SUBOBJECT")
(300 . "AecbPartCatalogDataField")
(100 . "AecImpObj")
(3 . "")
(100 . "AecbPartCatalogDataField")
(1 . "ConnectionProp_Load")
(1 . "Load Phase 1")
(1 . "0.000000")
(63 . 682)
(90 . 1)
(66 . 0)
(68 . -1)
(65 . 1)
(40 . 0.0)
(281 . 0)
(282 . 0)
(283 . 1)
(102 . "AEC_SUBOBJECT}")
(102 . "{AEC_SUBOBJECT")
(300 . "AecbPartCatalogDataField")
(100 . "AecImpObj")
(3 . "")
(100 . "AecbPartCatalogDataField")
(1 . "Phase2_Load")
(1 . "Load Phase 2")
(1 . "0.000000")
(63 . 1319)
(90 . 1)
(66 . 0)
(68 . -1)
(65 . 1)
(40 . 0.0)
(281 . 0)
(282 . 0)
(283 . 1)
(102 . "AEC_SUBOBJECT}")
(102 . "{AEC_SUBOBJECT")
(300 . "AecbPartCatalogDataField")
(100 . "AecImpObj")
(3 . "")
(100 . "AecbPartCatalogDataField")
(1 . "Phase3_Load")
(1 . "Load Phase 3")
(1 . "0.000000")
(63 . 1320)
(90 . 1)
(66 . 0)
(68 . -1)
(65 . 1)
(40 . 0.0)
(281 . 0)
(282 . 0)
(283 . 1)
(102 . "AEC_SUBOBJECT}")
(102 . "{AEC_SUBOBJECT")
(300 . "AecbPartCatalogDataField")
(100 . "AecImpObj")
(3 . "")
(100 . "AecbPartCatalogDataField")
(1 . "ConnectionProp_Voltage")
(1 . "Voltage")
(1 . "-2.000000")
(63 . 681)
(90 . 1)
(66 . 0)
(68 . -1)
(65 . 1)
(40 . -2.0)
(281 . 0)
(282 . 0)
(283 . 1)
(102 . "AEC_SUBOBJECT}")
(102 . "{AEC_SUBOBJECT")
(300 . "AecbPartCatalogDataField")
(100 . "AecImpObj")
(3 . "")
(100 . "AecbPartCatalogDataField")
(1 . "ConnectionProp_NoOfPoles")
(1 . "Number of Poles")
(1 . "-2")
(63 . 680)
(90 . 1)
(66 . 0)
(68 . -1)
(65 . 2)
(91 . -2)
(281 . 0)
(282 . 0)
(283 . 1)
(102 . "AEC_SUBOBJECT}")
(102 . "{AEC_SUBOBJECT")
(300 . "AecbPartCatalogDataField")
(100 . "AecImpObj")
(3 . "")
(100 . "AecbPartCatalogDataField")
(1 . "ConnectionProp_DemandFactor")
(1 . "Load Category")
(63 . 683)
(90 . 1)
(66 . 0)
(68 . -1)
(65 . 5)
(341 . <Entity name: 0>)
(281 . 0)
(282 . 0)
(283 . 1)
(102 . "AEC_SUBOBJECT}")
(102 . "{AEC_SUBOBJECT")
(300 . "AecbPartCatalogDataField")
(100 . "AecImpObj")
(3 . "")
(100 . "AecbPartCatalogDataField")
(1 . "Sub_Load_Category1")
(1 . "Load Sub-category")
(63 . 1327)
(90 . 1)
(66 . 0)
(68 . -1)
(65 . 5)
(341 . <Entity name: 0>)
(281 . 0)
(282 . 0)
(283 . 1)
(102 . "AEC_SUBOBJECT}")
(102 . "{AEC_SUBOBJECT")
(300 . "AecbPartCatalogDataField")
(100 . "AecImpObj")
(3 . "")
(100 . "AecbPartCatalogDataField")
(1 . "ConnectionProp_Overcurrent")
(1 . "Maximum Overcurrent Rating (amps)")
(1 . "0.000000")
(63 . 697)
(90 . 1)
(66 . 0)
(68 . -1)
(65 . 1)
(40 . 0.0)
(281 . 0)
(282 . 0)
(283 . 1)
(102 . "AEC_SUBOBJECT}")
(102 . "{AEC_SUBOBJECT")
(300 . "AecbPartCatalogDataField")
(100 . "AecImpObj")
(3 . "")
(100 . "AecbPartCatalogDataField")
(1 . "ConnectionProp_PowerFactor")
(1 . "Power Factor")
(1 . "0.000000")
(63 . 698)
(90 . 1)
(66 . 0)
(68 . -1)
(65 . 1)
(40 . 0.0)
(281 . 0)
(282 . 0)
(283 . 1)
(102 . "AEC_SUBOBJECT}")
(102 . "AECB_PART_DATA_FIELD_ARRAY}")
(102 . "AEC_SUBOBJECT}")
(102 . "{AECB_CONNECTION_COMPONENTS")
(100 . "AecImpObj")
(3 . "")
(100 . "AecImpArray")
(90 . 1)
(102 . "{AEC_SUBOBJECT")
(300 . "AecbConnectionComponentMember")
(100 . "AecImpObj")
(3 . "")
(100 . "AecConnectionComponent")
(100 . "AecbConnectionComponentMember")
(342 . <Entity name: 7ffff90d6f0>)
(341 . <Entity name: 0>)
(10 1.0 0.0 0.0)
(90 . 1)
(91 . 1)
(92 . 3)
(93 . 0)
(94 . 0)
(95 . 0)
(63 . 0)
(96 . 102)
(102 . "AEC_SUBOBJECT}")
(102 . "AECB_CONNECTION_COMPONENTS}")
(341 . <Entity name: 7ffff9469b0>)
(100 . "AecbImpMvPartBase")
(102 . "{AECB_MVPARTBASE_ANNOTATION_BLOCK")
(100 . "AecImpObj")
(3 . "")
(100 . "AecImpArray")
(90 . 0)
(102 . "AECB_MVPARTBASE_ANNOTATION_BLOCK}")
(63 . 0)
(343 . <Entity name: 0>)
(344 . <Entity name: 0>)
(90 . 0)
(91 . 0)
(15 1.0 1.0 1.0)
(92 . 6)
(64 . 0)
(11 0.0 0.0 0.0)
(12 0.0 0.0 0.0)
(13 0.0 0.0 0.0)
(14 0.0 0.0 0.0)
(100 . "AecbImpDevice")
(40 . 0.0)
(9 . "")
(341 . <Entity name: 7ffff90d3e0>)
(102 . "AEC_SUBOBJECT}")
(102 . "{AEC_NULLOBJECT}")
(100 . "AecDbGeo")
(100 . "AecDbLayoutTool")
(100 . "AecbDbBuildingServiceMember")
(100 . "AecbDbMvPartBase")
(100 . "AecbDbDevice")
为了获得块中的特定实体,我将分解块并再次运行例程,但只选择有问题的实体。
试试看会发生什么。
同样,我不确定2009年欧洲议会实体。
我可以看到dxf列表仍然返回。
如果这是像属性一样的隐藏信息,我会尝试分解对象
看看会出现什么。我不确定你要找的信息在哪里
已存储。
如果你没有去下面的论坛寻求建议,我会在MEP论坛上试试,问你的问题。你可以在这里找到你需要的东西。
http://www.cadtutor.net/forum/forumdisplay.php?f=61
页:
[1]