ashfaq 发表于 2022-7-6 06:31:13

基于样式查找文本

大家好!!
 
我是autolisp的新手。我需要帮助来解决这个问题。。
 
我希望在图纸中找到特定风格(如罗马语)的多行文字“J”,并检索其位置(x,y坐标)。我试图在文本的各个位置用一个块(比如“星”)替换所有出现的文本。我找到了lisp程序来查找文本,但我似乎不知道如何使用其属性来进一步处理。
 
急切地等待回应。。。

Tharwat 发表于 2022-7-6 06:37:52

欢迎来到论坛。
 
不能将Lisp与Autocad LT一起使用。

ashfaq 发表于 2022-7-6 06:41:38

嗯,我必须说,你似乎是一个敏锐的观察者。我实际上在使用Autocad 2011。我不认为我的个人资料会对回复产生影响。

Tharwat 发表于 2022-7-6 06:45:30

好的,你说的多行文字“J”是什么意思?
 
你会用一个普通块(不是属性块或动态块)来替换所有文本和MTEXT对象吗?

ashfaq 发表于 2022-7-6 06:48:37

我正在尝试将图形从PDMS软件转换到autocad。PDMS中的角度符号在autocad中表示为J。我发现正在使用的字体样式叫做“FOP11901”。这实际上是与autocad不兼容的PDMS符号库。因此,我考虑开发一个autolisp文件,该文件将:
 
1.查找所有出现的具有fontstyle“FOP11901”的多行文字“J”
2、检索其位置坐标。
3、删除文本。
4、在同一位置插入“starang”块(可在图纸中找到)。
 
希望这能解决我的问题

Tharwat 发表于 2022-7-6 06:52:41

 
因此,您需要根据其字体样式选择多行文字,而不是根据您命名的文字样式?
我还是不知道你说的多行文字“j”是什么意思?(如果其字体样式为块,则这可能是唯一需要替换为块的字符串
根据上述说法)?

ashfaq 发表于 2022-7-6 06:57:31

 
我附上了相同的屏幕截图:
 
http://s8.postimage.org/x34tnxp2d/image.png
 
我相信是文字风格,而不是字体风格。
 
 
我的意思是,我有一个多行文本,只有一个字符串条目,那就是字母“J”。此多行文本需要用块替换。

Tharwat 发表于 2022-7-6 07:03:11

可以
 
现在试试这个草稿,告诉我它是否适合你的需要。
 

(defun c:Test (/ b ss)
(if (and (/= (setq b (getstring t "\n Enter name of Block :")) "")
          (if (not (tblsearch "BLOCK" B))
            (progn
            (princ "\n name of Block is not existed ")
            nil
            )
            t
          )
      (progn (prompt " Select texts ")
          (setq
            ss (ssget "_:L" '((0 . "*TEXT") (1 . "j") (7 . "FOP11901")))
          ))
   )
   ((lambda (i / sn e)
      (while (setq sn (ssname ss (setq i (1+ i))))
      (if (entmakex (list '(0 . "INSERT")
                            (cons 2 b)
                            (assoc 10 (entget sn))
                            (assoc 50 (entget sn))
                            '(41 . 1.)
                            '(42 . 1.)
                            '(43 . 1.)
                      )
            )
          (entdel sn)
      )
      )
    )
   -1
   )
)
(princ)
)

ashfaq 发表于 2022-7-6 07:07:16

谢谢Tharwat,代码草案有效!!!:D

Tharwat 发表于 2022-7-6 07:13:57

 
很高兴听到这个消息。
 
祝你好运
页: [1] 2
查看完整版本: 基于样式查找文本