缺少Lisp
我一生都找不到它。我以前Lisp程序1、打开所有层
2、删除所有文本
3、删除所有直线和点
4.将所有剩余对象的属性设置为(0层)(线型设置为“按块”)(颜色设置为“按块”)(线宽设置为“按块”)
5.删除现有布局选项卡
6、清除所有REGAPP
我不得不手动处理大约100个文件,还有将近2000个文件要处理。我会继续到处找,但那是一份旧文件。如果你们中的任何人有或看过它,你可以在你的帖子中链接它。
谢谢NH3man! 这是你需要的职位吗??
http://www.cadtutor.net/forum/showthread.php?44801-清理图形Lisp&高亮显示=Lisp+turn+图层 试试这个:
(defun c:DoItAll ( / *error* _startundo _endundo acdoc cmdecho locked i s )
(defun *error* ( msg )
(if cmdecho (setvar 'CMDECHO cmdecho))
(if acdoc (_EndUndo acdoc))
(if (not (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*"))
(princ (strcat "\nError: " msg))
)
(princ)
)
(defun _StartUndo ( doc )
(_EndUndo doc)
(vla-StartUndoMark doc)
)
(defun _EndUndo ( doc )
(if (= 8 (logand 8 (getvar 'UNDOCTL)))
(vla-EndUndoMark doc)
)
)
(setq acdoc (vla-get-activedocument (vlax-get-acad-object))
cmdecho (getvar 'CMDECHO)
)
(_StartUndo acdoc)
(setvar 'CMDECHO 0)
;; Turn on and unlock all Layers
(vlax-for layer (vla-get-layers acdoc)
(vla-put-layeron layer :vlax-true)
(if (eq :vlax-true (vla-get-lock layer))
(vla-put-lock (car (setq locked (cons layer locked))) :vlax-false)
)
)
;; Delete Layout Tabs:
(vlax-for layout (vla-get-layouts acdoc)
(if (not (eq "Model" (vla-get-name layout)))
(vla-delete layout)
)
)
;; Delete all Text, MText, Lines & Points
(if (setq s (ssget "_X" '((0 . "TEXT,MTEXT,LINE,POINT"))))
(repeat (setq i (sslength s))
(entdel (ssname s (setq i (1- i))))
)
)
;; Set properties of remaining objects
(vlax-for obj (vla-get-modelspace acdoc)
(vla-put-layer obj "0")
(vla-put-linetype obj "BYBLOCK")
(vla-put-color obj acbyblock)
(vla-put-lineweight obj aclnwtbyblock)
)
;; Purge all RegApps:
(command "_.-purge" "_R" "*" "_N")
;; Relock those layers!
(foreach layer locked (vla-put-lock layer :vlax-true))
;; Reset the environment
(setvar 'CMDECHO 1)
(_EndUndo acdoc)
(princ)
)
(vl-load-com) (princ) 工作方式更好!!!!!在大约10个文件上试用了一下,都很好。我喜欢你把它分开的方式。我能更好地理解它。
再次感谢李帮我摆脱困境!!!!!! 很好的NH3人,很高兴听到它为你工作 李,我刚刚遇到了另一个问题。不是你的代码,而是我正在处理的一些文件。当我在一些(属性定义)上运行代码时。我不需要它们,因为我们正在将所有的块和零件图转换为MEP的多视图零件。我曾尝试将(att)(attr)和其他一些内容添加到我认为是您的删除代码字符串中,但没有效果。我还试着在你的代码中加入一些其他代码的部分,但那根本不起作用。
谢谢你的帮助。
NH3人! 我不太明白NH3man,你想补充什么? 当我在一些图形上运行你的代码时。属性定义显示在图形上。它们看起来像文本,但不是。我可以点击其中一个,然后选择相似的。然后删除它们。然后我试图通过在我认为是删除字符串的地方添加(属性)来编辑代码。但这不起作用。 嗯,我不确定它们为什么会出现(除非它们可能在由例程打开的关闭层上?)。
无论如何,请更改以下内容:
(0 . "TEXT,MTEXT,LINE,POINT")
收件人:
(0 . "ATTDEF,TEXT,MTEXT,LINE,POINT") 我差点就拿到了。我试过ATTD。英雄联盟
再次感谢!
页:
[1]
2