vla get units函数
你好我在这个论坛上看到了一个函数“val get units”,但任何人都知道如何使用这个函数。实际上,我想用lisp检查CAD文件中的绘图单位。
谢谢 对于图形单位,可以使用存储线性单位的LUNITS系统变量,分别是设置其精度的LUPREC。对于角度,存在AUNITS和AUPREC对。
(nth (getvar “LUNITS”)
‘("" "Scientific" "Decimal" "Engineering" "Architectural" "Fractional"))
当做
米尔恰 感谢您的快速回复!当我将Lunits变量更改为4时,绘图类型更改为“Architectural”。但绘图单位相同(例如英尺)。绘图单位为(英寸、英尺、毫米、厘米、分米、米)。如何从lisp或其他变量中获取此信息?我找不到用于检查绘图单位的变量。所以我考虑使用“vla get units”的函数。
在标准(普通)AutoCAD中,您只能控制单位的输入/显示格式-单位本身只是一种约定,由您决定。
现在你正在使用建筑,所以可能与标准的AutoCAD有所不同;请致电帮助以获取允许您进行输入的命令,并在“快速参考”下找到存储该设置的变量。
当做
米尔恰 我可能错了,但据我所知,VLA-GET-UNITS函数适用于实体(即块),而不是图形本身。下面的摘录将生成一个错误:
(vlax-get-units (vla-get-ActiveDocument (vlax-get-acad-object)))
(vla-get-units (vla-get-ActiveDocument (vlax-get-acad-object)))
这是因为图形没有“单位”属性-您可以列出图形的特征:
(vlax-dump-object (vla-get-ActiveDocument (vlax-get-acad-object)))
当做
米尔恰 AFAIK,vla get units(而不是vlax get units)是获取“块引用”对象单位的函数。
(vla-get-Units
(vla-item
(vla-get-Blocks
(vla-get-ActiveDocument
(vlax-get-acad-object)
)
)
BlockName
)
) 试试:(vla get insunits) @阿汉哈:你说得对,我在我的示例中拼写错了函数名。感谢您发现-现在已修复。
当做
米尔恰 欢迎你,米尔恰。到目前为止,我从你那里学到了很多有用的东西。 谢谢阿汉哈和米尔恰。
页:
[1]
2