获取对象的属性并更改对象的属性 (AutoLISP/ActiveX) 
可以使用 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 图形窗口显示结果: 
		
	  
 
 
 
    
 |