我已经做好了,但是有一点还要修改:
最好加入代码,使鼠标双击文字的时候,直接编辑文字,而不是弹出特性(properties),我用的是cad2006
;小件号-----字高为3mm,直径为7mm (defun c:jh ( ) (setvar "DIMASZ" 2);;;设置箭头尺寸为2 (setvar "CMDECHO" 0);;;关闭回显 (SETQ BL (getvar "DIMSCALE"));;;获取标注比例 (SETQ BJ (* BL 3.5));;;设置圆的半径 (SETQ ZG (* BL 3));;;设置字高 (vl-cmdf "OSMODE" "17335");;;关闭对象捕捉 (vl-cmdf "ORTHO" "off");;;关闭正交 (vl-cmdf "layer" "N" "DIM" "L" "Continuous" "DIM" "");;;设置当前图层 (vl-cmdf "layer" "S" "DIM" "");;;设置当前图层 (vl-cmdf "style" "HZTXT" "宋体" ZG "0.8" "0" "N" "N");;;设置文字样式 (while (not (setq PT1 (getpoint "\n请指定件号起点: ")))) (while (not (setq PT2 (getpoint PT1 "\n请指定件号放置点: ")))) (setq JH (@ureal 1 "" "请输入件号值" JH) PT3 (polar PT2 (angle PT2 PT1) BJ)) ;编组 (setq ss (ssadd)) (command "leader" PT1 PT3 "" "" "n");;;绘制箭头 (ssadd (entlast) ss) (vl-cmdf "circle" PT2 BJ);;;绘制圆 (ssadd (entlast) ss) (vl-cmdf "text" "s" "hztxt" "j" "mc" PT2 0 (rtos JH 2 0));;;写件号 (ssadd (entlast) ss) (command "-group" "c" "*" "" ss "") (vl-cmdf "ORTHO" "on");;;打开正交 (vl-cmdf "OSMODE" "951");;;打开对象捕捉(1 2 4 16 32 128 256 512) (vl-cmdf "layer" "S" "DIM" "");;;恢复图层 (vl-cmdf "style" "HZTXT" "宋体" ZG "0.8" "0" "N" "N");;;恢复文字样式 (setq JH (1+ JH));;;设置件号替增 (setvar "CMDECHO" 1);;;打开回显 );;;end of defun (defun @ureal (bit kwd msg def / inp) (if def (setq msg (strcat "\n" msg "<" (rtos def 2) ">: ") bit (* 2 (fix (/ bit 2))) ) (setq msg (strcat "\n" msg ": ")) ) (initget bit kwd) (setq inp (getreal msg)) (if inp inp def ) ) (princ) |