mcxiangxin 发表于 2008-6-8 22:33:00

请教一个关于插入的问题

<p>我编了一段程序,目的要能连续插入</p><p>(defun c:TT ( / laspt)<br/>(setq dwg "aa" laspt 1);假设CAD支持搜索目录有aa.dwg这个文件<br/>(while laspt<br/>(command "_.insert" dwg pause "1" "1" pause)&nbsp;<br/>)&nbsp;<br/>)</p><p>这个程序肯定是只能按"ESC"才能退出.但按了"ESC"后老是出现"; 错误: 函数被取消",怎样才能让它不出现这个提示.能不能让提示是"取消"</p><p>程序怎样改一下,可以实现不按"ESC",按了空格或回车也能退出呢?不过前提是指定插入点时不用getpoint函数,而要用pause.这样的目的是想在插入前能看到插入对象的外形.</p>

rdhhb 发表于 2008-6-9 17:44:00

<p>楼上看看我的程序吧,也是插入的,不要按ESC,我记得有个函数可以关闭错误提示,现在一时半会想不起来了。<br/>我的程序把输入内容保存到注册表,每次都读,而不是每次打开CAD都进行初始化。</p><p></p><p>(defun c:vv (/ d s oldosmode jtbl sdg)&nbsp;&nbsp;&nbsp;;插入接头,可以统计<br/>&nbsp; (prompt "\n新建接头,缆线图上用,可以统计工作量!VC命令画接头,不可以统计个数!")<br/>&nbsp; (setq sdg (getvar "cmdecho"))<br/>&nbsp; (setq oldosmode (getvar "osmode"))<br/>&nbsp; (setvar "cmdecho" 0)<br/>&nbsp; (vl-cmdf "osnap" "end,mid,cen,nod,qua,int,ins,per,tan,nea,qui,app,ext,par")<br/>&nbsp; (banquanshuminghhb)<br/>&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp; (setq s (findfile "接头.dwg"))<br/>&nbsp;&nbsp;&nbsp; (if (not s) (VL-EXIT-WITH-ERROR (alert "\n没有找到 “接头.dwg” !!\n自己定义一个图块吧!!做好后放在&nbsp; ◇BLOCK◇&nbsp; 目录中就OK了!")))<br/>&nbsp;&nbsp;&nbsp;)</p><p>&nbsp; (setq jtbld1 (vl-registry-READ jietoushj "NEW接头"))<br/>&nbsp; (if (not jtbld1)<br/>&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (vl-registry-write jietoushj "NEW接头" "1.8")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq jtbld 1.8))<br/>&nbsp;&nbsp;&nbsp; (setq jtbld (atof jtbld1))<br/>&nbsp;&nbsp;&nbsp; )</p><p>&nbsp; (setq jtbl (getdist (strcat "\n输入<拾取>接头绘制直径&lt;" (rtos jtbld) "&gt;:")))<br/>&nbsp; (if (not jtbl)<br/>&nbsp;&nbsp;&nbsp; (setq jtbl jtbld)<br/>&nbsp;&nbsp;&nbsp; (setq jtbld jtbl))<br/>&nbsp; (PROMPT (STRCAT "\n当前新接头图上直径为:" (rtos jtbl)))<br/>&nbsp; (while t<br/>&nbsp;&nbsp;&nbsp; (initget 6 "c")<br/>&nbsp;&nbsp;&nbsp; (setq d (getpoint "\n指定插入点[修改直径&lt;C&gt;]:"))<br/>&nbsp;&nbsp;&nbsp; (if (= d "c") (c:vv))<br/>&nbsp;&nbsp;&nbsp; (if (not d) (VL-EXIT-WITH-ERROR "")<br/>&nbsp;&nbsp;&nbsp;&nbsp; (PROGN<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (vl-cmdf "insert" "接头" "s" (/ jtbl 1.9) d "")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (vl-registry-write jietoushj "NEW接头" (rtos jtbld))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; (initget 6 "c")<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp; ;(if (not d)&nbsp;&nbsp;&nbsp; (c:vv)&nbsp; )<br/>&nbsp;;o (setq d nil)&nbsp; <br/>&nbsp; (setvar "cmdecho" sdg)<br/>&nbsp; (setvar "osmode" oldosmode)<br/>&nbsp; (princ)<br/>)</p>

mcxiangxin 发表于 2008-6-9 21:32:00

??
页: [1]
查看完整版本: 请教一个关于插入的问题