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