简而言之,答案是肯定的。
下面是一个简短的示例,请尝试一下:
- (defun c:TEST (/ ss)
- (vl-load-com)
- (cond
- (*activeDoc*)
- ((setq *activeDoc* (vla-get-activedocument (vlax-get-acad-object)))))
- (vla-startundomark *activeDoc*)
- (if (setq ss (ssget "_x"))
- (progn
- (vlax-for x (setq ss (vla-get-activeselectionset *activeDoc*))
- (vla-delete x))
- (vla-delete ss)
- (vla-put-attachmentpoint
- (vla-addmtext
- (vla-get-modelspace *activeDoc*)
- (vlax-3d-point '(0 0 0))
- 0
- "{\\C230;O'Doyle [url="file://\\L\\C2;Rules\\l\\C230"]\\L\\C2;Rules\\l\\C230[/url];!}")
- acattachmentpointmiddlecenter)
- (vla-zoomextents (vlax-get-acad-object))))
- (vla-endundomark *activeDoc*)
- (princ)) ;_end defun
有两种方法(我知道)可以在AutoCAD中查看ActiveX COM API文档:
[列表] 在VLIDE中,使用Apropos按钮搜索VL命令(即“ActiveX和VBA引用”)(我个人的偏好)或在VBAIDE中,按F2键,或使用菜单栏转到(查看>>对象浏览器)
它们都提供相同的内容,只是格式略有不同,所以请选择对您更有意义的内容。精通AutoLISP的人可能会发现VLIDE文档更容易理解。
希望这有帮助! |