xj6019 发表于 2019-11-19 14:32:20

怎么把标注全部移动到一个图层,另外标注文字可以代码加上划线吗




1.代码可以把所有的标注都一次选择并移动到固定的标注图层吗

2.这是单独的功能可以实现吗,标注可以让标注的数字直接加上划线吗,有时候标注的数值不是实际数值的时候,希望做区分用,每次双击激活后添加上划线有点麻烦,可以代码实现吗,求高手赐教


需要俩代码实现俩功能,老龄新手   希望大家多多指教,无比感谢!!!

xj6019 发表于 2019-11-23 15:49:20

帮我写代码的朋友已经帮我又修改过了   现在可以完美实现我想要的效果了,再次表示感谢,以下是代码,有需要的可以参照一下了


(Defun c:HX (/ ss Le en nn tr str dim)
(princ "\n功能 [標注加上図線]")
(While (setq ss (ssget ":s" '((0 . "DIMENSION"))))   
      (setq Le (sslength ss))
      (Repeat Le
      (setq nn (ssname ss (setq Le (1- Le))))
      (setq en (entget nn))
      (if (= (setq tr (cdr (assoc 1 en))) "")
          (setq dim (rtos (cdr (assoc 42 en)) 2 1)
                str (cons 1 (strcat "{\\O" dim "}")))
          (setq str (cons 1 (strcat "{\\O" tr "}")))         
          )
      (entmod (subst str (assoc 1 en) en))
      )      
)
(princ)
)

琴剑江山_10184 发表于 2019-11-21 16:30:55

xj6019 发表于 2019-11-21 12:50
您好标注加上划线的能帮我改一下吗   拉伸以后的标注运行你的命令后   修改过的标注值就变回实际值了 ...

(Defun c:T2 (/ ss Le en nn tr str)
(princ "\n功能 [标注加上划线]")
(While (setq ss (ssget ":s" '((0 . "DIMENSION"))))   
      (setq Le (sslength ss))
      (Repeat Le
      (setq nn (ssname ss (setq Le (1- Le))))
      (setq en (entget nn))
        (if (= (setq tr (cdr (assoc 1 en))) "")
          (setq str (cons 1 "{\\O<>}"))
          (setq str (cons 1 (strcat "{\\O" tr "}")))          
          )
      (entmod (subst str (assoc 1 en) en))
      )      
)
(princ)
)

琴剑江山_10184 发表于 2019-11-20 09:46:45

(Defun c:Tt (/ ss)
(princ "\n功能 [标注归层]")
(If (setq ss (ssget "X" '((0 . "DIMENSION"))))
    (command "_.chprop" ss "" "LA" "要移到的层名" "")
)
(princ)
)

(Defun c:T2 (/ ss Le en nn)
(princ "\n功能 [标注加上划线]")
(While (setq ss (ssget ":s" '((0 . "DIMENSION"))))   
      (setq Le (sslength ss))
      (Repeat Le
        (setq nn (ssname ss (setq Le (1- Le))))
        (setq en (entget nn))
        (entmod (subst (cons 1 "{\\O<>}") (assoc 1 en) en))
        )      
)
(princ)
)
             
;;命令TT标注归到指定层改成你要的层名T2加上划线

xj6019 发表于 2019-11-20 19:02:38

实验了一下   就是我想要的   非常完美   太感谢了

xj6019 发表于 2019-11-21 11:07:50

不好意思发现一个问题   如果标注的值手动更改过并拉伸后   运行那个加上划线的命令就会把标注值改为当前的实际数值    我希望的是   拉伸后 运行命令的时候数值不变   直接在数值上加上划线能麻烦您帮我改改吗谢谢了

xj6019 发表于 2019-11-21 12:50:03

琴剑江山_10184 发表于 2019-11-20 09:46
;;命令TT标注归到指定层改成你要的层名T2加上划线

您好标注加上划线的能帮我改一下吗   拉伸以后的标注运行你的命令后   修改过的标注值就变回实际值了
麻烦您了谢谢

xj6019 发表于 2019-11-21 17:11:50

本帖最后由 xj6019 于 2019-11-21 17:13 编辑

您好还是不行啊,我是希望图片的效果,如果可以的话,除了这个,我以后实现自己想法的时候可以找你帮忙制作吗,明经币你觉得多少合适,您说个数
您先看看图片   这个效果怎么改改代码能实现啊,我对lisp一点也不懂,最近刚接触   谢谢!!

669423907 发表于 2019-11-21 18:42:30

6楼的可以了啊

xj6019 发表于 2019-11-21 19:27:31

我再试试怎么我使用的时候不行啊

xj6019 发表于 2019-11-21 19:36:58

669423907 发表于 2019-11-21 18:42
6楼的可以了啊
没有吧我换了两个版本的cad 在一台电脑上试了一下   俩cad都不行,我不知道你明白我的意思了吗,打比方尺寸拉出来的是200 运行命令后加上划线    标注拉伸到500的时候   标注加上划线的值我希望还是200而不是随着变成500带着上划线
页: [1] 2
查看完整版本: 怎么把标注全部移动到一个图层,另外标注文字可以代码加上划线吗