删除所有布局选项卡
我在这里得到了这个lisp(Lee Mac),我试图从中删除“删除所有布局选项卡”部分,并将其放入一个新的lisp例程。但由于我刚刚开始学习lisps,我很难找到我到底需要做什么。请帮忙。(defun c:Brian (/ *error* uFlag)
(vl-load-com)
(defun *error* (msg)
(and uFlag (vla-EndUndoMark *doc))
(or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
(princ (strcat "\n** Error: " msg " **")))
(princ))
(setq *doc (cond (*doc) ((vla-get-ActiveDocument
(vlax-get-acad-object)))))
(setq uFlag (not (vla-StartUndoMark *doc)))
(vlax-for blk (vla-get-Blocks *doc)
(if (eq :vlax-true (vla-get-isXref blk))
(if (vl-catch-all-error-p
(vl-catch-all-apply
(function vla-Detach) (list blk)))
(princ (strcat "\n** Error Detaching Xref: "
(vla-get-name blk) " **")))))
(vlax-for lay (vla-get-Layers *doc)
(vla-put-Lineweight lay acLnWt025)
(vla-put-LayerOn lay :vlax-true))
(vlax-for lay (vla-get-layouts *doc)
(if (not (eq "MODEL" (strcase (vla-get-Name lay))))
(vla-delete lay)))
(vlax-for v (vla-get-views *doc)
(vla-delete v))
(command "_.-scalelistedit" "_R" "_Y" "_E")
(vl-Catch-All-Apply
(function
(lambda nil
(vla-Remove
(vla-GetExtensionDictionary (vla-Get-Layers *doc)) "ACAD_LAYERFILTERS"))))
(if (setq states (layerstate-getnames t t))
(mapcar (function layerstate-delete) states))
(repeat 3 (vla-PurgeAll *doc))
(mapcar (function setvar)
'("CLAYER" "INSBASE" "CANNOSCALE" "LTSCALE" "MSLTSCALE" "PSLTSCALE")
'("0" (0 0 0) "1/4\" = 1'-0\"" 1 1 1 ))
(setq uFlag (vla-EndUndoMark *doc))
(princ))
仅使用您从Lee的代码中提供的内容,以下几位是相关的
(setq *doc (cond (*doc)
((vla-get-ActiveDocument
(vlax-get-acad-object)))))
(vlax-for lay(vla-get-layouts *doc)
(if (not (eq "MODEL" (strcase (vla-get-Name lay))))
(vla-delete lay)))
当做
杰米 此外,这可能会有所帮助 谢谢你们! 我还尝试将删除层状态命令合并到这个lisp例程中,但它并没有得到所有这些命令。知道为什么吗? (if (setq states (layerstate-getnames t t))
(mapcar (function layerstate-delete) states)) 李·麦克
这就是我所拥有的,但当我运行lisp时,它并没有得到我在图形中创建的所有图层状态。 不确定。我从来没用过分层状态 我也是,但我四处打听过,这似乎是人们告诉我要消除的事情之一,以使绘图文件大小更小。这是我进入层状态时看到的消息的快照。
在命令行中尝试以下各项,并发布返回:
(layerstate-getnames t t)
(mapcar (function layerstate-delete) (layerstate-getnames t t))
页:
[1]
2