它使用对象、属性和方法进行ActiveX编程。例如,画一条线并在命令行中键入:
加载使用ActiveX方法的Visual LISP扩展。然后将实体名称保存到变量:
- Command: (setq ent(car(entsel)))
- Select object: <Entity name: 7efa2458>
我知道您可以使用ENTGET、SUBST和ENTMODE函数更改行的颜色。但事实并非如此。在命令行中键入:
- Command: (setq vlaEnt(vlax-ename->vla-object ent))
- #<VLA-OBJECT IAcadLine 0211d5e4>
现在,您的行的ActiveX对象具有颜色属性。了解了:
- Command: (vla-get-Color vlaEnt)
- 256
将其更改为黄色:
- Command: (vla-put-Color vlaEnt 2)
- nil
查找线条对象的所有属性和方法:
- Command: (vlax-dump-object vlaEnt t)
- ; IAcadLine: AutoCAD Line Interface
- ; Property values:
- ; Angle (RO) = 0.599194
- ; Application (RO) = #<VLA-OBJECT IAcadApplication 00d73d3c>
- ; Delta (RO) = (38.0649 25.9966 0.0)
- ; Document (RO) = #<VLA-OBJECT IAcadDocument 01ff6950>
- ; EndPoint = (1116.29 1004.45 0.0)
- ; Handle (RO) = "1C3"
- ; HasExtensionDictionary (RO) = 0
- ; Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 0e859b3c>
- ; Layer = "0"
- ; Length (RO) = 46.0951
- ; Linetype = "ByLayer"
- ; LinetypeScale = 1.0
- ; Lineweight = -1
- ; Material = "ByLayer"
- ; Normal = (0.0 0.0 1.0)
- ; ObjectID (RO) = 2130322520
- ; ObjectName (RO) = "AcDbLine"
- ; OwnerID (RO) = 2130316536
- ; PlotStyleName = "Color_2"
- ; StartPoint = (1078.22 978.448 0.0)
- ; Thickness = 0.0
- ; TrueColor = #<VLA-OBJECT IAcadAcCmColor 13b8b760>
- ; Visible = -1
- ; Methods supported:
- ; 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 ()
所有对象、方法、属性及其层次结构-AutoCAD对象模型可以在开发人员帮助中的ActiveX和VBA参考中找到(当然是在VBA sintax中,但也可以在lisp中使用)。
使用Delete方法重新浏览您的行:
- Command: (vla-Delete vlaEnt)
- nil
|