Rooster 发表于 2022-7-6 12:55:33

帮助编辑LISP

大家好。我使用下面的LISP将指定的前缀添加到文本位,然后删除相应的注释。
 
有人能帮我编辑一下,使它更通用吗?与其每次选择便笺时都添加相同的前缀,不如复制要用作前缀的内容,将其添加到所选文本中,然后删除便笺,只留下现在添加前缀的文本。。。。希望一切都有意义
 
;ADDS PREFIX OF 'DK:' TO SELECTED TEXT & THEN DELETES ORIGINAL DK NOTE
(defun c:dk (/ tSet dl)
   (vl-load-com)
   (if    (setq tSet (ssget '((0 . "TEXT,MTEXT"))))
   (foreach tx (mapcar 'vlax-ename->vla-object
               (vl-remove-if
               'listp
               (mapcar 'cadr (ssnamex tSet))
               ) ;_end vl-remove-if
         ) ;_end mapcar
       (vla-put-TextString
       tx
       (strcat "DK:" (vla-get-TextString Tx))
       ) ;_end vla-put-TextString
   ) ; end foreach
   ) ; end if
   (setq dl (ssget))
   (command "erase" dl "")
   (princ)
) ; end of c:dk

Lee Mac 发表于 2022-7-6 13:20:19

这样地?
 

(defun c:ptxt (/ ent pr ss)
(if (and (setq ent (car (entsel "\nSelect Prefix Text: ")))
          (wcmatch (cdr (assoc 0 (entget ent))) "*TEXT")
          (setq pr (cdr (assoc 1 (entget ent)))))
   (if (setq ss (ssget '((0 . "*TEXT"))))
   (progn
       (mapcar
         (function
         (lambda (x)
             (vla-put-TextString x
               (strcat pr (vla-get-TextString x)))))
         (mapcar 'vlax-ename->vla-object
         (vl-remove-if 'listp
             (mapcar 'cadr (ssnamex ss)))))
       (entdel ent))))
(princ))

Rooster 发表于 2022-7-6 13:52:29

李,你永远是那个男人!谢谢

Lee Mac 发表于 2022-7-6 13:56:36

没问题,我不介意编写快速文本编辑Lisp
页: [1]
查看完整版本: 帮助编辑LISP