(defun c:zbom(/ old_la old_os num sc ra ddr pt1 pt2 pp) ;(cmdf) (defun *error* (msg) (princ) ) (setq old_la (getvar "clayer")) (setq old_os (getvar "osmode")) (prompt "\n 输入≦10000的编号!") (if (= num nil) (setq num1 1)) (setq num (getint (strcat "起始序号<"(itoa num1) ">"))) (if (= num nil) (setq num num1)) (cond ((> num 9998) (progn (prompt "\n 编号超过最大范围 10000,重新输入!") (setq num (getint (strcat "起始序号<"(itoa num) ">"))) ) ) ((< num 1) (progn (prompt "\n 编号必须 ≧1 ,重新输入!") (setq num (getint (strcat "起始序号<"(itoa num) ">"))) ) ) );;end cond (setq sc (getreal (strcat "请输入字高<" (rtos (* (getvar "dimtxt")(getvar "dimscale"))) ">"))) (if (= sc nil) (setq sc (* (getvar "dimtxt")(getvar "dimscale")))) (setq ra ( * sc 2)) (setq ddr 0.5) ; (if (= (tblsearch "layer" "汽泡球层") nil)(new_lay "汽泡球层" 241 "PHANTOM")) ;(setvar "clayer" "汽泡球层") (setq pt1 (getpoint "\n第一点:")) (while (/= pt1 nil) (progn (setq pt2 (getpoint pt1 "\n第二点:")) (setvar "osmode" 0) (setq pp (polar pt1 (angle pt1 pt2) (- (distance pt1 pt2) ra))) (command "donut" 0 ddr pt1 "") (command "pline" pt1 pp "") (command "circle" pt2 ra) (command "text" "m" pt2 sc 0 num) (setq num (1+ num)) (if (> num 9999)(progn (alert "\n 编号已达到最大范围!")(setq num 1)(exit))) (setq num1 num) (setvar "osmode" old_os) (setq pt1 (getpoint "\n第一点:")) ) ) (setvar "osmode" old_os) (setvar "clayer" old_la) ;(xhinfo) (princ) )
对于大于9999和小于1 的数字处理还有问题,各位帮忙下
|