NirantarVidyart 发表于 2022-7-6 06:55:26

Visual Lisp和AutoCAD Mechanic

如何使用Visual Lisp连接和使用AutoCA mechanical API。
 
我已经尽力了,但找不到怎么做。
 
请提供帮助。

MSasu 发表于 2022-7-6 07:08:12

为了了解AutoLISP如何与AutoCAD交互,我建议您学习一个教程,例如AfraLISP上的教程。
为了获得更精确的响应,请描述您打算自动化的内容。

NirantarVidyart 发表于 2022-7-6 07:20:46

谢谢,但我指的是AutoCAD Mechanical。
 
我正在尝试使用visual lisp添加引出序号。

SEANT 发表于 2022-7-6 07:26:50

我在这里根据旧的VBA经验推断了一点,但如果使用它会发生什么?
 
(setq symBB(vla getinterfaceobject(vlax get acadobject)“symbbato.McadSymbolBBMgr.3”))

BlackBox 发表于 2022-7-6 07:31:19

由于完全不熟悉Mechanical,最好是查看ActiveX(COM)API文档(VBA或.NET)。。。只要机械支持,很多/大部分/全部?在这些对象中,属性和方法将通过LISP(一般来说)提供。

NirantarVidyart 发表于 2022-7-6 07:40:20

我已经试过了,但它给了我错误
; 错误:自动化错误。加载应用程序中的问题
 
文件也没有对此进行解释。一旦我掌握了symb对象,VBA文档就会有所帮助。

BIGAL 发表于 2022-7-6 07:52:20

这是一个添加civ3d点的示例,它应该类似于Mechanical open database,然后打开子集并添加。最困难的事情是为get和put找到变量名。谷歌(Google)有一点,它逐渐走到了一起。在本例中,我们添加了点,可以有曲面、路线等。inI代码中还有几个变量是ptnum和description。使用dumpit。以下现有对象或代码上的lsp
 
 
(Vl-load-com)
(setq e (entsel ))
(setq obj (vlax-ename->vla-object (car e)))
(vlax-dump-object obj T)

 

;; Change ProgID per Traget Civil 3D version
;; This code sample is meant for Civil 3D 2013
(setq aeccApp (vla-getinterfaceobject
(vlax-get-acad-object)
"AeccXUiLand.AeccApplication.10.0"
) ; 2013 is 10.0
)
(setq aeccDoc (vlax-get-property aeccApp "ActiveDocument"))
(setq oPoints (vlax-get-property aeccDoc "Points"))
(setq pt1 (vlax-3d-point '(10.0 10.0 1.0)))
(setq oPoint1 (vlax-invoke-method oPoints "Add" pt1))
(vlax-put opoint1 'labelrotation 1.57) ;approx 90deg
(setq pt1 (vlax-3d-point '(20.0 10.0 2.0)))
(setq oPoint1 (vlax-invoke-method oPoints "Add" pt1))
(vlax-put opoint1 'labelrotation 3.14) ;approx 180deg
(setq pt1 (vlax-3d-point '(20.0 20.0 3.0)))
(setq oPoint1 (vlax-invoke-method oPoints "Add" pt1))
(vlax-put opoint1 'labelrotation 4.71) ;approx 270deg

NirantarVidyart 发表于 2022-7-6 08:03:39

谢谢你,比格尔。但我还没有遇到过与AutoCAD mechanical的“AeccXUiLand.AeccApplication.10.0”等效的版本
 
你是如何发现这个价值的?是否有文档记录?
页: [1]
查看完整版本: Visual Lisp和AutoCAD Mechanic