AutoLisp编写工程地质剖面图小工具
朱红雷 李健民 (浙江省水利水电勘测设计院 杭州 310002) 在我院应用的CAD工程地质制图系统中,通常采用的各种高级语言编制的程序,一般是通过编制数据文件,生成CAD图形数据交换文件(一般为*.SCR或*.DXF)达到绘制CAD图纸的目的。这种方法往往显得不符合我们的绘图习惯,也很不直观。为此,我们利用AutoLisp语言开发绘制工程地质剖面图组件,在实际应用中取得了较好的效果。
其实,绘图过程就是各种工程地质剖面图组件的拼接过程。一幅工程地质剖面图,一般而言不外乎以下几个组件:图幅图签、剖面图框架(如标尺、桩号等)、勘探信息(如钻孔、平硐等)、地质构造、图例花纹、各种地质线条等。如果我们分别对不同组件编写不同的绘制工具,并把他们有机地、相互关联地放置在一起,就绘制出了一幅工程地质图纸。因此,开发出一套绘制各种工程地质组件的程序,具有一定的实用价值。
AutoLisp语言内嵌于AutoCAD,编写的小程序可以方便地在 AutoCAD界面下进行人机对话。例如下列程序代码段通过输入几个数据即可实现绘制一个简单的钻孔。
(defun c:zk()(setq pt0 (getpoint "/n请输入钻孔位置:"))(setq blc (getreal "/n请输入比例尺:"))(steq ks (getreal "/n请输入孔深(m):"))(setq ksx (* (/ ks blc) 1000))(setq pt1 (list (- (car pt0) 0.5) (cadr pt0)))(setq pt2 (list (- (car pt0) 0.5) (- (cadr pt0) ksx)))(setq pt3 (list (+ (car pt0) 0.5) (- (cadr pt0) ksx)))(set