一种高效、灵活的批量文字处理程序-Auto CAD
·当前位置: 学海荡舟-论文 >> 电脑技术 >> 图形图象 >> Auto CAD
一种高效、灵活的批量文字处理程序



 AUTOCAD的绘图功能非常强大,然而处理批量文字尤

其是汉字的功能尚不够理想。虽然可以使用AUTOCAD软件包

中的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)

  )


  • 上一篇教程:
  • 下一篇教程:
  • :查看相关:
  • 多行文字MTEXT中堆叠字符的运用
  • sc以后让尺寸变而文字高度不变
  • 使文字沿指定路径分布
  • 标注文字修改
  • AutoCAD2000文字特效制作20例