thanhdattdk 发表于 2022-7-5 16:36:13

扫描所选内容一次并递增

大家好!
我希望扫描选择一次,并逐步希望大家帮助请
我发了一张照片。谢谢大家

Tharwat 发表于 2022-7-5 16:49:51

你好
 
测试这个例程并让我知道;
 

(defun c:Test (/ i s e)
;; Tharwat - Date: 11.Mar.2017        ;;
(if (setq i (getint "\nSpecify increment number :"))
   (while
   (progn
       (if (setq s (car (entsel "\nPick text object :")))
         (if (eq (cdr (assoc 0 (setq e (entget s)))) "TEXT")
         (progn
             (entmod
               (subst (cons 1 (strcat (itoa i) (substr (cdr (assoc 1 e)) 2)))
               (assoc 1 e)
               e
               )
             )
             (setq i (1+ i))
         )
         (princ "\nInvalid object!. Try again.")
         )
       )
       s
   )
   )
)
(princ)
)

thanhdattdk 发表于 2022-7-5 17:02:42

非常感谢你。你的方式只是选择一个文本,我希望但得到所有的文字,以subst如何??非常感谢。

Lee Mac 发表于 2022-7-5 17:22:07

请尝试以下操作:
(defun c:test ( / i l n s )
   (if (setq s (ssget "_:L" '((0 . "TEXT"))))
       (progn
         (repeat (setq i (sslength s))
               (setq l (cons (entget (ssname s (setq i (1- i)))) l))
         )
         (setq n 0)
         (foreach x (vl-sort l '(lambda ( a b ) (< (cadr (assoc 10 a)) (cadr (assoc 10 b)))))
               (entmod
                   (subst
                     (cons 1
                           (strcat (itoa (setq n (1+ n)))
                               (vl-list->string
                                 (vl-member-if-not
                                    '(lambda ( x ) (< 47 x 58))
                                       (vl-string->list (cdr (assoc 1 x)))
                                 )
                               )
                           )
                     )
                     (assoc 1 x) x
                   )
               )
         )
       )
   )
   (princ)
)

thanhdattdk 发表于 2022-7-5 17:27:10

非常感谢李和大家。

Lee Mac 发表于 2022-7-5 17:36:18

不客气
页: [1]
查看完整版本: 扫描所选内容一次并递增