CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 文档中心

关于获取和设置对象的属性 (AutoLISP/ActiveX)

2023-1-8 00:40| 发布者: admin| 查看: 688| 评论: 0|来自: AutoCAD

摘要: 可以使用通过导入类型库创建的包装函数访问对象的属性,也可以直接使用 VLAX-get-property 和 VLAX-put-property 函数。

可以使用通过导入类型库创建的包装函数或直接使用 and 函数来访问对象的属性。vlax-get-propertyvlax-put-property

注意:AutoLISP 中的 ActiveX 支持仅限于 Windows。

加载 的 ActiveX 支持函数后,可以使用 和 函数来获取和设置对象属性的值。vl-load-comvla-get-vla-put-

该函数返回对象的属性,而函数为对象的属性赋值。这些函数需要以下参数:vla-get-propertynamevla-put-propertyname

  • 一个 VLA 对象,标识您感兴趣的属性的对象
  • 使用函数时要分配给属性的值vla-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

  • 一个 VLA 对象,标识您感兴趣的属性的对象
  • 命名要检索的属性的符号或字符串
  • 使用函数时要分配给属性的值vlax-put-propertyname

即使包装器函数可用,也可以使用 (和 )。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)

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1   苏公网安备32011402011833)

GMT+8, 2024-12-15 14:46

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部