(cond
((=m26)(setqbzstr(strcat(chr(+64(/m26)))
(chr(+65(-m(*26(/m26))))))))
)
(command"text""m"(list(+(carp1)(*0.5colw)(*mcolw));表格内容标注
(-(cadrp1)(*0.5rowh)(*nrowh)))(getvar"TEXTSIZE")"0"(strcatbzstr(itoa(+n1))))(setqm(+m1))
(setqn(+n1))
))
(3)生成钢筋表
钢筋表和材料表生成是施工图设计中比较繁琐的一项工作,专门容易出错,此处介绍利用程序进行钢筋表和材料表自动生成的方法。
利用造字
和,以后在其它电脑上只要把E
生成钢筋表时按指定表格位置生成钢筋表表头,按照提示输入钢筋编号(能够不连续)、钢筋等级和直径如20、16,交互绘制钢筋简图和标
注长度(标注长度能够输入多种形式如50~200表示长度等差变化;30,40,
50表示一个编号多个钢筋长度,),钢筋根数,构件组数,程序自动完成表格其余各项(总长度、重量,关于I级钢筋长度中自动计入弯钩长度)的填写,备注栏中自动填入等差变化钢筋的等差值。
采集钢筋表中直径、等级和总长信息,通过自动分类汇总,生成钢筋表的材料表。
2.6高程小数位数处理
尺寸标注小数位数专门容易调整,但诸如高程、表格中数字要调整则专门困难,借助LSP程序的调整专门方便,只要选取需要调整的数字,按照提示输入需要保留的小数位数,则程序自动对所有选种数字进行修改。
(defunentsgc()
(setqn0)
(setqsh(sslengthe1))
(while(vnsh)(setqx(entget(ssnamee1n)))
(if(=(fld0x)"TEXT")
(progn
(setqagc(fld1x))
(setqc(substragc11))
(if(or(=c"+")(=c"-")(and(>=c"0")(<=c"9")))
(progn
(if(or(=c"+")(=c"-"))
(setqbgc(substragc2))
(setqbgcagc)
)
(setqcgc(atofbgc))
(setqzh(rtoscgc2gcws))
(if(or(=c"+")(=c"-"))
(setqzh(strcatczh)))
(setqx(subst(cons1zh)(assoc1x)x))
(entmodx)
)
))
))
(setqn(+n1)))
)
(defunc:
yxws()
(setqe1(ssget))
(setvar"dimzin"0)
(setqgcws(getint"保留小数位数:
"))
(ife1(entsgc)(print"nnotfound"))
(setqxnil)
)
2.7应用软件前、后处理由于软件升级滞后,一些常用软件后处理功能专门弱或没有,能够利用LSP程序结合AutoCAD增加或简化前后处理功能。
下面结合平面渗流分析程序STSE软件对其前、后处理功能的实现进行介绍:
(1)前处理
STSE为平面渗流有限兀程序,单兀划分和单兀、节点编号工作量最大,能够借助其它通用有限元软件的前处理功能如Ansis、Algor、SAP84等进行初步处理,生成单兀、节点编号和节点坐标,而后按照STSE数据文件的格式要求对数据文件进行编辑。
(2)后处理后处理成果要紧为:
单兀网格图,浸润线和等势线。
单兀网格图中有节点和单兀编号,不同渗透系数的单兀采纳不同的颜色,以便按照网格图直观地判定数据文件中几何参数和材料特性的正误;
第一分析STSE的输出结果文件的格式,搜索并选择其中要紧参数如单兀总数、节点总数和材料总数,把节点坐标和单兀信息分不储备,通过对单兀循环生成单兀网格图。
(defunc:
seepmesh()
(iffn
(setqfn(getfiled"渗流结果文件名"fn""2))
(setqfn(getfiled"渗流结果文件名"""""2)))
(setqf(openfn"r"))
(setqmd(read-linef))
(while(/=(substrmd258)"单兀总数")
(setqmd(read-linef))
);定位单兀总数
(setqdyzs(atoi(substrmd585)));读单兀总数
(setqmd(read-linef))
(setqjdzs(atoi(substrmd585)));读节点总数
(setqmd(read-linef))
(setqclh(atoi(substrmd585)));读材料总数
(setqm0)
(repeatclh
(setqm(+1m))
(setqtcm(strcat"zclh"(itoam)))
(command"layer""m"tcm"c"(itoam)tcm"")
);按材料种类生成图层名称
(setqm0n0)
(repeatdyzs对单元循环,dycfb中存放单元信息
(setqm(+m1))
(setqclh(nth0(nthmdycfb)))
(setqjdh1(nth1(nthmdycfb)))
(setqjdh2(nth2(nthmdycfb)))
(setqjdh3(nth3(nthmdycfb)))
(setqjdh4(nth4(nthmdycfb)))
(command"layer""s"(strcat"zclh"(itoaclh))"")
(command"pline";绘制单元网格
(nthjdh1jdzbb)
(nthjdh2jdzbb)
(nthjdh3jdzbb)
(nthjdh4jdzbb)"c")
(setqbzdzb(mapcar'+(nthjdh1jdzbb)(nthjdh2jdzbb)
(nthjdh3jdzbb)(nthjdh4jdzbb)))
(setqbzdzb(list(/(carbzdzb)4.0)(/(cadrbzdzb)4.0)))
(command"text""m"bzdzb"0.5""0"(itoam))
;标注单元号
(setqm0)
(repeatjdz
(setqm(+m
(setqbzdzb(nthmjdzb
b))
(setqbzdzb(list(+(carbzdzb)0.0)(+(cadrbzdzb)0.0)))
(command"text""m"bzdzb"0.5""0"(itoa
m))
));标注节点号
(closef)
)限于篇幅,等势线和浸润线生成程序不再赘述。
同样,对工程设计中遇到的其它软件如:
STAB边坡稳固分析、SAP84的输出文件均可进行类似后处理工作。
3结语
AutoCAD软件应用差不多在设计单位普及,VisualLisp的显现关于提升Lisp语言的编程效率和AutoCAD应用水平具有重要意义。
本文涉及的几个实例差不多在实际工作中发挥专门大作用,充分讲明在工程设计当中结合本专业要求开发一些简单有用的Lisp小程序能够有效减轻设计人员的劳动强度,使AutoCAD不仅仅是绘图工具,而真正成为设计人员得心应手的高效设计平台。
作者简介
耿振云男高级工程师中水北方勘测设计研究有限责任公司天津300222
31.1.1脚本文件简介
脚本文件类似于Dos操作系统中的批处理文件,它能够将不同的AutoCAD命令组合起来,并按确定的顺序自动连续地执行。
脚本文件是文本文件,扩展名为“.SCR”,用户可使用任一文本编辑器来创建脚本文件。
因为脚本文件可使一些命令序列自动执行,因此常用来产生、编辑或观看图形,如幻灯放映、初始的图形设置等。
但脚本文件不能使用对话框或菜单,当从脚本文件中发出打开对话框命令时,AutoCAD运行该命令的命令栏含义而不是打开对话框。
如第29章中所述,用户能够通过命令行的开关设置,使AutoCAD在启动时自动调用脚本。
此外,用户也能够在AutoCAD中运行脚本,其调用方式为:
菜单:
【Tools(工具)】宀【RunScript•••(运行脚本)】
命令行:
script(或不名scr)
注意AutoCAD的“undo”命令将每个脚本当作一个组,能够
用单个“undo”命令舍弃一组脚本的操作。
讲明“script”命令可透亮地使用。
31.1.2实例1使用脚本文件绘制并显示图形
Step1创建脚本文件“exam_draw.sc”r
(1)使用Windows附件中的“记事本”程序创建一个新文件。