CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 文档中心

关于调用对象的方法 (AutoLISP/ActiveX)

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

摘要: 您可以使用通过导入类型库创建的包装函数调用对象的方法,也可以直接使用 vlax-invoke-method 函数调用对象的方法。

可以使用通过导入类型库创建的包装函数调用对象的方法,也可以直接使用该函数调用对象的方法。vlax-invoke-method

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

加载 的 ActiveX 支持函数后,可以使用该函数调用对象的方法。vl-load-comvla-

该函数需要以下参数:vla-methodname

  • 一个 VLA 对象,标识要调用其方法的对象
  • 使用该方法进行有效调用的任何其他参数

例如,以下内容将 Circle 对象添加到当前图形的模型空间:

(setq MSpace (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object))))
#<VLA-OBJECT IAcadModelSpace 0000000030434638>

(vla-AddCircle MSpace (vlax-3d-point '(5.0 5.0 0.0)) 3)
#<VLA-OBJECT IAcadCircle 00000000303b2698>

开头的函数是 AutoCAD 类型库的包装函数,但其他类型库的包装函数的名称将因您使用的前缀而异。导入类型库是理想的选择,这样您就可以使用 Apropos 窗口查看哪些函数可供您使用。但是,并非导入的类型库中的所有属性、方法和常量都已包装。vla-

该函数执行对象的方法。该函数需要以下参数:vlax-invoke-method

  • 一个 VLA 对象,标识要调用其方法的对象
  • 命名要调用的方法的符号或字符串
  • 使用该方法进行有效调用的任何其他参数

即使包装器函数可用于任务,也可以使用。vlax-invoke-method

例如,以下内容将 Circle 对象添加到当前图形的模型空间:

(setq MSpace (vlax-get-property (vlax-get-property (vlax-get-acad-object) 'ActiveDocument) 'ModelSpace))
#<VLA-OBJECT IAcadModelSpace 0000000030434638>

(vlax-invoke-method MSpace 'AddCircle (vlax-3d-point '(5.0 5.0 0.0)) 3)
#<VLA-OBJECT IAcadCircle 00000000303b2698>

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部