wx302008008 发表于 2021-11-21 17:02:56

尺寸标注添加前后缀 去除前后缀

(defun c:ttt ( / a ss n i qz hz qz0 hz0)
(setq a (getint ":" ))
(princ)
(cond
((= a 1)
    (princ "选择需要添加前后缀的线性标注:")
(princ)
(setq ss (ssget '((0 . "DIMENSION")))
       n (sslength ss)
       i 0
)
    (setq qz (getstring "输入要添加的前缀:"))
    (if
      (= qz nil)
      (setq qz "")
    )
    (setq hz (getstring "输入要添加的后缀:"))
    (if
      (= hz nil)
      (setq hz "")
    )
(while (< i n)
    (setq qz0 (Vlax-Get (Vlax-Ename->Vla-Object (ssname ss i)) 'TextPrefix )
      hz0 (Vlax-Get (Vlax-Ename->Vla-Object (ssname ss i)) 'TextSuffix )
    )
    (Vlax-Put-Property (Vlax-Ename->Vla-Object (ssname ss i)) 'TextPrefix (if (= qz0 "") qz (strcat qz qz0)))
    (Vlax-Put-Property (Vlax-Ename->Vla-Object (ssname ss i)) 'TextSuffix (if (= hz0 "") hz (strcat hz0 hz)))
      (setq i (+ i 1))
)
)
((= a 2)
      (princ "选择需要删除前缀的线性标注:")
(princ)
(setq ss (ssget '((0 . "DIMENSION")))
       n (sslength ss)
       i 0
)
(while (< i n)
    (Vlax-Put-Property (Vlax-Ename->Vla-Object (ssname ss i)) 'TextPrefix "")
      (setq i (+ i 1))
)
)
((= a 3)
      (princ "选择需要删除后缀的线性标注:")
(princ)
(setq ss (ssget '((0 . "DIMENSION")))
       n (sslength ss)
       i 0
)
(while (< i n)
    (Vlax-Put-Property (Vlax-Ename->Vla-Object (ssname ss i)) 'TextSuffix "")
      (setq i (+ i 1))
)
)
)
)

magicheno 发表于 2022-5-7 20:13:51

感谢大佬分享

gzsod 发表于 2022-5-12 13:16:18

感谢分享正需要能做指定库就更好了

菜鸟初来乍到 发表于 2023-3-5 08:10:28

感谢楼主无私奉献

shirker 发表于 2024-2-17 13:54:24

谢谢分享,正要用的

ljpnb 发表于 2024-2-17 15:08:59

应该比较有用,平时前缀和后缀没有特别去关注,只是直接修改了TextOverride的值,可能修改前后缀更合适。
页: [1]
查看完整版本: 尺寸标注添加前后缀 去除前后缀