CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 文档中心

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

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

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

您可以使用通过导入类型库创建的包装函数或直接使用 thefunction 调用对象的方法。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 )

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部