乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 66|回复: 4

[编程交流] 什么是“vla”、“vlax”等?

[复制链接]

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 17:23:19 | 显示全部楼层 |阅读模式
这可能是一篇无知的帖子,但我不明白为什么一些Lisp使用“vlax”或“vla”等函数。?
回复

使用道具 举报

2

主题

439

帖子

536

银币

限制会员

铜币
-14
发表于 2022-7-6 17:48:51 | 显示全部楼层
它使用对象、属性和方法进行ActiveX编程。例如,画一条线并在命令行中键入:
 
  1. (vl-load-com)

 
加载使用ActiveX方法的Visual LISP扩展。然后将实体名称保存到变量:
 
  1. Command: (setq ent(car(entsel)))
  2. Select object: <Entity name: 7efa2458>

 
我知道您可以使用ENTGET、SUBST和ENTMODE函数更改行的颜色。但事实并非如此。在命令行中键入:
 
  1. Command: (setq vlaEnt(vlax-ename->vla-object ent))
  2. #<VLA-OBJECT IAcadLine 0211d5e4>

 
现在,您的行的ActiveX对象具有颜色属性。了解了:
 
  1. Command: (vla-get-Color vlaEnt)
  2. 256

 
将其更改为黄色:
 
  1. Command: (vla-put-Color vlaEnt 2)
  2. nil

 
查找线条对象的所有属性和方法:
 
  1. Command: (vlax-dump-object vlaEnt t)
  2. ; IAcadLine: AutoCAD Line Interface
  3. ; Property values:
  4. ;   Angle (RO) = 0.599194
  5. ;   Application (RO) = #<VLA-OBJECT IAcadApplication 00d73d3c>
  6. ;   Delta (RO) = (38.0649 25.9966 0.0)
  7. ;   Document (RO) = #<VLA-OBJECT IAcadDocument 01ff6950>
  8. ;   EndPoint = (1116.29 1004.45 0.0)
  9. ;   Handle (RO) = "1C3"
  10. ;   HasExtensionDictionary (RO) = 0
  11. ;   Hyperlinks (RO) = #<VLA-OBJECT IAcadHyperlinks 0e859b3c>
  12. ;   Layer = "0"
  13. ;   Length (RO) = 46.0951
  14. ;   Linetype = "ByLayer"
  15. ;   LinetypeScale = 1.0
  16. ;   Lineweight = -1
  17. ;   Material = "ByLayer"
  18. ;   Normal = (0.0 0.0 1.0)
  19. ;   ObjectID (RO) = 2130322520
  20. ;   ObjectName (RO) = "AcDbLine"
  21. ;   OwnerID (RO) = 2130316536
  22. ;   PlotStyleName = "Color_2"
  23. ;   StartPoint = (1078.22 978.448 0.0)
  24. ;   Thickness = 0.0
  25. ;   TrueColor = #<VLA-OBJECT IAcadAcCmColor 13b8b760>
  26. ;   Visible = -1
  27. ; Methods supported:
  28. ;   ArrayPolar (3)
  29. ;   ArrayRectangular (6)
  30. ;   Copy ()
  31. ;   Delete ()
  32. ;   GetBoundingBox (2)
  33. ;   GetExtensionDictionary ()
  34. ;   GetXData (3)
  35. ;   Highlight (1)
  36. ;   IntersectWith (2)
  37. ;   Mirror (2)
  38. ;   Mirror3D (3)
  39. ;   Move (2)
  40. ;   Offset (1)
  41. ;   Rotate (2)
  42. ;   Rotate3D (3)
  43. ;   ScaleEntity (2)
  44. ;   SetXData (2)
  45. ;   TransformBy (1)
  46. ;   Update ()

 
所有对象、方法、属性及其层次结构-AutoCAD对象模型可以在开发人员帮助中的ActiveX和VBA参考中找到(当然是在VBA sintax中,但也可以在lisp中使用)。
 
使用Delete方法重新浏览您的行:
 
  1. Command: (vla-Delete vlaEnt)
  2. nil
回复

使用道具 举报

2

主题

439

帖子

536

银币

限制会员

铜币
-14
发表于 2022-7-6 18:07:18 | 显示全部楼层
福吉说。VLA函数是VBA的所有属性和方法。VLAX-函数没有VBA alalogs。VLR函数(反应器)工作于类似VBA事件,但绝对有其他语法和使用规则。
回复

使用道具 举报

4

主题

940

帖子

961

银币

初来乍到

Rank: 1

铜币
12
发表于 2022-7-6 18:10:59 | 显示全部楼层
谢谢ASMI
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 18:30:48 | 显示全部楼层
谢谢你的帮助-信息量很大。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-4 15:48 , Processed in 0.368570 second(s), 73 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表