tzframpton 发表于 2022-7-6 00:55:09

任何Sty的LAYMCUR等效值

大家好!我很好奇。。。。LAYMCUR命令是我非常常用的命令。实际上,我在我的PGP文件中设置了WW命令,用于快速访问。在做了一些研究之后,据我所知,LAYMCUR是其类型的唯一命令,并且仅适用于层。是否有一个LISP例程在其周围浮动,它会自动读取对象的类型,并将对象类型的样式设置为当前?
 
例如,如果选择一个尺寸并运行命令,它会将拾取的尺寸的样式设置为当前尺寸样式。多重引线样式、表格样式、尺寸样式、文本样式等。。。。整整九码。
 
再说一次,好奇就是一切。谢谢
 
-坦纳

jdiala 发表于 2022-7-6 01:03:54

添加所有要包含的实体,并获取该实体的当前样式。
 
(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)
)

Lee Mac 发表于 2022-7-6 01:09:41

尝试以下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)

tzframpton 发表于 2022-7-6 01:16:41

完美,李。。。绝对完美。将这一个添加到我已经强大的定制李Mac阿森纳。再次感谢!!
 

Lee Mac 发表于 2022-7-6 01:23:56

 
太好了,谢谢你,坦纳!

tzframpton 发表于 2022-7-6 01:34:57

并不是说我在你的程序和网站上有任何“这么说”,但这个漂亮的程序将非常适合添加到你网站上的程序列表中。我知道很多人会从中获得价值。仅仅是大声思考就够了。
 

rkent 发表于 2022-7-6 01:37:31

Tannar-有一个内置的ADDSELECTED命令,以类似的方式工作,它将启动该命令并为该实例设置样式和图层。它不会将图层或样式设置为选中的图层或样式,而是返回到命令启动时的位置。

Lee Mac 发表于 2022-7-6 01:47:16

 
非常感谢Tannar的建议-除非我决定进一步开发,否则我不会在各种论坛上发布许多小的“一次性”程序-例如,如果我要在我的网站上发布此程序,我可能会考虑将其开发为所有对象属性(层、颜色、线型等)的通用应用程序,而不仅仅是样式。
 
但就这个应用程序而言,我认为大多数人都会使用ADDSELECTED命令(可从右键单击菜单获得)——我相信这是2011年引入的。
 
尽管如此,我还是很感激你的建议!
 

 
编辑:rkent用ADDSELECTED建议打败了我!

tzframpton 发表于 2022-7-6 01:48:39

rkent和Lee-感谢您的回复。Add Selected是我使用的东西,但永久切换是我想要的,我现在肯定有了。
 
@李,你的回答很有道理,关于增加你的下载部分。

Lee Mac 发表于 2022-7-6 01:58:20

 
..........
页: [1]
查看完整版本: 任何Sty的LAYMCUR等效值