AutoCAD内常用术语的自动标注方法.docx
AutoCAD内常用术语的自动标注方法摘要HT5SS本文提出了一种用对话框实现AUtoCAD内常用术语自动标注的方法。用这种方法,可方便地将各种常用术语标注在图中,为CAD应用提供了方便。一、引言汉字的标注在CAD设计制图中是一个重要的部分,也是一个较为繁琐、困难的部分。目前,在AutoCAD内汉字的输入大多采用拼音方式,对拼音不熟悉的人来说汉字的输入就很困难。如果能将设计中常用的文字术语直观地显示出来供设计人员调用,将会极大地提高工作效率。本文就此进行研究,提出了一种用对话框(下图)将常用术语显示并供调用的方法,同时给出了源程序,供大家参考。该程序已应用于我院的实际生产中。二、原理及方法索引回常用术吾回图纸名称房间名称回卫生器具管材配件器材仪表回常用设备回构筑物其它AutoCAD对话框结构包含有多种构件,如edit_box(编辑框)、Iis1box(列表框)、radio_button(多选一按钮)等,利用这些工具,可以开发出界面友好的实用程序。三、程序使用方法)#tXt以后可直接从菜单中驱动该程序。苜层给排水平面图I所选词组在COMMAND:状态下,键入#TXT后,系统弹出一个对话框,根据需要点取所需的词组类别,再从列表框内选择所需词组。所点取的词组会在编辑框所选词组中显示。用户可以在此对词组进行必要的修改,点取OK后,根据提示输入字高及起点即可把词组写到图中。(defunc:#txt(/o1dcmdo1derroktxt_tbtxtdc1jdstyfpnnhtpttxterrdiaginitwr_txto1d_nn);定义错误处理子程序(defuntxterr(s)(if(and(/=s"conso1ebreak'*)(/=snFunctioncance11ed")(/=s"quit/exitabort")(princ(strcat"nError:"s)(ifo1derr(setq*error*O1denj);恢复原系统设置(ifo1dcmd(setvar"cmdechoo1dcmd)(princ);对话框显示及驱动程序(defundiag(/i)(if(>(setqdc1jd(1oad_dia1og"#txt")O);加载对话框文件(progn(if(new_dia1og"fi1etext"de1JX*6id);显示对话框(prognStartJist"what");将词组显示到列表框内(mapcar'addjisttxt_tb)(endjist)(setqi1)(repeatnn;点取词组分类项后的操作(actionji1e(strcat"c"(itoai)M(wr_txt)H)(setqi(1+i)(actionji1e"what""(setqi(atoiSva1ue);选中词组(setqtxt(nthitxt_tb)(set_ti1e"se1_ok"txt)")(actionji1e"se1_okH',(setqtxt$va1ue)H)(actionji1e"accept"',(setqokT)(done_dia1og1)(un1oad_dia1ogdc1jd)'*)(actionji1e"cance1""(un1oad_dia1ogdc1jd)")(start_dia1og)(prompt"n无法显示对话框FI1ETEXT!请检查对话框内容!。);初始化程序,把第1个分组项中的词组读入表txt_tb中(defuninit(/fnamefptxt1)(setqfname(fin(if(notfname)(setqfp(openfname"r,)(setqtxt_tb'()(whi1e(setqtxt1(readjinefp)(setqtxt_tb(constxt1txtjb)(c1osefp)(setqtxt_tb(reversetxtjb)(setqo1d_nn1);记录索引号);更换列表框内词组显示内容(defunwr_txt(/fnamefname1fptxt1i)(setqi1)(whi1e(<=inn);判别哪个词组项被点中(if(=(getji1e(strcat"c,'(itoai)"1")(setqfname1(strcatn$txt"(itoai)".dat)inn)(setqi(1+i)(if(setqfname(findfi1efname1);查找文件是否存在(progn(setqo1d_nn(atoi(substrfname15);记录索弓I号(setqfp(openfname"r")(setqtxt_tb,()(whi1e(setqtxt1(readjinefp);依次读出各词组(setqtxt_tb(constxt1txtjb)(c1osefp)(setqtxt_tb(reversetxtjb)(StartJist"what");在列表框内显示词组内容(mapcar,addjisttxtjb)(endjist);progn(progn(a1ert(strcat”文件"fname1”不存在!”)(setji1e(strcat"c(itoao1d_nn),');恢复原记录号);if);主程序开始(setqo1derr*error*error*txterro1dcmd(getvar,'cmdecho")(setvar',cmdecho"O);命令不回显(setqnn9);词组分类数(init);初始化(diag);驱动对话框(if(andoktxt)(progn(if(or(=(setqsty(tb1search"STY1E""HZ)ni1);“HZ”字型是否存在(/=(cdr(assoc40sty)0);字高是否为定值(=(getvar"TEXTSTY1E")"HZ");当前字型是否为“HZ”)(initget(+24);下面的输入值要求大于0(setqht(getrea1"n请输入字高500:”)(if(notht)(setqht500)(setqpt(getpoint,'n请点取文字起点:")(command"text"pthtOtxt)(setq*error*o1derr);恢复原设置(setvar"cmdecho"o1dcmd)(princ)fi1etext:dia1og/对话框名称1abe1="常用词组”;对话框标识:row:boxed_co1umn1abe1="索引”;:radio_buttonIabe1="常用术语”;多选一按钮key="d"va1ue=,1u;/初始值为T”,表示选中):radio_buttonIabeI="图纸名称”;key=,'c2"):radio_button1abe1="房间名称”;key=,c3,'):radio_button1abe1="卫生器具”;key="c4"):radio_button1abe1="管材配件”;key="c5":radio_button1abe1="器材仪表”;key=,c6"):radio_buttonIabe1="常用设备”;key="c7"):radio_button1abe1="构筑物”;key=,c8"):radio_button1abe1="其它”;key=,c9"):1ist_boxIabe1="词组内容”;key="what"height=15;width=26;a11ow_accept=true;/可双击鼠标选取)spacer_1;:edit_box/编辑框Iabe1=”所选词组:";key="se1_ok")spacer_1;/增加间距ok_cance1;