zoukankan      html  css  js  c++  java
  • 【Visual Lisp】Visual Lisp属性与方法

    说明:
    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" [方法的参数]...)

    例子:

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

    ;特性值:
    ; 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 ()

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

    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号色 

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



  • 相关阅读:
    [BZOJ 4350]括号序列再战猪猪侠 题解(区间DP)
    Welcome to Anvet Blogs
    法语笔记
    min-max容斥略解
    求和与和式界的估计
    浅谈虚树
    浅谈随机数的生成
    莫比乌斯反演与狄利克雷卷积
    傅里叶变换三部曲(二)·傅里叶变换的定义
    傅里叶变换三部曲(一)·傅里叶级数
  • 原文地址:https://www.cnblogs.com/Helchan/p/4231649.html
Copyright © 2011-2022 走看看