可以使用通过导入类型库创建的包装函数或直接使用 theandfunctions 访问对象的属性。vlax-get-propertyvlax-put-property 注意:AutoLISP 中的 ActiveX 支持仅限于 Windows。
加载 ActiveX 支持函数后,可以使用 andfunctions 获取和设置对象属性的值。vl-load-comvla-get-vla-put- 函数返回对象的属性,而函数为对象的属性赋值。这些函数需要以下参数:vla-get-propertynamevla-put-propertyname
例如,以下内容返回 AutoCAD 应用程序对象的属性:ActiveDocument (vla-get-ActiveDocument (vlax-get-acad-object)) #<VLA-OBJECT IAcadDocument 00302a18> 以 开头的函数是 AutoCAD 类型库的包装函数,但其他类型库的包装函数的名称将根据您使用的前缀而有所不同。导入类型库是理想的选择,这样您就可以使用 Apropos 窗口查看哪些函数可用。但是,并非导入的类型库中的所有属性、方法和常量都包装在一起。vla- 例如,没有可用于获取 Microsoft Word 应用程序对象的属性的包装函数,但以下语句实现了这一点:CommandBars (setq ComBars (vlax-get-property msw 'CommandBars)) #<VLA-OBJECT CommandBars 0016763c> 该函数返回对象的属性,而该函数为对象的属性赋值。这些函数需要以下参数:vlax-get-propertyvlax-put-property
即使包装器函数可用,您也可以使用(和)。vlax-get-propertyvlax-put-property 例如,以下内容返回 AutoCAD 应用程序对象的属性:ActiveDocument (vlax-get-property (vlax-get-acad-object) 'ActiveDocument) #<VLA-OBJECT IAcadDocument 00302a18> 有时,您可以使用预定义的常量来更新对象的属性。例如,要将圆的填充颜色设置为绿色,可以使用常量而不是指定数字索引值:acGreen (vla-put-color myCircle acGreen) ActiveX 和 VBA 参考在描述属性的条目下列出任何预定义的常量。您可以在 Visual LISP ActiveX 函数调用中使用这些常量。 更新对象更改对象的特性可能不会立即影响对象在 AutoCAD 图形中的显示。AutoCAD 会延迟属性更改,以允许您一次更改多个属性。 如果需要显式更新绘图窗口,请发出函数:vla-update (vla-update object) |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )
GMT+8, 2024-5-19 15:57
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.