| 可以使用 ActiveX 函数设置和检索对象属性的值。 注意:AutoLISP 中的 ActiveX 支持仅限于 Windows。 获取对象的属性并将该属性应用于新对象在 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))输入另一个 AutoLISP 语句,该语句检索 VLA 对象的属性并将其分配给另一个 VLA 对象。例如,使用 Circle 对象绘制同心圆。vla-get-center (vla-addCircle mSpace (vla-get-center myCircle) 1.0)
更改对象的属性获取圆的当前中心点:(setq myCenter (vla-get-center myCircle)) 中心点以 safearray 类型的变体返回。safearray 包含三个双精度(X、Y 和 Z 坐标)。以列表形式保存中心点:(setq centerpt (vlax-safearray->list (vlax-variant-value myCenter))) 将中心点从变体安全数组转换为列表可以更轻松地修改坐标。从中心点的 X 轴减去 1:(setq newXaxis (- (car centerpt) 1)) 结果保存在变量 中。newXaxis使用新的 X 轴和原始 Y 和 Z 值为中心点构建新的点列表:(setq newcenter (list newXaxis (cadr centerpt) (caddr centerpt))) 构造的列表保存在变量 中。newcenter用于使用新的 X 轴更新圆:vla-put-center(vla-put-center myCircle (vlax-3d-point newcenter)) 请注意,此命令用于将新的中心点列表转换为所需的数据类型。vlax-3d-pointvla-put-center AutoCAD 图形窗口显示结果:
 |