关于获取和设置对象的属性 (AutoLISP/ActiveX)
可以使用通过导入类型库创建的包装函数或直接使用 and 函数来访问对象的属性。vlax-get-propertyvlax-put-property 注意:AutoLISP 中的 ActiveX 支持仅限于 Windows。
加载 的 ActiveX 支持函数后,可以使用 和 函数来获取和设置对象属性的值。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 苏公网安备32011402011833)
GMT+8, 2024-12-15 12:55
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.