实现CAD快速注记编号,可以通过lisp语言实现快速注记,注记样式中:编号样式,引线,边框,文字样式均可以自己设置。
;参数初始化
(defun chushihua()
;(setvar "cmdecho" 0)
(setq bhlx 0)
(write-line "编号类型:0")
(setq bh0 0)
(write-line "编号初值:1")
(setq bh1 64)
(setq bh2 0)
(setq bh3 64)
(setq yx "Y")
(write-line "引线:Y")
(setq bklx "Y")
(write-line "边框:Y")
(setq r 2.5)
(setq zidong_r t)
(write-line "边框圆半径:自动")
(setq th 3.5)
(write-line "文字高度:3.5")
(setq ta 0)
(write-line "文字旋转角度:0")
(setq jl 1)
(write-line "编号到引线距离:1")
(setq jiantou 2.5)
(write-line "箭头大小:2.5")
(setq chang 5)
(setq zidong_chang t)
(write-line "水平段引线长度:自动")
(setq qianzhui2 "")
(write-line "自然数前缀:无")
(setq houzhui2 "")
(write-line "自然数后缀:无")
(setq qianzhui3 "")
(write-line "字母前缀:无")
(setq houzhui3 "")
(write-line "字母后缀:无")
(setq pianyi 7)
(write-line "边框自动处理时,文字到边框的偏移系数:7")
)
(chushihua)
;主函数*********************************************************************
(defun c:BHZJ(/ o ob)
(defun er(str)
(setvar "osmode" dx)
(princ "\n编号注记已取消")
)
(setq erod *error* *error* er)
(if (= yx "N")
(progn
(initget "C Y K W H T")
(setq ob (getpoint "\n指定编号位置[编号初值(C)/引线(Y)/边框(K)/文字(W)/还原为默认设置(H)/退出(T)]:<编号设置样式/默认设置>"))
(if (or (= ob "C") (= ob "Y") (= ob "T") (= ob "K") (= ob "W") (= ob "H") (= ob nil))
(progn
(if (= ob "C") (chuzhi))
(if (= ob "Y") (yinxian))
(if (= ob "K") (bkshezhi))
(if (= ob "W") (wenzi))
(if (= ob "H") (chushihua))
(if (= ob nil) (gaodu0))
(if (= ob "T") (exit))
)
(progn
(huitu o ob)
)
)
)
(progn
(initget "C Y K W H T")
(setq o (getpoint "\n指定标注位置[编号初值(C)/引线(Y)/边框(K)/文字(W)/还原为默认设置(H)/退出(T)]:<编号之前请先将当前文字样式的文字高度项设为0&g