获取字符串(&S)
你好我正试图编写一个lisp来帮助我更容易地编写立面引线和材质代码。
但似乎我没有理解一些函数。
我只想通过输入2位数字来设置物料代码,例如,“1”+“3”应返回WC03。但是现在!退料1!代码返回3。。。。。和物料代码返回物料代码。。。。。。
(setq材料(getstring“\n指定材料:”)
(setq代码(getstring“\n指定材料:”)
(setq MaterialCode(strcat“Material”“Num”)) 嘿伙计们,
我只是想自救,我应该使用getkword,它应该如下所示
(setq Mat1(getkword“\n:”)
(initget“01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 18 19 20”)
(setq Num1(getkword“\n:”)
(setq Mat1Num1(strcat Mat1 Num1))
然后得到我想要的
但是为了使它更友好,在没有澄清窗口询问哪个数字是1的情况下,如何将类型1=01? 您好,请使用代码标签
此代码带有代码标记
(defun matNum (/ l i s mat1 Num1)
(setq i 1
l '("BL" "CP" "GL" "FA" "FB" "ML" "P" "PL" "SP" "ST" "TL" "WC"
"WD")
)
(repeat (length l)
(setq s (cons (strcat (itoa i) "_" (nth (1- i) l) " / ") s))
(setq i (1+ i))
)
(initget 7)
(if
(and
(setq i (getint (strcat "\nIndex number ["
(apply 'strcat (reverse s))
"]? : "
)
)
)
(<= i (length l))
(setq mat1 (nth (1- i) l))
(progn
(initget 7)
(setq i (getint "Enter number 1~20 ? : "))
(setq Num1 (itoa i))
(<= i 20)
)
)
(princ (strcat Mat1
(if (< i 10)
(strcat "0" Num1)
Num1
)
)
)
(prompt "\nInvalid Input.. ")
)
;(princ) ; removed
)
韩,你好,
谢谢它工作得很好!
我设置Mat1和Num1的原因是为了帮助在下一步中插入一个属性块,并根据刚刚输入的内容重命名该块,例如,通过运行lisp并输入“1”“1”,然后得到一个名为BL01的属性块。
有什么提示吗?非常感谢:)
我在想命令Gatte,然后我把它写在我的lisp中
(命令“gatte”)并返回gatte未知命令“gatte” GATTE是一个全局属性编辑函数。
如果你想重命名块,我只需要“插入”常规块,并在ENTLAST上使用重命名函数?
您好,我附上了一张图片来阐明我的想法:)
https://image.ibb.co/mdytoG/a123.png
谢谢
狮子座
步骤1已完成,卡在步骤2:( 我在下面找到了SMadsen的lisp,这是我关闭的,只是它在所有块中更改了标记
信贷:SMadsen
https://www.theswamp.org/index.php?topic=5917.0
(defun changeAttribValue(ent atttag oldval newval/entl)
(while(and ent(/=“sequend”(cdr(assoc 0(setq entl(entget ent 107;)а))))))
(和(=atttag(cdr(assoc 2 entl)))
(=oldval(cdr(assoc 1 entl)));
(entmod(subst(cons 1 newval)(assoc 1 entl)entl))
(entupd ent)
(mapcar’princ(list“\n”oldval“->”newval))
)
(setq ent(entnext ent))
)
)
(定义C:CHATTRIB(/ss a attag bname oldval newval)
(和(/=“”(setq bname(getstring“\n块名:”))
(/=“”(setq attag(getstring T“\n标记:”))
(/=“”(setq oldval(getstring T“\n旧值:”))
(/=“”(setq newval(getstring T“\n新值:”))
(setq a 0
ss(ssget“X”(list)(0。“INSERT”)'(66.1)(cons 2 bname)))
)
(重复(sslength ss)
(changeAttribValue(ssname ss a)attag oldval newval)
(setq a(1+a))
)
)
)
页:
[1]
2