Lisp更改映射
我有一个lisp来改变我们在绘图背景中使用的映射。这是相当缓慢,不知道是否有人可以提供任何建议,如何提高。它的一部分分解块贴图分片,以便将所有内容设置为“bylayer”。这能在没有爆炸的情况下完成吗?爆炸会大大减慢速度?
(defun c:osmap1 (/ pref ss)
(vl-load-com)
(setq pref "CCC_OSMAP_") ;; <<-- Prefix
(vlax-for lay (vla-get-layers
(vla-get-ActiveDocument
(vlax-get-acad-object)))
(if (/= "0" (vla-get-Name lay))
(vla-put-name Lay
(strcat pref (vla-get-Name lay)))))
(command "_-layer" "c" "253" "*" "")
(and (setq ss (ssget "X" (list (cons 0 "INSERT")))))
(command "explode" SS "")
(command "_change" "all" """p" "color" "Bylayer" "")
(command "_-layer" "F" "CCC_OSMAP_BDY_SYM" "F" "CCC_OSMAP_HT_CTRL" "F" "CCC_OSMAP_ROADS_CTR" "F" "CCC_OSMAP_ROADS" "F" "CCC_OSMAP_POLE_SYMB" "F" "CCC_OSMAP_LEGEND" "")
(command "_-purge" "a" "*" "N")
(command "regenall")
(princ))Tharwat 谢谢你的邀请。
不客气。
塔瓦特 不要忘记内置的setbylayer命令。
这不是自动化的最佳选择,但它是一个非常有用的命令眨眼:
页:
[1]