明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4783|回复: 38

做个小玩意编号递增

  [复制链接]
发表于 2023-9-17 16:45:42 | 显示全部楼层 |阅读模式
本帖最后由 咏郡 于 2024-6-29 22:14 编辑

有时需要在图纸上查数量,或做编号,每次都得复制其它的在改,所以做了此插件
论坛上指定有类似的,但不是我的
大佬请绕道,毕竟在你们眼里这都是小意思。
可以指点一二,但不喜勿喷!

应大家的需求做了一下更改,去掉了按空格这一步,改成了左键编号,其它任意键退出!

又做了一下改动,不用按空格,按Q键退出


本帖子中包含更多资源

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

x

评分

参与人数 3明经币 +3 收起 理由
hubeiwdlue + 1 很给力!
xj6019 + 1 赞一个!
ssyfeng + 1 赞一个!

查看全部评分

发表于 2023-9-18 17:18:24 | 显示全部楼层
建议增加个递增刷功能,就是意思我已有了数字,复制10个比如,然后刷的时候,依次递增,参考代码如下:
  1. ;;; 18-数字递增刷4D
  2. (defun c:4D (/ a b bb box c co col cv dbak dcl_re dclname e e1 e2 en ent ent1 errsub filen fun i key kk l l1 len lst lst1 lst2 lst3
  3.                msg name newlist orerr pix pt pt1 pt2 s sbak si ss ss1 ssparm st2 st3 st4 stream tempname txt1 txt2 txt3 txtlong vvs
  4.                wbak x y zz
  5.             )
  6.   (defun llt:match (pt col ssparm fun / a b c co cv e e1 e2 ent i len lst msg pix pt1 pt2 si ss ss1 x y) ; 带有刷子的ssget功能子程序
  7.                                        ; ,天神
  8.     (defun d_brush (col x y len / a b c)
  9.       (grvecs (list col (list (- x (setq a (* len 1.5))) (- y len)) (list (- x a) (setq b (- y (* len 7.5)))) col (list (- x
  10.                                                                                                                            (setq c
  11.                                                                                                                                  (* len 0.5)
  12.                                                                                                                            )
  13.                                                                                                                         ) y
  14.                                                                                                                   ) (list (- x c) b)
  15.                     col (list (+ x c) y) (list (+ x c) b) col (list (+ x a) (- y len)) (list (+ x a) b) col (list (- x (setq a
  16.                                                                                                                              (* len
  17.                                                                                                                                 4.5
  18.                                                                                                                              )
  19.                                                                                                                        )
  20.                                                                                                                   ) b
  21.                                                                                                             ) (list (+ x a) b) col
  22.                     (list (- x a) b) (list (- x (setq c (* len 6.5))) (- y (* len 9))) col (list (+ x a) b) (list (+ x c)
  23.                                                                                                                   (setq a (- y
  24.                                                                                                                              (* len 9)
  25.                                                                                                                           )
  26.                                                                                                                   )
  27.                                                                                                             ) col (list (- x c) a)
  28.                     (list (- x c) (setq b (- y (* len 17)))) col (list (+ x c) a) (list (+ x c) b) col (list (- x c) (setq a
  29.                                                                                                                            (- y
  30.                                                                                                                               (* len
  31.                                                                                                                                  10
  32.                                                                                                                               )
  33.                                                                                                                            )
  34.                                                                                                                      )
  35.                                                                                                        ) (list (+ x c) a) col
  36.                     (list (- x c) (setq a (- y (* len 11)))) (list (+ x c) a) col (list (- x c) (setq a (- y (* len 13))))
  37.                     (list (+ x c) a) col (list (- x c) (setq a (- y (* len 14)))) (list (+ x c) a) col (list (- x c) b)
  38.                     (list (+ x c) b) col (list (- x c) b) (list (- x (* len 11)) (setq a (- y (* len 21.5)))) col (list (- x
  39.                                                                                                                            (* len 2)
  40.                                                                                                                         ) b
  41.                                                                                                                   ) (list (- x
  42.                                                                                                                              (* len
  43.                                                                                                                                 6.5
  44.                                                                                                                              )
  45.                                                                                                                           ) a
  46.                                                                                                                     ) col
  47.                     (list (+ x (* len 2)) b) (list (- x (* len 2.5)) a) col (list (+ x c) b) (list (+ x (* len 2)) a) col
  48.                     (list (- x (* len 11)) a) (list (+ x (* len 3)) a)
  49.               ) (list (list 1 0 0 (* len 14)) (list 0 1 0 (* len -4)) '(0 0 1 0) '(0 0 0 1))
  50.       )
  51.     )
  52.     (defun pickbox (pt / si cv)
  53.       (setq si (* (/ (getvar "pickbox") (cadr (getvar "screensize"))) (getvar "viewsize") 0.5)
  54.             cv (list si si 0)
  55.       )
  56.       (list (mapcar
  57.               '+
  58.               pt
  59.               cv
  60.             ) (mapcar
  61.                 '-
  62.                 pt
  63.                 cv
  64.               )
  65.       )
  66.     )
  67.     (defun p2u (pix)
  68.       (* pix (/ (getvar "viewsize") (cadr (getvar "screensize"))))
  69.     )
  70.     (or
  71.       (setq co (cadr col))
  72.       (setq co 7)
  73.     )
  74.     (or
  75.       (setq col (car col))
  76.       (setq col 7)
  77.     )
  78.     (or
  79.       (setq msg (car ssparm))
  80.       (setq msg "\n选择目标对象: ")
  81.     )
  82.     (setq ssparm (cadr ssparm)
  83.           len (p2u 1)
  84.           x (car pt)
  85.           y (cadr pt)
  86.     )
  87.     (princ msg)
  88.     (while (/= (car pt1) 11)
  89.       (redraw)
  90.       (d_brush col x y len)
  91.       (while (not (member (car (setq pt1 (grread t 12 2))) '(3 11)))
  92.         (setq pt1 (cadr pt1))
  93.         (if (vl-consp pt1)
  94.           (progn
  95.             (if (> (distance pt1 pt) (p2u (* 0.0001 (car (getvar "screensize")))))
  96.               (progn
  97.                 (redraw)
  98.                 (setq len (p2u 1)
  99.                       x (car pt)
  100.                       y (cadr pt)
  101.                 )
  102.                 (d_brush col x y len)
  103.                 (setq pt pt1)
  104.               )
  105.             )
  106.           )
  107.         )
  108.       )
  109.       (redraw)
  110.       (if (and
  111.             (= (car pt1) 3)
  112.             (princ msg)
  113.             (not (setq ss1 (apply
  114.                              'ssget
  115.                              (append
  116.                                '("_c")
  117.                                (pickbox (cadr pt1))
  118.                                (list ssparm)
  119.                              )
  120.                            )
  121.                  )
  122.             )
  123.           )
  124.         (progn
  125.           (princ "指定对角点: ")
  126.           (setq pt1 (list (caadr pt1) (cadadr pt1)))
  127.           (while (not (member (car (setq pt2 (grread t 12 1))) '(3 11)))
  128.             (setq pt2 (list (caadr pt2) (cadadr pt2)))
  129.             (if (vl-consp pt1)
  130.               (progn
  131.                 (if (> (distance pt2 pt) (p2u (* 0.0001 (car (getvar "screensize")))))
  132.                   (progn
  133.                     (redraw)
  134.                     (setq len (p2u 1)
  135.                           x (car pt)
  136.                           y (cadr pt)
  137.                           co (abs co)
  138.                     )
  139.                     (if (> (car pt1) (car pt2))
  140.                       (setq co (- co))
  141.                     )
  142.                     (d_brush col x y len)
  143.                     (grvecs (list co pt1 (list (car pt1) (cadr pt2)) co pt2 (list (car pt1) (cadr pt2)) co pt2 (list (car pt2)
  144.                                                                                                                      (cadr pt1)
  145.                                                                                                                ) co pt1
  146.                                   (list (car pt2) (cadr pt1))
  147.                             )
  148.                     )
  149.                     (setq pt pt2
  150.                           ss1 (ssget (if (minusp co)
  151.                                        "_c"
  152.                                        "_w"
  153.                                      ) pt1 pt2 ssparm
  154.                               )
  155.                     )
  156.                   )
  157.                 )
  158.               )
  159.             )
  160.           )
  161.         )
  162.       )
  163.       (or
  164.         ss
  165.         (setq ss (ssadd))
  166.       )
  167.       (if ss1
  168.         (progn
  169.           (setq lst '())
  170.           (repeat (setq i (sslength ss1))
  171.             (setq e (ssname ss1 (setq i (1- i))))
  172.             (setq ent (entget e))
  173.             (setq pt1 (cdr (assoc 10 ent)))
  174.             (setq lst (cons (list pt1 e) lst))
  175.           )
  176.           (setq lst (vl-sort lst (function (lambda (e1 e2) ; 框选文本先由上到下排序(其它情况自己修改)
  177.                                              (> (cadr (car e1)) (cadr (car e2)))
  178.                                            )
  179.                                  )
  180.                     )
  181.           )
  182.           (setq lst (vl-sort lst (function (lambda (e1 e2) ; 框选文本后由左到右排序(其它情况自己修改)
  183.                                              (< (car (car e1)) (if (and
  184.                                                                      (>= (car (car e2)) (- (car (car e1)) txtlong))
  185.                                                                      (<= (car (car e2)) (+ (car (car e1)) txtlong))
  186.                                                                    )
  187.                                                                  (car (car e1))
  188.                                                                  (car (car e2))
  189.                                                                )
  190.                                              )
  191.                                            )
  192.                                  )
  193.                     )
  194.           )
  195.           (setq lst (reverse lst))
  196.           (repeat (setq i (length lst))
  197.             (setq e (cadr (nth (setq i (1- i))
  198.                                lst
  199.                           )
  200.                     )
  201.             )
  202.             (ssadd e ss)
  203.             (redraw e 3)
  204.             (apply
  205.               fun
  206.               (list e)
  207.             )
  208.           )
  209.         )
  210.       )
  211.       (setq ss1 nil)
  212.     )
  213.     (redraw)
  214.     ss
  215.   )
  216.   (defun llt:entsel (pt col / a b c col en ent len pix pt x y) ; 带有刷子的entsel功能子程序,caoyin老大提供
  217.     (defun p2u (pix)
  218.       (* pix (/ (getvar "viewsize") (cadr (getvar "screensize"))))
  219.     )
  220.     (defun d_brush (col x y len / a b c)
  221.       (grvecs (list col (list (- x (setq a (* len 1.5))) (- y len)) (list (- x a) (setq b (- y (* len 7.5)))) col (list (- x
  222.                                                                                                                            (setq c
  223.                                                                                                                                  (* len 0.5)
  224.                                                                                                                            )
  225.                                                                                                                         ) y
  226.                                                                                                                   ) (list (- x c) b)
  227.                     col (list (+ x c) y) (list (+ x c) b) col (list (+ x a) (- y len)) (list (+ x a) b) col (list (- x (setq a
  228.                                                                                                                              (* len
  229.                                                                                                                                 4.5
  230.                                                                                                                              )
  231.                                                                                                                        )
  232.                                                                                                                   ) b
  233.                                                                                                             ) (list (+ x a) b) col
  234.                     (list (- x a) b) (list (- x (setq c (* len 6.5))) (- y (* len 9))) col (list (+ x a) b) (list (+ x c)
  235.                                                                                                                   (setq a (- y
  236.                                                                                                                              (* len 9)
  237.                                                                                                                           )
  238.                                                                                                                   )
  239.                                                                                                             ) col (list (- x c) a)
  240.                     (list (- x c) (setq b (- y (* len 17)))) col (list (+ x c) a) (list (+ x c) b) col (list (- x c) (setq a
  241.                                                                                                                            (- y
  242.                                                                                                                               (* len
  243.                                                                                                                                  10
  244.                                                                                                                               )
  245.                                                                                                                            )
  246.                                                                                                                      )
  247.                                                                                                        ) (list (+ x c) a) col
  248.                     (list (- x c) (setq a (- y (* len 11)))) (list (+ x c) a) col (list (- x c) (setq a (- y (* len 13))))
  249.                     (list (+ x c) a) col (list (- x c) (setq a (- y (* len 14)))) (list (+ x c) a) col (list (- x c) b)
  250.                     (list (+ x c) b) col (list (- x c) b) (list (- x (* len 11)) (setq a (- y (* len 21.5)))) col (list (- x
  251.                                                                                                                            (* len 2)
  252.                                                                                                                         ) b
  253.                                                                                                                   ) (list (- x
  254.                                                                                                                              (* len
  255.                                                                                                                                 6.5
  256.                                                                                                                              )
  257.                                                                                                                           ) a
  258.                                                                                                                     ) col
  259.                     (list (+ x (* len 2)) b) (list (- x (* len 2.5)) a) col (list (+ x c) b) (list (+ x (* len 2)) a) col
  260.                     (list (- x (* len 11)) a) (list (+ x (* len 3)) a)
  261.               ) (list (list 1 0 0 (* len 14)) (list 0 1 0 (* len -4)) '(0 0 1 0) '(0 0 0 1))
  262.       )
  263.     )
  264.     (redraw)
  265.     (setq len (p2u 1)
  266.           x (car pt)
  267.           y (cadr pt)
  268.     )
  269.     (d_brush col x y len)
  270.     (while (not (member (car (setq pt1 (grread t 12 2))) '(3 11)))
  271.       (setq pt1 (cadr pt1))
  272.       (if (vl-consp pt1)
  273.         (progn
  274.           (or
  275.             pt
  276.             (setq pt pt1)
  277.           )
  278.           (setq x (car pt)
  279.                 y (cadr pt)
  280.           )
  281.           (if (> (distance pt1 pt) (p2u (* 0.0001 (car (getvar "screensize")))))
  282.             (progn
  283.               (redraw)
  284.               (setq len (p2u 1)
  285.                     x (car pt)
  286.                     y (cadr pt)
  287.               )
  288.               (d_brush col x y len)
  289.               (setq pt pt1)
  290.             )
  291.           )
  292.         )
  293.       )
  294.     )
  295.     (redraw)
  296.     (and
  297.       (= (car pt1) 3)
  298.       (vl-consp (cadr pt1))
  299.       (setq en (nentselp (cadr pt1)))
  300.     )
  301.     (setq ent (car en))
  302.     (setq pt1 (cadr pt1))
  303.     (if (cadddr en)
  304.       (setq name (cadddr en))
  305.     )
  306.     ent
  307.   )
  308.   (defun errsub (msg)
  309.     (if (not (member msg '("console break" "Function cancelled"
  310.                       "quit / exit abort" ""
  311.                      )
  312.              )
  313.         )
  314.       (princ (strcat "\n" msg))
  315.     )                                       ; if
  316.     (redraw)
  317.     (setq *error* orerr)
  318.     (prin1)
  319.   )
  320.   (defun show_list (key newlist)
  321.     (start_list key)
  322.     (mapcar
  323.       'add_list
  324.       newlist
  325.     )
  326.     (end_list)
  327.   )
  328.   (defun jys001 (x kk / ent txt1 txt3 zz) ; 首部框
  329.     (setq ent (entget x))
  330.     (setq txt1 (cdr (assoc 1 ent)))
  331.     (setq zz 1)
  332.     (while (or
  333.              (> (atoi (substr txt1 zz 1)) 0)
  334.              (= (substr txt1 zz 1) "0")
  335.            )
  336.       (setq zz (+ zz 1))
  337.     )
  338.     (if (> zz (strlen txt1))
  339.       (setq txt3 kk)
  340.       (setq txt3 (strcat kk (substr txt1 zz)))
  341.     )
  342.     (entmod (subst
  343.               (cons 1 txt3)
  344.               (assoc 1 ent)
  345.               ent
  346.             )
  347.     )
  348.   )
  349.   (defun jys002 (x / ent txt3)               ; 尾部框
  350.     (if (and
  351.           (setq ent (entget x))
  352.           (member (cdr (assoc 0 ent)) '("TEXT" "MTEXT"))
  353.         )
  354.       (progn
  355.         (setq kk (jys003 kk sbak))
  356.         (if (= zz 0)
  357.           (setq txt3 kk)
  358.           (setq txt3 (strcat txt2 kk))
  359.         )
  360.         (entmod (subst
  361.                   (cons 1 txt3)
  362.                   (assoc 1 ent)
  363.                   ent
  364.                 )
  365.         )
  366.       )
  367.     )
  368.   )
  369.   (defun jys003 (st2 sbak / l l1 s st3 st4) ; 处理尾部数字
  370.     (setq st3 st2
  371.           s "0"
  372.           st4 ""
  373.           l (strlen st2)
  374.     )
  375.     (while (eq s "0")
  376.       (setq s (substr st3 1 1)
  377.             st3 (substr st3 2)
  378.             st4 (if (eq s "0")
  379.                   (strcat st4 s)
  380.                   st4
  381.                 )
  382.       )
  383.     )                                       ; 将首位是0的数字分离出来
  384.     (setq st2 (atoi st2)
  385.           st2 (+ st2 sbak)
  386.           st2 (itoa st2)
  387.           st2 (strcat st4 st2)
  388.           l1 (strlen st2)
  389.           s (substr st2 1 1)
  390.     )
  391.     (if (and
  392.           (= s "0")
  393.           (> l1 l)
  394.         )
  395.       (setq st2 (substr st2 2))
  396.     )                                       ; 处理了形如A09变为A10的问题
  397.     st2
  398.   )
  399.   (defun dzs001 (lst vvs / e)
  400.     (setq e (nth (atoi vvs) lst))
  401.     (cons e (vl-remove e lst))
  402.   )
  403.   (defun dzs002 ()
  404.     (show_list "e01" lst1)
  405.     (show_list "e02" lst2)
  406.     (show_list "e03" lst3)
  407.   )
  408.   (setvar "cmdecho" 0)
  409.   (vl-load-com)
  410.   (setq orerr *error*)
  411.   (setq *error* errsub)
  412.   (while (progn
  413.            (if (setq wbak (vl-registry-read "HKEY_CURRENT_USER\\software\\TH++" "wbak"))
  414.              (setq lst1 (cons wbak (vl-remove wbak '("尾部" "首部"))))
  415.              (setq lst1 '("尾部" "首部"))
  416.            )
  417.            (if (setq sbak (vl-registry-read "HKEY_CURRENT_USER\\software\\TH++" "sbak"))
  418.              (setq lst2 (cons sbak (vl-remove sbak '("1" "2"
  419.                                                "3" "4"
  420.                                                "5" "6"
  421.                                                "7" "8"
  422.                                                "9" "10"
  423.                                                "15" "20"
  424.                                                "30" "40"
  425.                                                "50"
  426.                                               )
  427.                                    )
  428.                         )
  429.              )
  430.              (setq lst2 '("1" "2"
  431.                     "3" "4"
  432.                     "5" "6"
  433.                     "7" "8"
  434.                     "9" "10"
  435.                     "15" "20"
  436.                     "30" "40"
  437.                     "50"
  438.                    )
  439.              )
  440.            )
  441.            (if (setq dbak (vl-registry-read "HKEY_CURRENT_USER\\software\\TH++" "dbak"))
  442.              (setq lst3 (cons dbak (vl-remove dbak '("单选" "窗选"))))
  443.              (setq lst3 '("单选" "窗选"))
  444.            )
  445.            (initget "S ")
  446.            (if (= (setq ent (nentsel (strcat "\n选择起始文字[设置(S)]:<" (car lst1) "加" (setq sbak (car lst2))
  447.                                              ">"
  448.                                      )
  449.                             )
  450.                   )
  451.                   "S"
  452.                )
  453.              (progn
  454.                (setq dclname (cond
  455.                                ((setq tempname (vl-filename-mktemp "dzs.dcl")
  456.                                       filen (open tempname "w")
  457.                                 )
  458.                                  (foreach stream '("\n" "dzs1:dialog {\n"
  459.                                     "     label = "天神递增刷2023,QQ12369867" ;\n" "     :boxed_column {\n"
  460.                                     "         label = "设置" ;\n" "         :row {\n"
  461.                                     "             :text {label = " 递增位置" ; }\n"
  462.                                     "             :text {label = "递增步长" ;  }\n"
  463.                                     "             :text {label = "目标文字" ;  }\n" "         }\n"
  464.                                     "         :row {\n" "             :popup_list { key = "e01" ;  edit_width = 7 ; }\n"
  465.                                     "             :popup_list { key = "e02" ;  edit_width = 7 ; }\n"
  466.                                     "             :popup_list { key = "e03" ;  edit_width = 7 ; }\n"
  467.                                     "         }\n" "     }\n"
  468.                                     "     ok_cancel;\n" " }\n"
  469.                                    )
  470.                                    (princ stream filen)
  471.                                  )
  472.                                  (close filen)
  473.                                  tempname
  474.                                )
  475.                              )
  476.                )
  477.                (setq dcl_re (load_dialog dclname))
  478.                (if (not (new_dialog "dzs1" dcl_re))
  479.                  (exit)
  480.                )
  481.                (show_list "e01" lst1)
  482.                (show_list "e02" lst2)
  483.                (show_list "e03" lst3)
  484.                (action_tile "e01" "(setq lst1 (dzs001 lst1  $value))(dzs002) ")        ; 位置
  485.                (action_tile "e02" "(setq lst2 (dzs001 lst2  $value))(dzs002)") ; 步长
  486.                (action_tile "e03" "(setq lst3 (dzs001 lst3  $value))(dzs002)") ; 对象
  487.                (action_tile "accept" "(setq dcl_pt (done_dialog 1)) ") ; 确定
  488.                (setq bb (start_dialog))
  489.                (if (= bb 1)
  490.                  (progn
  491.                    (vl-registry-write "HKEY_CURRENT_USER\\software\\TH++" "wbak" (car lst1))
  492.                    (vl-registry-write "HKEY_CURRENT_USER\\software\\TH++" "sbak" (car lst2))
  493.                    (vl-registry-write "HKEY_CURRENT_USER\\software\\TH++" "dbak" (car lst3))
  494.                  )
  495.                )
  496.                (unload_dialog dcl_re)
  497.                (vl-file-delete dclname)
  498.              )
  499.            )
  500.            (or
  501.              (= ent "S")
  502.              (null ent)
  503.              (not (member (cdr (assoc 0 (entget (car ent)))) '("TEXT" "MTEXT"
  504.                            "ATTRIB"
  505.                           )
  506.                   )
  507.              )
  508.            )
  509.          )
  510.     (if (= 52 (getvar "errno"))
  511.       (vl-exit-with-error "")
  512.     )
  513.   )
  514.   (setq pt1 (cadr ent))
  515.   (setq txt1 (entget (car ent)))
  516.   (setq box (textbox (list (assoc 1 txt1) (assoc 40 txt1) (assoc 7 txt1)))) ; 文本框坐标
  517.   (setq txtlong (/ (- (car (cadr box)) (car (car box))) 2))
  518.   (setq txt1 (cdr (assoc 1 txt1)))
  519.   (setq sbak (car lst2))
  520.   (setq sbak (atoi sbak))
  521.   (if (= (car lst1) "尾部")
  522.     (progn
  523.       (setq zz (strlen txt1))
  524.       (while (and
  525.                (>= zz 1)
  526.                (or
  527.                  (> (atoi (substr txt1 zz 1)) 0)
  528.                  (= (substr txt1 zz 1) "0")
  529.                )
  530.              )
  531.         (setq zz (- zz 1))
  532.       )
  533.       (setq kk (substr txt1 (+ zz 1)))
  534.       (if (/= zz 0)
  535.         (setq txt2 (substr txt1 1 zz))
  536.       )
  537.       (command ".UNDO" "BE")
  538.       (if (= (car lst3) "窗选")
  539.         (llt:match pt1 '(2 7) (list (strcat "\n选择目标文字:<尾部加" (itoa sbak) ">") '((0 . "*TEXT"))) '(lambda (x /)
  540.                                                                                                            (jys002 x)
  541.                                                                                                          )
  542.         )
  543.         (while t
  544.           (princ (strcat "\n选择目标文字:<尾部加" (itoa sbak) ">"))
  545.           (setq name nil)
  546.           (if (and
  547.                 (setq ent (llt:entsel pt1 2))
  548.                 (setq ent (entget ent))
  549.                 (member (cdr (assoc 0 ent)) '("TEXT" "MTEXT"
  550.                          "ATTRIB"
  551.                         )
  552.                 )
  553.               )
  554.             (progn
  555.               (setq kk (jys003 kk sbak))
  556.               (if (= zz 0)
  557.                 (setq txt3 kk)
  558.                 (setq txt3 (strcat txt2 kk))
  559.               )
  560.               (if name
  561.                 (if (and
  562.                       (setq ent1 (entget (car name)))
  563.                       (= (cdr (assoc 0 ent1)) "DIMENSION")
  564.                     )
  565.                   (entmod (subst
  566.                             (cons 1 txt3)
  567.                             (assoc 1 ent1)
  568.                             ent1
  569.                           )
  570.                   )
  571.                   (progn
  572.                     (entmod (subst
  573.                               (cons 1 txt3)
  574.                               (assoc 1 ent)
  575.                               ent
  576.                             )
  577.                     )
  578.                     (entupd (car name))
  579.                   )
  580.                 )
  581.                 (entmod (subst
  582.                           (cons 1 txt3)
  583.                           (assoc 1 ent)
  584.                           ent
  585.                         )
  586.                 )
  587.               )
  588.             )
  589.             (vl-exit-with-error "")
  590.           )
  591.         )
  592.       )
  593.       (command ".UNDO" "E")
  594.     )
  595.   )
  596.   (if (= (car lst1) "首部")
  597.     (progn
  598.       (setq zz 1)
  599.       (while (or
  600.                (> (atoi (substr txt1 zz 1)) 0)
  601.                (= (substr txt1 zz 1) "0")
  602.              )
  603.         (setq zz (+ zz 1))
  604.       )
  605.       (if (= zz 1)
  606.         (setq kk "0")
  607.         (setq kk (substr txt1 1 (- zz 1)))
  608.       )
  609.       (command ".UNDO" "BE")
  610.       (if (= (car lst3) "窗选")
  611.         (progn
  612.           (setq kk (jys003 kk sbak))
  613.           (llt:match pt1 '(2 7) (list (strcat "\n选择目标文字:<首部加" (itoa sbak) ">") '((0 . "*TEXT"))) '(lambda (x /)
  614.                                                                                                              (jys001 x kk)
  615.                                                                                                            )
  616.           )
  617.         )
  618.         (while t
  619.           (setq kk (jys003 kk sbak))
  620.           (princ (strcat "\n选择目标文字:<首部加" (itoa sbak) ">"))
  621.           (setq name nil)
  622.           (if (and
  623.                 (setq ent (llt:entsel pt1 2))
  624.                 (setq ent (entget ent))
  625.                 (member (cdr (assoc 0 ent)) '("TEXT" "MTEXT"
  626.                          "ATTRIB"
  627.                         )
  628.                 )
  629.               )
  630.             (progn
  631.               (setq txt1 (cdr (assoc 1 ent)))
  632.               (setq zz 1)
  633.               (while (or
  634.                        (> (atoi (substr txt1 zz 1)) 0)
  635.                        (= (substr txt1 zz 1) "0")
  636.                      )
  637.                 (setq zz (+ zz 1))
  638.               )
  639.               (if (> zz (strlen txt1))
  640.                 (setq txt3 kk)
  641.                 (setq txt3 (strcat kk (substr txt1 zz)))
  642.               )
  643.               (if name
  644.                 (if (and
  645.                       (setq ent1 (entget (car name)))
  646.                       (= (cdr (assoc 0 ent1)) "DIMENSION")
  647.                     )
  648.                   (entmod (subst
  649.                             (cons 1 txt3)
  650.                             (assoc 1 ent1)
  651.                             ent1
  652.                           )
  653.                   )
  654.                   (progn
  655.                     (entmod (subst
  656.                               (cons 1 txt3)
  657.                               (assoc 1 ent)
  658.                               ent
  659.                             )
  660.                     )
  661.                     (entupd (car name))
  662.                   )
  663.                 )
  664.                 (entmod (subst
  665.                           (cons 1 txt3)
  666.                           (assoc 1 ent)
  667.                           ent
  668.                         )
  669.                 )
  670.               )
  671.             )
  672.             (vl-exit-with-error "")
  673.           )
  674.         )
  675.       )
  676.       (command ".UNDO" "E")
  677.     )
  678.   )
  679.   (setq *error* orerr)
  680.   (princ)
  681. )
 楼主| 发表于 2023-9-24 13:59:51 | 显示全部楼层
lml2023 发表于 2023-9-18 17:18
建议增加个递增刷功能,就是意思我已有了数字,复制10个比如,然后刷的时候,依次递增,参考代码如下:

鼠标左键数值加,右键数值减
http://bbs.mjtd.com/forum.php?mo ... amp;fromuid=7331975
(出处: 明经CAD社区)
试试这个是不是你想要的,这个只能是纯数字
 楼主| 发表于 2023-9-17 21:46:32 | 显示全部楼层
ssyfeng 发表于 2023-9-17 17:31
可能弄成中间不用按回车或空格,单击就插入,右键时就退出会更便捷一些

以前是不按空格的,特意改为按空格的,要不在拖动图纸不小心按到了,至于右键退出,我研究一下,谢谢建议
发表于 2023-9-17 17:15:02 | 显示全部楼层
点个赞,沙发
 楼主| 发表于 2023-9-17 17:20:39 | 显示全部楼层

谢谢谢谢
发表于 2023-9-17 17:31:04 | 显示全部楼层
可能弄成中间不用按回车或空格,单击就插入,右键时就退出会更便捷一些
发表于 2023-9-18 04:06:29 来自手机 | 显示全部楼层
功能真不错
发表于 2023-9-18 06:58:11 | 显示全部楼层
咏郡 发表于 2023-9-17 21:46
以前是不按空格的,特意改为按空格的,要不在拖动图纸不小心按到了,至于右键退出,我研究一下,谢谢建议

怎么不做框选功能
 楼主| 发表于 2023-9-18 07:14:20 | 显示全部楼层
lileiaj 发表于 2023-9-18 06:58
怎么不做框选功能

不知道框谁
发表于 2023-9-18 08:45:30 | 显示全部楼层
点个赞,路过
发表于 2023-9-18 09:43:52 | 显示全部楼层
这个不错,方便多了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 04:32 , Processed in 0.190192 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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