Lee Mac 发表于 2022-7-6 17:23:19

什么是“vla”、“vlax”等?

这可能是一篇无知的帖子,但我不明白为什么一些Lisp使用“vlax”或“vla”等函数。?

ASMI 发表于 2022-7-6 17:48:51

它使用对象、属性和方法进行ActiveX编程。例如,画一条线并在命令行中键入:
 
(vl-load-com)
 
加载使用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

ASMI 发表于 2022-7-6 18:07:18

福吉说。VLA函数是VBA的所有属性和方法。VLAX-函数没有VBA alalogs。VLR函数(反应器)工作于类似VBA事件,但绝对有其他语法和使用规则。

lpseifert 发表于 2022-7-6 18:10:59

谢谢ASMI

Lee Mac 发表于 2022-7-6 18:30:48

谢谢你的帮助-信息量很大。
页: [1]
查看完整版本: 什么是“vla”、“vlax”等?