CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoLISP 开发指南

将名称、句柄或对象 ID 转换为 VLA 对象 (AutoLISP/ActiveX)

2023-1-6 01:08| 发布者: admin| 查看: 572| 评论: 0|来自: AutoCAD

摘要: 在 AutoLISP 中使用 ActiveX 函数时,有时需要将 VLA 对象转换为名称、句柄或对象 ID。

在 AutoLISP 中使用 ActiveX 函数时,有时需要将 VLA 对象转换为名称、句柄或对象 ID。

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

将 ename 转换为 VLA 对象

该函数允许您将通过函数(如 and)获得的实体名称 (ename) 转换为可与 ActiveX 支持函数一起使用的 VLA 对象。vlax-ename->vla-objectentgetssname

  1. 在 AutoCAD 绘图区域中,绘制一个圆。
  2. 在AutoCAD命令提示符下,输入(vl-load-com)并按Enter键。
  3. Enter(setq ename-circle (car (entsel “\nPick a Circle:”))))并按 Enter 键。
    <Entity name: 27f0538>
  4. Enter(setq vlaobject-circle (vlax-ename->vla-object ename-circle))并按 Enter 键。
    #<VLA-OBJECT IAcadCircle 03642c24>
  5. Enter(setq new-ename-circle (vlax-vla-object->ename vlaobject-circle))并按 Enter 键。
    <Entity name: 27f0538>

将句柄转换为 VLA 对象

该函数根据提供的句柄返回实体名称 (ename)。然后,可以将实体名称转换为可与 ActiveX 支持函数一起使用的 VLA 对象。handent

  1. 在 AutoCAD 绘图区域中,绘制一个圆。
  2. 在AutoCAD命令提示符下,输入(vl-load-com)并按Enter键。
  3. Enter(setq ename-circle (handent (cdr (assoc 5 (entget (car (entsel “\nPick a Circle:”)))))
    <Entity name: 27f0538>
  4. Enter(setq vlaobject-circle (vlax-ename->vla-object ename-circle))并按 Enter 键。
    #<VLA-OBJECT IAcadCircle 03642c24>
  5. Enter(setq new-ename-circle (vlax-vla-object->ename vlaobject-circle))并按 Enter 键。
    <Entity name: 27f0538>

将对象 ID 转换为 VLA 对象

该函数返回与传递给函数的对象 ID 对应的 VLA 对象。用于获取指定 VLA 对象的对象 ID。vla-get-ObjectIDvla-ObjectIDToObject

  1. 在 AutoCAD 绘图区域中,绘制一个圆。
  2. 在AutoCAD命令提示符下,输入(vl-load-com)并按Enter键。
  3. Enter(setq aDoc (vlax-get-property (vlax-get-acad-object) 'ActiveDocument))并按 Enter 键。
    #<VLA-OBJECT IAcadDocument 0000000029430508>
  4. Enter(setq aMSpace (vlax-get-property aDoc 'ModelSpace))并按 Enter。
    #<VLA-OBJECT IAcadModelSpace 00000000304d7308>
  5. Enter(setq aObjId (vla-get-ObjectID aMSpace))并按 Enter.
    48
  6. Enter(setq aObj (vla-ObjectIDToObject aDoc aObjId))并按 Enter.
    #<VLA-OBJECT IAcadModelSpace 00000000304d7308>

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-5-19 16:16

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部