CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 文档中心

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

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

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

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

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

加载 ActiveX 支持函数后,可以使用 andfunctions 获取和设置对象属性的值。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 )

GMT+8, 2024-5-19 14:28

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部