任何Sty的LAYMCUR等效值
大家好!我很好奇。。。。LAYMCUR命令是我非常常用的命令。实际上,我在我的PGP文件中设置了WW命令,用于快速访问。在做了一些研究之后,据我所知,LAYMCUR是其类型的唯一命令,并且仅适用于层。是否有一个LISP例程在其周围浮动,它会自动读取对象的类型,并将对象类型的样式设置为当前?例如,如果选择一个尺寸并运行命令,它会将拾取的尺寸的样式设置为当前尺寸样式。多重引线样式、表格样式、尺寸样式、文本样式等。。。。整整九码。
再说一次,好奇就是一切。谢谢
-坦纳 添加所有要包含的实体,并获取该实体的当前样式。
(defun C:test ()
(setq e (car (entsel))
v (cdr (assoc 0 (entget e)))
e (vlax-ename->vla-object e))
(cond
((= v "DIMENSION")
(vla-put-stylename e (getvar 'dimstyle))
)
((= v "MULTILEADER")
(vla-put-stylename e (getvar 'cmleaderstyle))
)
((or (= v "MTEXT") (= v "TEXT"))
(vla-put-stylename e (getvar 'textstyle))
)
((= v "ACAD_TABLE")
(vla-put-stylename e (getvar 'ctablestyle))
)
(t (princ "Do the rest 6 yards..."))
)
(princ)
) 尝试以下Tannar:
(defun c:stymcur ( / ent lst obj sty typ )
(setq lst
'(
("TEXT,MTEXT". textstyle)
("MULTILEADER" . cmleaderstyle)
("ACAD_TABLE". ctablestyle)
)
)
(while
(progn (setvar 'errno 0) (setq ent (car (entsel)))
(cond
( (= 7 (getvar 'errno))
(princ "\nMissed, try again.")
)
( (null ent)
nil
)
( (not (vlax-property-available-p (setq obj (vlax-ename->vla-object ent)) 'stylename))
(princ "\nObject does not have a style.")
)
( (progn
(setq typ (cdr (assoc 0 (entget ent)))
sty (vla-get-stylename obj)
)
(vl-some '(lambda ( x ) (if (wcmatch typ (car x)) (setvar (cdr x) sty))) lst)
)
nil
)
( (wcmatch typ "*DIMENSION") ;; they have to be awkward...
(command "_.-dimstyle" "_R" sty)
)
( (princ "\nThis program is not compatible with that object."))
)
)
)
(princ)
)
(vl-load-com) (princ) 完美,李。。。绝对完美。将这一个添加到我已经强大的定制李Mac阿森纳。再次感谢!!
太好了,谢谢你,坦纳! 并不是说我在你的程序和网站上有任何“这么说”,但这个漂亮的程序将非常适合添加到你网站上的程序列表中。我知道很多人会从中获得价值。仅仅是大声思考就够了。
Tannar-有一个内置的ADDSELECTED命令,以类似的方式工作,它将启动该命令并为该实例设置样式和图层。它不会将图层或样式设置为选中的图层或样式,而是返回到命令启动时的位置。
非常感谢Tannar的建议-除非我决定进一步开发,否则我不会在各种论坛上发布许多小的“一次性”程序-例如,如果我要在我的网站上发布此程序,我可能会考虑将其开发为所有对象属性(层、颜色、线型等)的通用应用程序,而不仅仅是样式。
但就这个应用程序而言,我认为大多数人都会使用ADDSELECTED命令(可从右键单击菜单获得)——我相信这是2011年引入的。
尽管如此,我还是很感激你的建议!
李
编辑:rkent用ADDSELECTED建议打败了我! rkent和Lee-感谢您的回复。Add Selected是我使用的东西,但永久切换是我想要的,我现在肯定有了。
@李,你的回答很有道理,关于增加你的下载部分。
..........
页:
[1]