VVA 发表于 2022-7-6 14:48:38


(defun c:zoomeall ()
(vl-load-com)
(vlax-for doc (vla-get-documents
               (vlax-get-acad-object)
               ) ;_ end of vla-get-Documents
   (vla-zoomextents doc)
   (vla-zoomall doc)
) ;_ end of vlax-for
(princ)
) ;_ end of defun

要查找名称vla函数,请使用自动补全
在Visual lisp编辑器中,键入vla zoom,然后按Ctrl+Shift+Space(请参见附加)

VVA 发表于 2022-7-6 14:53:27

评论vla zoomextents、vla zoomall仅适用于活动文档。
http://discussion.autodesk.com/forums/message.jspa?messageID=1184966
(vla-ZoomExtents (vlax-get-acad-object))

Lee Mac 发表于 2022-7-6 14:57:29

我的错误-谢谢VVA

Zorg 发表于 2022-7-6 14:59:44

 
那么一个命令将清除所有打开的图形,保存它们,然后关闭它们?你能把这一切都写进一个Lisp程序的句子里吗?如果是这样,是否可以在保存之前在所有图形上添加最大化显示?

Lee Mac 发表于 2022-7-6 15:03:23

正如VVA在上面指出的那样,我不确定ZoomExtents,但我认为我们可以做剩下的。
 
>VVA,
 
顺便说一句,你能不能先用vla activate使文档成为当前图形,然后用vla zoomextents?

Zorg 发表于 2022-7-6 15:06:07

 
那么,您不也必须指定要激活的文档吗?

Lee Mac 发表于 2022-7-6 15:09:40

 
不,我们正在使用vlax for循环浏览文档集合。

Zorg 发表于 2022-7-6 15:12:07

啊!你们在Lisp程序方面仍然比我高得多
 
我将继续关注这个线程,lisp将对我非常有用,因为我正在重新绘制图形!

Lee Mac 发表于 2022-7-6 15:17:47

 
别担心,你会成功的。
 
试试这个伴侣:
 
{显然不会关闭活动图形}
 

(defun c:purgeall ()
(vl-load-com)
(vlax-for doc (vla-get-Documents
               (vlax-get-acad-object))
   (repeat 3 (vla-purgeall doc))
   (if (not (eq "" (vla-get-FullName doc)))
   (vla-save doc)
   (vla-saveas doc
       (strcat
         (vla-get-Path doc) "\\"
         (vla-get-name doc))))
   (vl-catch-all-apply
   (function
       (lambda ( )
         (vla-close doc :vlax-false)))))
(princ))
页: 1 [2]
查看完整版本: 清除所有Lisp,类似于保存