【Visual Lisp】Visual Lisp属性与方法

原文   https://www.cnblogs.com/Helchan/p/4231649.html

说明:
Visual Lisp属性的获取、赋值和方法的执行有多种形式。然而对于初学者来讲一次性就要所有掌握显然是没有必要的,有时候每种方法都是通用的功能都同样咱们就没有必要把全部方法都记住。咱们只须要掌握经常使用的通用性最强的便可。这里方法和属性只用下面几种方式,对于方法名和属性名统一用双引号 “” ,且第一个字母大写,避免混乱。

知识点:
;;;查看对象的属性和方法
(vlax-dump-object obj T)
 

;;;方法与属性是否适用于某对象
(vlax-property-available-p obj "Property")
(vlax-method-applicable-p obj "Method")

;;;获取属性与修改属性
(vla-get-属性 obj)
(vla-put-属性 obj 参数)
(vlax-get-property obj "Property")
(vlax-put-property obj "Property" 参数)

;;;执行方法
(vlax-invoke-method obj "Method" [方法的参数]...)

例子:get

01.查看对象的属性和方法
(vlax-dump-object(vlax-ename->vla-object(car(entsel)))T)
点选一个圆
it

;特性值:
; Application (RO) = #
; Area = 12131.9
; Center = (141.556 338.87 0.0)
; Circumference = 390.453
; Diameter = 124.285
; Document (RO) = #
; Handle (RO) = "7F"
; HasExtensionDictionary (RO) = 0
; Hyperlinks (RO) = #
; Layer = "0"
; Linetype = "ByLayer"
; LinetypeScale = 1.0
; Lineweight = -1
; Material = "ByLayer"
; Normal = (0.0 0.0 1.0)
; ObjectID (RO) = 2130292792
; ObjectName (RO) = "AcDbCircle"
; OwnerID (RO) = 2130263976
; PlotStyleName = "ByLayer"
; Radius = 62.1425
; Thickness = 0.0
; TrueColor = #
; Visible = -1
;支持的方法
; ArrayPolar (3)
; ArrayRectangular (6)
; Copy ()
; Delete ()
; GetBoundingBox (2)
; GetExtensionDictionary ()
; GetXData (3)
; Highlight (1)
; IntersectWith (2)
; Mirror (2)
; Mirror3D (3)
; Move (2)
; Offset (1)
; Rotate (2)
; Rotate3D (3)
; ScaleEntity (2)
; SetXData (2)
; TransformBy (1)
; Update ()

02.属性和方法是否适用于某对象
(vlax-property-available-p obj "Length")  若是obj是一个圆,返回nil
(vlax-method-applicable-p obj "Move")   若是obj是一个圆,返回Tform

03.获取属性与修改属性
(vla-get-Color obj)             返回obj的颜色值
(vla-put-Color obj 1)         将obj颜色改成1号色       
(vlax-get-property obj "Color")   返回obj的颜色值     
(vlax-put-property obj "Color" 1)   将obj颜色改成1号色 class

04.执行方法
(vlax-invoke-method obj "Delet")   删除对象


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部