按层设置
(defun c:tt (/ CNT DXDT DXFDNEW DXFNEW DXFOLD ENT SSET )(command "_.Layer" "_Make" "L-ANNO_TEXT" "_Color" "7" "" "_LType" "Continuous" "" "")
(setq sset (ssget))
(setq cnt 0)
(repeat (sslength sset)
(setq ent (ssname sset cnt))
(setq dxdt (entget ent))
(setq dxfold (assoc 8 dxdt))
(setq dxfnew '(8 . "L-ANNO_TEXT"))
(setq dxfdnew (subst dxfnew dxfold dxdt))
(entmod dxfdnew)
(setq cnt (1+ cnt))
)
(command "change" "P" "c" "" "BYLAYER" "" sset)
(princ)
)
首先,感谢Grrr在上述程序上对我的帮助。它工作得很好。我只想再添加一个命令,将图层颜色设置为“按图层”。我试图添加突出显示的代码,但没有成功。任何帮助都将不胜感激。提前谢谢。
(defun c:tt (/ CNT DXDT DXFDNEW DXFNEW DXFOLD ENT SSET )
(command "_.Layer" "_Make" "L-ANNO_TEXT" "_Color" "7" "" "_LType" "Continuous" "" "")
(setq sset (ssget))
(setq cnt 0)
(repeat (sslength sset)
(setq ent (ssname sset cnt))
(setq dxdt (entget ent))
(setq dxfold (assoc 8 dxdt))
(setq dxfnew '(8 . "L-ANNO_TEXT"))
(setq dxfdnew (subst dxfnew dxfold dxdt))
(entmod dxfdnew)
(setq cnt (1+ cnt))
)
(command "CHPROP" sset "" "COLOR" "BYLAYER" "LTYPE" "BYLAYER" "")
(princ)
)
知道了! 您还可以使用子功能更改重复循环中的实体颜色:
史蒂夫 @StevJ你试过命令setbylayer吗?
不确定添加了哪个版本的AutoCAD,但其工作原理与您发布的代码类似。具有在块上工作的优势。注意,命令行上的设置提示可以修改命令的工作方式-仅限setbylayer颜色、线型等。。 是的,我不是它的真正粉丝。要得到结果,需要回答的问题太多。
我想选择我的对象,发出命令(BL),按Enter键并继续。
史蒂夫
我非常感谢Grrr,但我只知道基本代码;(
谢谢StevJ,我以后会用这个。 好啊我真的很烦,我不能相信作者,所以我在搜索了一段时间后又找到了它。
作者:LeeMac 2010年2月2日
http://www.cadtutor.net/forum/showthread.php?44398-宏
职位#2
史蒂夫
非常感谢史蒂夫,我很欣赏你的高贵。
以下是Vanilla AutoLISP版本,它可能提供更好的性能:
或者,为了避免选择已经具有所需特性的对象:
(defun c:bl ( / i s )
(if (setq s (ssget "_:L"))
(repeat (setq i (sslength s))
(entmod (append (entget (ssname s (setq i (1- i)))) '((006 . "ByLayer") (062 . 256) (370 . -1))))
)
)
(princ)
)
这张看起来很有创意,谢谢你的发帖!
页:
[1]
2