将方孔分段的lisp_AutoLisp编写工程地质剖面图小工具

本文介绍了如何使用AutoLisp语言开发工程地质剖面图的小工具,通过编写不同组件的绘制程序,实现图幅图签、剖面图框架、勘探信息等的拼接绘制。文章分享了在编写过程中遇到的问题和经验,强调了数据存储和表格应用的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

(setq pt4 (list (+ (car pt0) 0.5) (cadr pt0)))

(command "PLINE" pt1 pt2 pt3 pt4 "")

我们在用AutoLisp编制上述小工具时,遇到了一些问题,也有些心得体会,愿与大家交流,权作抛砖引玉。

1 常用数据应建立磁盘文件进行保存,如工程名称、比例尺、剖面方向等,需要在不同的Autolisp甚至于不同的图纸间通用,因此需建立磁盘文件进行保存。相关的函数有read-line、wrtie-line等进行磁盘读写操作;rtos、atof 等进行数值与字符串的转换。

2 尽量应用表格进行编写,可以使程序简洁并增加可读性。事实上,一个AutoLisp程序本身就是一个表或若干表的集合。而各种数据组成的表又是AutoLisp的数组,在某种程度上,这种表比其它高级语言的数组更容易操作,因为AutoLisp提供了丰富的表操作语言,如(subst newitem olditem list);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值