增加AUTOCAD在文字处理上的功能.doc
增加AUTOCAD在文字处理上的功能 一、说明 在用AUTOCAD制图的过程中,必然要写说明性文字。当然在制表和写设计说明时,文字量就更大,AUTOCAD写文字并无难处,难的是怎么使写出的文字的尺寸、间距、对齐等方面象文字处理软件那样合适。若用AUTOCAD基本命令来处理,会很麻烦,并影响作图速度。为此我编写了一些小程序供大家使用。这次我提供如下两个程序 二、程序的安装及使用 先把ZDDQ.LSP和ZDJT.LSP 拷贝到一个特定的目录下如C\R12\SUPPORT或C\TCH\SYS等。用户可以将持到AUTOCAD或其它开发软件的系统菜单上,通过菜单来调动,也可以AUTOCAD环境COMMAND后面用LOAD命令装入,形成一个附加命令ZDDQ或ZDST。 1.将程序调用装入系统菜单 先找到菜单源文件ACAD.MNU,并编辑它。在* * * POP1最后加下面内容。 [字的对齐]CCP“ZDDQ”;ZDDQ;P。 [字的间距调整]CCPLOAD“ZDJT”;ZDJT;P。用鼠标点取下拉菜单即可调用。 2.命令调 用ZDDQ.LSP、ZDJT.LSP 在COMMAND后面输入LOAD“ZDDQ”或LOAD“ZDJT”,产生可用命令ZDDQ、ZD JT,击入命令按提示操作。 3.两程序在使用中基本为中文提示,易用,现已在我院网络上全面使用。 4.两程序适用于AUTOCAD R10.0, R11,R12.0。 三、操作过程 1.多文字对齐。提示如下其中“”中为缺省的选项 选择对齐方式如下L左/R右/C中心/M中点 选择对齐方向如下1横向对齐Y座标一致. 2纵向对齐X座标一致 点取对齐点即用鼠标在屏上点取对齐的位置,缺省后,提出让你点取参照目标字,这样后面选上的文字与对齐 选取文字自动滤非文字类实体,且不用考虑次序,开窗口选也可。 2.多文字的间距调整,提示如下 文字间距调整方式如下 1. 水平 2. 垂直 3. 斜向 ① 若选“1”或缺省值,则 * 输入各文字水平距值或用鼠标点取 * 选择对齐方式C中心/L左侧/R右侧/H中心 1 若选“L”或缺省,则 * 输入这组文字起点。 * 按选后次序选取文字。 2 其它类推。 选“2”,则 * 输入文字垂直间距值或用鼠标点取 其它同①。 选“3”,则 * 按先后次序选取文字。 * 点取斜线起点即文字排列方向线。 * 点取斜线终点。 结果所选文字在斜线起点和终点间等分排列。 四、源程序如下 1.多文字的对齐 ;-------------------- ; 1996.03.04 ; defun czddq / i n txsize ent ent1 o1 o2 o3 o4 a aa oldsiaze newsize index bb cc p0 p1 p pp ent0 b ss a1 a2 a3 a4 a5 a6 setq i 1 princ “\n“princ “选择对齐方式如下“princ setq a getstring “\n L左/R右/C中心/M中点 “ if a ““setq a “L“ setq a strcase a cond a “L“setq a1 0 a2 11 a4 10 a5 10 a “M“setq a1 1 a2 10 a4 11 a5 11 a “R“setq a1 2 a2 10 a4 11 a5 11 a “C“setq a1 4 a2 10 a4 11 a5 11 setq b getint “\n1.横向对齐使Y座标一样 2. 纵向对齐使X座标一样 “ setq txsize getpoint “\n点取对齐点 “ princ “\n“princ “选取文字自动滤去非文字实体“princ while n 2 setq j 1 wh ile bj1 bj2BBBB if AND S1 2 cdr assoc 40 tblsearch “style“ zx 0.00001 command “text“ zb / * jd 180.0 pi wb command “text“ zb wg / * jd 180.0 pi wb if cdr assoc 40 tblsearch “style“ zx 0.00001 command “text“ fs zb / * jd 180.0 pi wb [KG*2]command “text“ fs zb wg / * jd 180.0 pi wb p rogn setq ys - y * cj - n 1 setq zb list x ys if fs ““ if cdr assoc 40 tblsearch “style“ zx 0.00001 command “text“ zb / * jd 180.0 pi wb command “text“ zb wg / * jd 180.0 pi wb if cdr assoc 40 tblsearch “style“ zx 0.00001 command “text“ fs zb / * jd 180.0 pi wb command “text“ fs zb wg / * jd 180.0 pi wb progn princ “\n按先后次序选取文字“princ setq ss ssget cd sslength ss princ “\n按选取文字先后次序,从斜线起点至终点等分这组文字“princ setq qd getpoint “\n斜线起点 “ setq zd getpoint qd “\n斜线终点 “ setq jd angle qd zd setq jl distance qd zd jl / jl - cd 1 setq i 0 repeat cd setq zd polar qd jd * i jl setq wg cdr assoc 40 entget ssname ss i setq wb cdr assoc 1 entget ssname ss i command “text“ zd wg “0“ wb setq i 1 i DEFUN BBBB setq b bj1 a aj1 c cj1 set read strcat “b“ itoa j bj2 set read strcat “a“ itoa j aj2 set read strcat “c“ itoa j cj2 set read strcat “b“ itoa j 1 b set read strcat “a“ itoa j 1 a set read strcat “c“ itoa j 1 c