ashfaq 发表于 2022-7-6 07:15:46

现在,我再次需要您的帮助来改进:
如果文本以一定角度放置(例如45度),我希望块也以相同角度放置。那怎么办??

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

 
例行程序未经测试就更新了,请尝试一下,希望一切顺利。

ashfaq 发表于 2022-7-6 07:23:11

谢谢塔瓦。它能满足我的需要。干得好!!!
 
PS:我删除了一个额外的括号,并删除了在修改后的代码中选择文本的第二步。
 
(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
                )
                (setq ss (ssget "_X" '((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)
)

Tharwat 发表于 2022-7-6 07:28:27

 
不客气。
 
 
请小心解锁所有层,以避免由于对代码所做的更改而发生任何错误。

ashfaq 发表于 2022-7-6 07:32:47

你好
 
我需要修改之前的代码。
 
早期的代码是将所有文本元素替换为“J”作为条目,“FOP11901”作为带有块的样式。块放置在与文本相同的位置和方向。
 
现在,我希望代码执行以下操作:
1.查找第一个字符为“h”后跟“ISA”或数字的所有文本元素
2、在与文本相同的位置和方向插入块。
3.将字符“h”替换为“”(空白)。
 
为了清晰起见,我附上了原文和修订文本的图片,如果你需要更多信息,请告诉我。
 

 
提前谢谢!!
页: 1 [2]
查看完整版本: 基于样式查找文本