AUTOCAD的绘图功能非常强大,然而处理批量文字尤其是汉字的功能尚不够理想。虽然可以使用UTOCAD软件包 中的ASCTEXT应用程序,但经使用表明这个程序的界面不是很好,选项太多,而且程序运行中不允许调整各选项的内容。下面介绍的名为ITX的程序则解决了上述问题。ITX是由AUTOLISP语言编制、将外部的文字文件变成图形的程序。它的特点是程序短小,全部中文提示,可以反复调整字型、字高、字间距、插入点各选项。特别适合引用含有汉字的大量文字。
使用ITX之前应先用EDIT等文本编辑软件编辑需要插入到AUTOCAD中文字内容
ITX的主要功能有:
?自动产生汉字字型;
?自动计算行间距;
?允许多次修改各个选项的内容;
?判断是否存在指定的文件或字型;
?保存原有的字型设置。
ITX的使用方法如下:
?将ITX.LSP拷贝至ACAD12下面的SUPPORT子目录下;
?修改SUPPORT子目录下的ACADR12.LSP文件,在该文件中加入(autoload"itx"'("itx"));
?键入ITX启动程序;
?首先输入插入的文件名(可以带目录),如果指定的文件不存在,程序将退出;
?指定插入点;
?输入字型,缺省的字型为HZ。
如果用户使用缺省字型(HZ)而且已经定义了该字型,程序则把它设定为当前字型;否则将程序自动产生的HZ 字型设定为当前字型。如果指定的字型不存在,程序将退出。
?输入字高,缺省值是当前字高。可以输入数值,也可使用鼠标指定两点确定字高。
?输入字间距。首次显示的缺省值是字高的1.5倍。输入方法同上。
?确定是否进行调整。回答“Y”重新设定插入点、字型、字高及字间距,直到满意为止。回答“N”结束程序。
程序清单如下:
程序名:ITX.LSP
程序内容:
(defun*ERROR*(err)(prompt"ιn非正常退出!请查明是否存在指定的文件或字型.")(princ))
(defunc:itx(/osfnamekspttslsdstxtdtne)
(graphscr)(princ"ιn插入文字程序.")
(setvar"cmdecho"0)(setvar"blipmode"0)
(setqos(getvar"textstyle"))
(setqfname(getstring"ιn请输入文件名:")
)
(setqtxt(openfname"r"))
(if(nulltxt)(quit))
(if(tblsearch"style""HZ")
(setvar"textstyle""HZ")
(command"style""HZ""txt,hztxt""""0
.85"""""""""))
(setqk"Y")(while(Κk"Y")
(if(nullsp)(princ"ιn请指定插入点:")
(princ"ιn请指定插入点〈原插入点〉:"))
(setqt(getpoint))
(if(/Κtnil)(setqspt))
(setqts(getvar"textstyle"))
(princ(strcat"ιn请输入字型名Ι"ts"Λ:"
))
(setqt(getstring))
(if(/Κt"")(setqtst))
(setqe(tblsearch"style"ts))
(if(nulle)(quit))
(setvar"textstyle"ts)
(princ(strcat"ιn输入字高Ι"(rtos(getvar
"text?size"))"Λ:"))
(initget32)(setqt(getdist))
(if(/Κtnil)(setvar"textsize"t))
(if(nullls)(setqls(*1.5(getvar"textsi
ze:)))
(princ(strcat"ιn输入字间距Ι"(rtosls)"
Λ:"))
(initget32)(setqt(getdist))
(if(/Κtnil)(setqlst))
(setqds(strcat"Ν"(rtosls)"Ι-90"))
(setqtxt(openfname"r"))
(setqdt(read-linetxt))
(command"undo""mark")
(command"text"sp""""dt)
(setqdt(read-linetxt))
(whiledt
(command"text"ds""""dt)
(setqdt(read-linetxt)))
(closetxt)
(setqk(strcase(getstring"ιn是否进行调整[
Y/N]ΙNΛ:")))
(if(Κ"Y"k)(command"undo""back"))
)
(setvar"cmdecho"1)
(setvar"blipmode"1)
(setvar"textstyle"os)
(princ)
)