CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 文档中心

获取对象的属性并更改对象的属性 (AutoLISP/ActiveX)

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

摘要: 可以使用 ActiveX 函数设置和检索对象属性的值。

可以使用 ActiveX 函数设置和检索对象属性的值。

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

获取对象的属性并将该属性应用于新对象

  1. 在 Visual LISP 控制台窗口或 AutoCAD 命令提示符下,输入一个 AutoLISP 语句,该语句获取或创建包含要使用的特性的对象。

    例如,此函数调用会提示您为圆选取一个中心点,然后调用该方法来绘制圆。该函数将您选取的点转换为所需的数据类型。AddCirclevlax-3d-pointvla-addcircle

    (setq 3dpt (vlax-3d-point (getpoint "\nPick the center point for a circle: "))
    (setq myCircle (vla-addcircle mspace 3dpt 2.0))
  2. 输入另一个 AutoLISP 语句,该语句检索 VLA 对象的属性并将其分配给另一个 VLA 对象。

    例如,使用 Circle 对象绘制同心圆。vla-get-center

    (vla-addCircle mSpace (vla-get-center myCircle) 1.0)

更改对象的属性

  1. 获取圆的当前中心点:
    (setq myCenter (vla-get-center myCircle))

    中心点以 safearray 类型的变体返回。safearray 包含三个双精度(X、Y 和 Z 坐标)。

  2. 以列表形式保存中心点:
    (setq centerpt (vlax-safearray->list (vlax-variant-value myCenter)))

    将中心点从变体安全数组转换为列表可以更轻松地修改坐标。

  3. 从中心点的 X 轴减去 1:
    (setq newXaxis (- (car centerpt) 1))

    结果保存在变量 中。newXaxis

  4. 使用新的 X 轴和原始 Y 和 Z 值为中心点构建新的点列表:
    (setq newcenter (list newXaxis (cadr centerpt) (caddr centerpt)))

    构造的列表保存在变量 中。newcenter

  5. 用于使用新的 X 轴更新圆:vla-put-center
    (vla-put-center myCircle (vlax-3d-point newcenter))

    请注意,此命令用于将新的中心点列表转换为所需的数据类型。vlax-3d-pointvla-put-center

    AutoCAD 图形窗口显示结果:


路过

雷人

握手

鲜花

鸡蛋

最新评论

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部