Jessica28 发表于 2022-7-5 23:24:04

添加文本实体

我正在运行autocad MEP 2014。我支持lisp例程,该例程将在图形中添加大量文本。最近我所有的帖子都是关于添加一些东西。。。。。基本上,我有多段文字的图纸。数字20写了数百次。数字25写了数百次,以此类推。。。。我并不是在寻找一个汇总它们的路由,而是一个可以告诉我每个实例有多少个的路由。。。。。现在我进入属性,然后快速选择,然后选择文本,单击内容,然后输入一个值。。。。我对每个数字都这样做。这需要做很多工作。有没有一个程序可以简化这个过程?或者cad可以用一个我不知道的已经存在的命令来完成?
 
 
谢谢Jess

Tharwat 发表于 2022-7-5 23:34:51

试试这个未经测试的程序,让我知道。
 
(defun c:Test (/ st ss)
(if
   (and (/= (setq st (getstring t "\n Specify string to search for :"))
            ""
      )
      (setq ss (ssget "_X" (list '(0 . "*TEXT") (cons 1 st)(cons 410 (getvar 'ctab)))))
   )
   (progn
    (alert (strcat "You have < "
                   (itoa (sslength ss))
                   " > of your input string "
         )
    )
    (sssetfirst nil ss))
    (alert "Nothing found <!>")
)
(princ)
)

Jessica28 发表于 2022-7-5 23:36:08

令人惊叹的是的,它确实有效。。。。。有没有什么方法可以修改例程,这样当它给我一个总数时,它也会选择它们,这样我就可以把它们移到一边,删除它们,然后转到下一个数字?这样做的原因是我更容易选择下一个要数数的数字。。。如果它与我已经计算过的所有其他数字混杂在一起,那么很难找到新的数字。。。。理想情况下,我想用命令选择整个图形,它将填充所有内容的总列表:)

Tharwat 发表于 2022-7-5 23:43:12

我修改了程序,尝试一下,然后告诉我。

Jessica28 发表于 2022-7-5 23:48:00

对成功了!太棒了!这为我节省了很多步骤。。。非常感谢。希望下一步我能找到一个能同时处理所有数据的方法。你们让我的工作越来越轻松。英雄联盟

Tharwat 发表于 2022-7-5 23:54:55

 
太好了,祝你好运。

manohar 发表于 2022-7-5 23:59:54

尊敬的Tharwat先生:,
 
我正在寻找一个lisp添加文本。你很善良,在这个论坛上帮助了很多人,我希望你能在这方面帮助我。
 
我不知道如何解释,所以我附上了一个样本。
 
想要添加植物注释并将结果制成表格或导出到txt文件。
 
谢谢
 
马诺哈。
种植。图纸

Tharwat 发表于 2022-7-6 00:02:49

 
像这样的?
 

(defun c:Test (/ s i e f o x y l lst)
;;    Tharwat 18. mar. 2014    ;;
(princ "\n Select texts to export to txt file :")
(if (setq s (ssget '((0 . "TEXT") (1 . "#*"))))
   (progn (setq o (open (setq f (strcat (getvar 'DWGPREFIX) (vl-filename-base (getvar 'DWGNAME)) ".txt")) "w"))
          (write-line (strcat "DESCRIPTION" "\t" "QTY") o)
          (repeat (setq i (sslength s))
            (setq e (entget (ssname s (setq i (1- i))))
                  x (cdr (assoc 1 e))
                  b ""
            )
            (while (wcmatch (setq a (substr x 1 1)) "1,2,3,4,5,6,7,8,9,0")
            (setq b (strcat b a)
                  x (substr x 2)
            )
            )
            (if (setq y (assoc (setq x (substr x 2)) l))
            (setq l (subst (cons x (+ (atof b) (cdr y))) y l))
            (setq l (cons (cons x (atof b)) l))
            )
          )
          (foreach x l (write-line (strcat (car x) "\t" (rtos (cdr x) 2 1)) o))
          (close o)
          (startapp "notepad.exe" f)
   )
)
(princ)
)

manohar 发表于 2022-7-6 00:11:57

 
感谢您的快速回复。
对不起,我无法把我需要的东西放在线程中。
 
当前结果
 
说明数量
1吨/盎司。I.1
10克/备选A 1
3页/页。D.1
12便士/公顷。E 1
5便士/公顷。E 1
1便士/公顷。E 1
2件/件。D.1
36克/备选方案A 1
1吨/加仑。O 2
 
 
预期结果
 
说明数量
T/AZA。I.1
G/ALT.A 46(36+10)
P/RHA。E 18(12+5+1)
P/PHO-D 5(3+2)
T/PLU。O 2(1+1)

Tharwat 发表于 2022-7-6 00:16:17

我更新了上面的代码,试试看,然后告诉我。
页: [1] 2
查看完整版本: 添加文本实体