CAD小插件编速写.docx
- 文档编号:11411096
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:20
- 大小:17.53KB
CAD小插件编速写.docx
《CAD小插件编速写.docx》由会员分享,可在线阅读,更多相关《CAD小插件编速写.docx(20页珍藏版)》请在冰豆网上搜索。
CAD小插件编速写
CAD自动编号插件
使用方法:
1.复制下边的文字到记事本,保留为编号速写.lsp
2.翻开CAD,输入AP,选择该文件,按加载,封闭窗口。
3.输入SB,启动插件。
鼠标左键使用.
=============================复制以下文字保留为==编号速
写.lsp==============================
;参数初始化
(defunchushihua();(setvar"cmdecho"0)
(setqbhlx0)
(write-line"编号种类:
0")
(setqbh00)
(write-line"编号初值:
1")
(setqbh164)
(setqbh20)
(setqbh364)
(setqyx"Y")
(write-line"引线:
Y")
(setqbklx"Y")
(write-line"边框:
Y")
(setqr2.5)
(setqzidong_rt)
(write-line"边框圆半径:
自动")
(setqth3.5)
(write-line"文字高度:
3.5")
(setqta0)
(write-line"文字旋转角度:
0")
(setqjl1)
(write-line"编号到引线距离:
1")
(setqjiantou2.5)
(write-line"箭头大小:
2.5")
(setqchang5)
(setqzidong_changt)
(write-line"水平段引线长度:
自动")
(setqqianzhui2"")
(write-line"自然数前缀:
无")
(setqhouzhui2"")
(write-line"自然数后缀:
无")
(setqqianzhui3"")
(write-line"字母前缀:
无")
(setqhouzhui3"")
(write-line"字母后缀:
无")
(setqpianyi7)
(write-line"边框自动办理时,文字到边框的偏移系数:
7")
)
(chushihua)
;主函数
*********************************************************************
(defunc:
sb(/oob)
(defuner(str)
(setvar"osmode"dx)
(princ"\nSB已撤消")
)
(setqerod*error**error*er)
(if(=yx"N")
(progn
(initget"CYKWHT")
(setqob(getpoint"\n
字(W)/复原为默认设置(H)/
设为0>"))
指定编号地点[编号初值(C)/引线(Y)/边框(K)/文退出(T)]:
<编号以前请先将目前文字款式的文字高度项
(if(or(=ob"C")(=ob"Y")(=ob"T")(=ob"K")(=ob"W")(=ob"H")(=obnil))
(progn
(if(=ob"C")(chuzhi))
(if(=ob"Y")(yinxian))
(if(=ob"K")(bkshezhi))
(if(=ob"W")(wenzi))
(if(=ob"H")(chushihua))
(if(=obnil)(gaodu0))
(if(=ob"T")(exit))
)
(progn
(huituoob)
)
)
)
(progn
(initget"CYKWHT")
(setqo(getpoint"\n指定标明地点[编号初值(C)/引线(Y)/边框(K)/文
字(W)/复原为默认设置(H)/退出(T)]:
<编号以前请先将目前文字款式的文字高度项设为0>"))
(if(or(=o"C")(=o"Y")(=o"T")(=o"K")(=o"W")(=o"H")(=onil))
(progn
(if(=o"C")(chuzhi))
(if(=o"Y")(yinxian))
(if(=o"K")(bkshezhi))
(if(=o"W")(wenzi))
(if(=o"H")(chushihua))
(if(=onil)(gaodu0))
(if(=o"T")(exit))
)
(progn
(initget1)
(setqob(getpointo"\n指定编号地点:
"))
(huituoob)
)
)
)
)
)
;绘制过程
************************************************************************
*********
(defunhuitu(oob/dian1dian2dianxdianyjiantou0chang0)
(graphscr)
(setqjiantou0jiantou)
(command"text"'(00)thta"
编号速写
""erase"(entlast)"")
;编号升序
;0(123...)1(abc.../ABC...)2(a1a2.../B1B2...)3(aaabac.../MaMbMc...)
(if(=bhlx0)
(progn
(setqbh0(bh01))
(setqbh(itoabh0))
)
)
(if(=bhlx1)
(progn
(setqbh1(1bh1))
(if(>bh1122)(setqbh197))
(if(and(>bh190)( (if( (if(and( (setqbh(chrbh1)) ) ) (if(=bhlx2) (setqbh(strcatqianzhui2(itoa(setqbh2(1bh2)))houzhui2)) ) (if(=bhlx3) (progn (setqbh3(1bh3)) (if(>bh3122)(setqbh397)) (if(and(>bh390)( (if( (if(and( (setqbh(strcatqianzhui3(chrbh3)houzhui3)) ) ) (if(=bklx"Y"); (progn (if(=zidong_rt) (setqr0(/(tdaxiao3)2)) (setqr0r) ) 边框半径能否自动办理及 r0 值 ) (setqr0(/(tdaxiao2)2)) ) (if(=bklx"J"); (if(=zidong_jt) (setqr0(/(tdaxiao2)2)) (setqr0(/jgao2)) 边框为矩形时 r0 值 ) ) (if(=zidong_changt); 引线长度能否自动办理及 chang0值 (progn (if(=bklx"Y") (setqchang0(*r02)) (progn (if(=bklx"J") (if(=zidong_jt) (setqchang0(tdaxiao1)) (setqchang0jkuan) ) (if(=bklx"W") (setqchang0(tdaxiao1)) ) ) ) ) ) (setqchang0chang) ) ;对象捕获 (setqdx(getvar"osmode")) (setvar"osmode"0) (biankuangyr0obbh) (if(and(/=yx"N")(/=yx"n")) (progn (if(>=(caro)(carob)) (progn (setqdian1(list((carob)(/chang02))(-(cadrob)r0 jl))) (setqdian2(list(-(carob)(/chang02))(-(cadrob)r0 jl))) (if(>jiantou0(distanceodian1))(setqjiantou00)) (setqdianx((caro)(*(/jiantou0(distanceodian1))(-(cardian1)(caro))))) (setqdiany((cadro)(*(/jiantou0(distanceodian1))(-(cadrdian1)(cadro))))) (command"pline"o"w"0(/jiantou03)(listdianxdiany)"w"00dian1dian2"") ) (progn (setqdian1(list(-(carob)(/chang02))(-(cadrob)r0 jl))) (setqdian2(list((carob)(/chang02))(-(cadrob)r0jl))) (if(>jiantou0(distanceodian1))(setqjiantou00)) (setqdianx((caro)(*(/jiantou0(distanceodian1))(-(cardian1)(caro))))) (setqdiany((cadro)(*(/jiantou0(distanceodian1))(-(cadrdian1)(cadro))))) (command"pline"o"w"0(/jiantou03)(listdianxdiany)"w"00dian1dian2"") ) ) ) ) ;对象捕获 (setvar"osmode"dx) (setq*error*eroderodnil) (evalbh) ) ;参数设置 ************************************************************************ ******** ;初值设置 (defunchuzhi(/qianzhui20houzhui20qianzhui30houzhui30) (initget1"0123") (setqbhlx(atoi(getkword" 选择一种编号种类: \n<0> 自然数序列(12 3... )<1>字母序列(abc... /ABC...)<2> 带前/后缀自然数序列(a1 a2... /B1B2.../ (1) ...)<3> 带前/后缀字母序列(aaabac... /MaMb Mc... /(a)...) 选择此中一种0/1/2/3: "))) (if(=bhlx0) (progn (setqbh0(getint"\n 输入开端数值 : <1>")) (if(=bh0nil)(setqbh01)) (setqbh0(1-bh0)) ) ) (if(=bhlx1) (progn (setqbh1(1-(ascii(getstring"\n 输入开端字母 : ) ) (if(=bhlx2) (progn (setqqianzhui20(getstring(strcat"输入前缀: <"qianzhui2">"))) (if(/=qianzhui20"")(setqqianzhui2qianzhui20)) (setqbh2(getint"\n输入开端数值: <1>")) (if(=bh2nil)(setqbh21)) (setqbh2(1-bh2)) (setqhouzhui20(getstring(strcat"输入后缀: <"houzhui2">"))) (if(/=houzhui20"")(setqhouzhui2houzhui20)) ) ) (if(=bhlx3) (progn (setqqianzhui30(getstring(strcat"输入前缀: <"qianzhui3">"))) (if(/=qianzhui30"")(setqqianzhui3qianzhui30)) (setqbh3(1-(ascii(getstring"\n输入开端字母: (setqhouzhui30(getstring(strcat"输入后缀: <"houzhui3">"))) (if(/=houzhui30"")(setqhouzhui3houzhui30)) ) ) (c: sb) ) ;引线设置 (defunyinxian(/yx0yxfjl0chang0jiantou0) (initget"YN") (if(=yx"Y")(setqyxf"N")(setqyxf"Y")) (setqyx0(getkword(strcat"\n"" 编号能否带引线? <"yxf">"))) (if(=yx0nil)(setqyxyxf)(setqyxyx0)) (if(=yx"Y") (progn (setqjl0(getdist(strcat" 输入编号到引线的距离 : <"(rtosjl) ">"))) (if(/=jl0nil)(setqjljl0)) (setqchang0(getdist"输入水平段引线的长度: <自动>")) (if(/=chang0nil)(setqchangchang0zidong_changnil)(setq zidong_changt)) (setqjiantou0(getdist(strcat"输入箭头大小: <"(rtosjiantou) ">"))) (if(/=jiantou0nil)(setqjiantoujiantou0)) ) ) (c: sb) ) ;边框设置 (defunbkshezhi(/r0) (initget1"YWJ") (setqbklx(getkword"\n选择边框种类[圆(Y)/矩形(J)/无(W)]: ")) (if(=bklx"Y") (progn (setqr0(getdist(strcat"输入圆半径: <"" (if(/=r0nil)(setqrr0zidong_rnil)(setqzidong_rt)) 自动"">"))) ) ) (if(=bklx"J") (progn (setqjkuan(getdist"\n 输入矩形宽 : <自动>")) (if(=jkuannil) (setqzidong_jt) (progn (setqzidong_jnil) (setqjgao(getdist"\n 输入矩形高度 : ")) ) ) ) ) (c: sb) ) ;文字设置 (defunwenzi(/th0ta0) (setqth0(getdist(strcat"输入文字高度: <"(rtosth)">"))) (if(/=th0nil) (progn (setqthth0) ) ) (setqta0(getangle(strcat" 输入文字角度 : <"(rtosta)">"))) (if(/=ta0nil) (progn (setqtata0) (setqta(*(/tapi)180)) ) ) (c: sb) ) ;绘边框 (defunbiankuangy(banjingyuanxinbianhao) (if(=bklx"Y") (command"circle"yuanxinbanjing) ) (if(=bklx"J") (progn (if(=zidong_jt) (setqjkuan0(tdaxiao1)jgao0(tdaxiao2)) (setqjkuan0jkuanjgao0jgao) ) (command"pline") (command(list(-(caryuanxin)(/jkuan02))(-(cadryuanxin)(/jgao02)))) (command"w"00) (command(list((caryuanxin)(/jkuan02))(-(cadryuanxin)(/jgao02)))) (command(list((caryuanxin)(/jkuan02))((cadryuanxin)(/jgao02)))) (command(list(-(caryuanxin)(/jkuan02))((cadryuanxin)(/jgao02)))) (command"c") ) ) (command"text""J""MC"yuanxinthtabianhao) ) ;将目前文字款式的文字高度项设置为0(defungaodu0() (command"style"""""0"""""""""")(c: sb) ) ;编号文字宽与高 (defuntdaxiao(x/abc);x=t则b=宽.x=nil则b=高 (setqa(textbox(list(cons1bh)))) (setqc(/(-(cadara)(cadadra))pianyi)) (if(=x1) (setqb(-(caadra)(caara)c)) (if(=x2) (setqb(-(cadadra)(cadara)c)) (setqb(-(distance(cara)(cadra))c)) ) ) (evalb) )
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CAD 插件 速写