[求助]各位高手请问INITGET问题:
(initget 1 "20 25 40 50 65 80 100 150 200 250 300 350 400 450 500
600 700 800 900 1000 1100 1200 1300 1350 1400 1500
1600 1700 1800 1900 2000 2200 2400 2500 2700 2600 2800")
(SETQ CHA3001 (getkword "\n 新管径值:"))
(SETQ CHA3002 (STRCAT "A" CHA3001))
当条件是上面的那一排数字当输入数字之后再让它前面加上A,比如输入100那就是A100变更线型画线
请问为什麽我输入45时会直接跳到A450是不是那边出错了,求请高手赐教 去掉 initget
try
(SETQ CHA3001 (getint "\n 新管径值:"))
(SETQ CHA3002 (STRCAT "A" (itoa CHA3001)))
Andyhon 发表于 2012-3-30 08:39 static/image/common/back.gif
去掉 initget
try
(SETQ CHA3001 (getint "\n 新管径值:"))
谢谢长老的回覆
可是这样就输入错误就不会载入线型,一样会通过下一个程序,主要是想练习限制在那一些范围
不知道有没有其它的方法…..
另外可以再请教一下跟据上方的数字来作判别式做IF可以容纳的下嘛?不知道可以放多少个
(setq lst
'(20 25 40 50 65 80 100 150 200 250 300 350 400 450
500 600 700 800 900 1000 1100 1200 1300 1350 1400 1500
1600 1700 1800 1900 2000 2200 2400 2500 2700 2600 2800
)
)
(while (not
(member (SETQ CHA3001 (getint "\n 新管径值:")) Lst)
))
(SETQ CHA3002 (STRCAT "A" (itoa CHA3001))) (setq Lst0 '(20 25 40 50 65 80 100 150 200 250 300 350 400 450
500 600 700 800 900 1000 1100 1200 1300 1350 1400 1500
1600 1700 1800 1900 2000 2200 2400 2500 2700 2600 2800
)
CHA3001 (getint "\n 新管径值:")
)
(if (not (member CHA3001 Lst0))
(setq Lst1 (cons CHA3001 Lst0)
Lst1 (vl-sort Lst1 '<)
n (vl-position CHA3001 Lst1)
item0 (nth (1- n) Lst1)
item1 (nth (1+ n) Lst1)
Mid (* (+ item0 item1) 0.5)
CHA3001 (if (< CHA3001 Mid) item0 item1)
)
)
(setq CHA3002 (strcat "A" (itoa CHA3001))) 谢谢 Andyhon 跟 nzl1116您的帮忙,谢谢! 学习了 看了些贴,眼前一亮,又学了不少,多谢各位。 怪,我把你的代码复制下来试了下,输入45时提示无效,很正常。 学习一下,谢谢 谢谢,又学到一招。
页:
[1]
2