【Visual Lisp】Visual Lisp屬性與方法

說明:
Visual Lisp屬性的獲取、賦值和方法的執行有多種形式。然而對於初學者來講一次性就要所有掌握顯然是沒有必要的,有時候每種方法都是通用的功能都同樣咱們就沒有必要把全部方法都記住。咱們只須要掌握經常使用的通用性最強的便可。這裏方法和屬性只用下面幾種方式,對於方法名和屬性名統一用雙引號 「」 ,且第一個字母大寫,避免混亂。app

知識點:
;;;查看對象的屬性和方法
(vlax-dump-object obj T)
spa

;;;方法與屬性是否適用於某對象
(vlax-property-available-p obj "Property")
(vlax-method-applicable-p obj "Method")3d

 

;;;獲取屬性與修改屬性
(vla-get-屬性 obj)
(vla-put-屬性 obj 參數)
(vlax-get-property obj "Property")
(vlax-put-property obj "Property" 參數)orm

;;;執行方法
(vlax-invoke-method obj "Method" [方法的參數]...)對象

例子:get

01.查看對象的屬性和方法
(vlax-dump-object(vlax-ename->vla-object(car(entsel)))T)
點選一個圓
it

;特性值:
; Application (RO) = #<VLA-OBJECT IAcadApplication 00d73d3c>
; Area = 12131.9
; Center = (141.556 338.87 0.0)
; Circumference = 390.453
; Diameter = 124.285
; Document (RO) = #<VLA-OBJECT IAcadDocument 01e31958>
; Handle (RO) = "7F"
; HasExtensionDictionary (RO) = 0
; Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 01fb1c04>
; 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 = #<VLA-OBJECT IAcadAcCmColor 0ce59030>
; 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 ()io

02.屬性和方法是否適用於某對象
(vlax-property-available-p obj "Length")  若是obj是一個圓,返回nil
(vlax-method-applicable-p obj "Move")   若是obj是一個圓,返回T
form

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")   刪除對象

相關文章
相關標籤/搜索