需要一些口齿不清。。。
大家好我需要一些lisp,将增加这样的文本。。
1R 1Y 1B 2R 2Y 2B 3R 3Y 3B…) 嗨,mfadzli没有人回应,因为人们不理解?你能解释清楚吗?或者试试其他的线索http://www.cadtutor.net/forum/showthread.php?79801-递增数字。。。。但有特殊的东西。
. 了解你想要什么,你能再详细一点吗?是文字还是多行文字,是在一个层面上。您可以搜索第一个apha字符的所有文本,然后找到最大数字add 1并添加文本。发布dwg进行测试。随着文本数量的增加,如果不是在一层上,可能意味着每一层之间都会有轻微的犹豫。 对不起,这个简单的问题。。呵呵。。
我正在寻找一个lisp来增加文本
例如,我有文本“01”“02”“03”“04”“05”“06”需要替换为“01R”“01Y”“01B”“02R”“02Y”“02B”。
只需选择文本,它就会替换并按照上面示例中的顺序进行操作。
例如,见附件。
样品图纸
我试图弄明白:
这意味着什么
9=“03B”?
28=“10R”?
38=“13Y”?
如果我是对的,那么你可以试试下面的代码,
命令:BRY
选择文字或多行文字
;Add incremental suffix B R Y
;hp# 22/07/14
;http://www.cadtutor.net/forum/showthread.php?87667-Need-some-lisp...
(defun C:BRY(/*error* e tx #)
(defun *error* (msg)
(if (wcmatch (strcase msg) "*CANCEL*,*EXIT*")
(princ msg)
(princ (strcat "\n*Error: " msg))
)
)
(while (setq e (entsel "\nSelect *TEXT: ")) ; *edited thanx mr.Tharwat
(if (and (setq e (car e))
(setq tx (cdr (assoc 1 (entget e))))
(/= (setq # (atof tx)) 0)
;(not (wcmatch (strcase tx) "*B,*R,*Y")) ; *removed
(numberp(read tx)) ; *added
)
(vla-put-textstring
(vlax-ename->vla-object e)
('((# / i n)
(setq
n
(fix (abs #))
i
(rem n 3.))
(strcat
(if
(minusp #)
"-"
(if
(< n 10)
"0"
""))
(rtos
(if
(zerop i)
(/ n 3.)
(1+ (fix (/ n 3.))))
2
0)
(cond
((zerop i) "B")
((= i 1) "R")
((= i 2) "Y"))))
#)))))
(princ "command: BRY")
(princ)
哇!谢谢韩。。。你太棒了。。。这就是我想要的。。
谢谢你的帮助。。我想我需要从现在开始学习lisp。。。呵呵。。
不客气
我编辑了一点
i替换:(not(wcmatch(strcase tx)“*B,*R,*Y”)
收件人:(numberp(read tx))
ie:它只适用于数字文本,例如:01,02,03
所以它不会聚集“卡考”字母文本,例如:ABC、03X、P123等。。
哇!谢谢你。。。
你会说马来语吗?呵呵 对不起,这个论坛是关于CAD和LISP主题的,呵呵
我假设你是新加坡或马来西亚的BCO,他们通常会说“.lah”“…hehe”“…meh”等等。。
我同意@BIGAL:再详细一点,有很多杰出的大师也可以帮助你,我也需要他们的指导
你是怎么想出那个hanhphuc的?你能给我们其他人解释一下吗。
页:
[1]
2