明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1760|回复: 9

[提问] 求输入TT,图纸上有这中文字 比如TL-3~8点击这个文字,在边上生成TL-3 TL-4

[复制链接]
发表于 2024-9-10 09:13:08 | 显示全部楼层 |阅读模式
本帖最后由 664571221 于 2024-9-10 09:14 编辑

求输入TT,图纸上有这中文字 比如TL-3~8点击这个文字,在边上生成TL-3 TL-4  TL-5 TL-6 TL-7 TL-8

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2024-9-10 11:01:00 | 显示全部楼层
  • ;20240910
  • (defun c:zz(/ mystr mystrfg mysort Nstart i Nend pt mystrstrcat)
  •   (setvar "cmdecho" 0)
  •   (setq mystr   (car (Extract_DXF_Values (car (entsel "\n选字:")) 1)))
  •   (setq mystrfg (car(strsplit mystr '("~" "-" "*" "," ";" " " "=" "分隔")) ))
  •   (setq mysort  (car mystrfg))
  •   (setq Nstart  (cadr mystrfg))
  •   (setq i (atoi Nstart) )
  •   (setq Nend   (caddr mystrfg))
  •   (setq pt  (getpoint "选取点位置:"))
  •   (repeat (+ (-(atoi Nend) (atoi Nstart ) ) 1)  
  •           (setq mystrstrcat (strcat mysort "-" (rtos i 2 0) ))
  •           (setq i ( + i 1))
  •           (setq pt (polar pt (* pi 1.5)  2))
  •           (entmake (list '(0 . "TEXT") (cons 1 mystrstrcat) (cons 7 "宋体")(cons 10 pt) (cons 40 1)))
  •   )
  •   (setvar "cmdecho" 1)
  • )
  • (defun strsplit(str splits / i a b)
  •   (while(<""str)
  •     (if(vl-remove'nil(mapcar'(lambda(x)(vl-string-search x str))splits))
  •       (setq i(car(vl-sort(vl-remove'nil(mapcar'(lambda(x)(if(setq l(vl-string-search x str))(cons l x)))splits))
  •        '(lambda(s1 s2)(<(car s1)(car s2)))))
  •       a(cons(substr str 1(car i))a)b(cons(cdr i)b)
  •       str(substr str(+(car i)(strlen(cdr i))1)))
  •       (setq a(cons str a)b(cons "" b)str"")))
  •      (list(reverse a)(reverse b))
  • )
  • (defun Extract_DXF_Values(Ent Code)
  •        (mapcar 'cdr (vl-remove-if-not'(lambda(a)(=(car a)Code))(entget Ent)))
  • )

发表于 2024-9-10 11:02:22 | 显示全部楼层
未测试,仅考虑左对齐text图元
  1. (defun c:tt  (/ a b c en ent h m n pt str)
  2. (while        (setq en (car (entsel "\n拾取文字:")))
  3.   (setq str (cdr (assoc 1 (setq ent (entget en)))))
  4.   (if (wcmatch str "*`-*`~*")
  5.    (progn (setq        m (vl-string-search "-" str)
  6.                 n (vl-string-search "~" str)
  7.                 a (substr str 1 m)
  8.                 b (substr str (+ 2 m) (- n m 1))
  9.                 c (substr str (+ 2 n))
  10.                 b (atoi b)
  11.                 c (atoi c)
  12.                 h (cdr (assoc 40 ent)))
  13.           (setq pt (getpoint "\n拾取点:"))
  14.           (repeat (- c b -1)
  15.            (setq ent (subst (cons 10 pt) (assoc 10 ent) ent)
  16.                  ent (subst (cons 1 (strcat a "-" (itoa b))) (assoc 1 ent) ent)
  17.                  pt  (polar pt (* -0.5 pi) h)
  18.                  b   (1+ b))
  19.            (entmake ent)))))
  20. (princ))
发表于 2024-9-10 11:11:54 | 显示全部楼层
经测试,改了下,可针对任意对齐方式text图元
留上贴,以对比
  1. (defun c:tt  (/ a b c en ent h m n pt str)
  2. (while        (setq en (car (entsel "\n拾取文字:")))
  3.   (setq str (cdr (assoc 1 (setq ent (entget en)))))
  4.   (if (wcmatch str "*`-*`~*")
  5.    (progn (setq        m   (vl-string-search "-" str)
  6.                 n   (vl-string-search "~" str)
  7.                 a   (substr str 1 m)
  8.                 b   (substr str (+ 2 m) (- n m 1))
  9.                 c   (substr str (+ 2 n))
  10.                 b   (atoi b)
  11.                 c   (atoi c)
  12.                 h   (cdr (assoc 40 ent))
  13.                 pt  (getpoint "\n拾取点:")
  14.                 ent (subst (cons 72 0) (assoc 72 ent) ent)
  15.                 ent (subst (cons 73 0) (assoc 73 ent) ent))
  16.           (repeat (- c b -1)
  17.            (setq ent (subst (cons 10 pt) (assoc 10 ent) ent)
  18.                  ent (subst (cons 1 (strcat a "-" (itoa b))) (assoc 1 ent) ent)
  19.                  pt  (polar pt (* -0.5 pi) h)
  20.                  b   (1+ b))
  21.            (entmake ent)))))
  22. (princ))
发表于 2024-9-10 13:00:28 | 显示全部楼层

  1. (defun c:tt () ;"编号分解写字"
  2.   (setq j -1)
  3.   (if (setq ss (ssget '((0 . "text") (1 . "*-*~*"))))
  4.     (while (setq s1 (ssname ss (setq j (1+ j))))
  5.       (setq tx (xyp-DXF 1 s1))
  6.       (setq lst (xyp-StrSprMult tx '("-" "~")))
  7.       (setq i (atoi (cadr lst)))
  8.       (setq th (xyp-DXF 40 s1))
  9.       (xyp-Ctbl (/ th 3.))
  10.       (setq qz  (car lst)
  11.             nn  (1+ (- (atoi (caddr lst)) i))
  12.             pt  (xyp-Pt2X (xyp-9pt s1 6) th)
  13.             lst '()
  14.       )
  15.       (repeat nn
  16.         (setq lst (cons (strcat qz "-" (itoa i)) lst)
  17.               i   (1+ i)
  18.         )
  19.       )
  20.       (xyp-List2Text (reverse lst) 4 pt (* th 1.5))
  21.     )
  22.   )
  23.   (princ)
  24. )

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2024-9-10 14:19:04 | 显示全部楼层
  • (defun c:tt (/ a b c d i l p0 pt sd-dxf wznr zf zt ztgd ztys)
  •   (setq sd-dxf (entget (car (entsel "\n选择对象:"))));获取对象数据
  •   (setq zf (cdr(assoc 1 sd-dxf)))
  •   (setq ztgd (cdr(assoc 40 sd-dxf)))
  •   (setq L (* ztgd 5))
  •   (setq zt (cdr(assoc 7 sd-dxf)))
  •   (setq p0 (cdr(assoc 10 sd-dxf)))
  •   (setq pt (list(+(car p0)L)(cadr p0)))
  •   (setq a (car(sparser zf "-")))
  •   (setq b(sparser (cadr (sparser zf "-")) "~"))
  •   (setq c (fix(atof(nth 0 b))) d (fix(atof(nth 1 b))))
  •   (setq i c ztys 1)
  •   (repeat (+(- d c)1)
  •     (setq wznr(strcat a "-" (itoa i)))
  •     (entmake(list '(0 . "TEXT")(cons 1 wznr)(cons 10 pt)(cons 7 zt)(cons 40 ztgd)(cons 62 ztys)))
  •     (setq i (+ i 1))
  •     (setq pt (list (car pt)(-(cadr pt)(+ ztgd 100))))
  •   )
  •   (princ)
  • )
  • ;删除字符串中的字符
  • (defun sparser (str delim / ptr lst)
  •   (vl-load-com)
  •   (while (setq ptr (vl-string-search delim str))
  •     (setq lst (cons (substr str 1 ptr) lst))
  •     (setq str (substr str (+ ptr 2)))
  •   )
  •   (reverse (cons str lst))
  • )













本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2024-9-10 19:59:24 | 显示全部楼层
弥勒 发表于 2024-9-10 11:01
  • ;20240910
  • (defun c:zz(/ mystr mystrfg mysort Nstart i Nend pt mystrstrcat)
  •   (setvar "c ...

  • 谢谢兄弟........
     楼主| 发表于 2024-9-10 20:02:22 | 显示全部楼层
    夏生生 发表于 2024-9-10 11:02
    未测试,仅考虑左对齐text图元

    谢谢大哥................
     楼主| 发表于 2024-9-10 20:03:44 | 显示全部楼层
     楼主| 发表于 2024-9-11 09:22:29 | 显示全部楼层
    统一网名 发表于 2024-9-10 14:19
  • (defun c:tt (/ a b c d i l p0 pt sd-dxf wznr zf zt ztgd ztys)
  •   (setq sd-dxf (entget (car ( ...

  • 谢谢大哥.....
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
    ©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

    GMT+8, 2024-11-22 20:02 , Processed in 0.211290 second(s), 26 queries , Gzip On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表