AutoLisp编写工程地质剖面图小工具.doc_第1页
AutoLisp编写工程地质剖面图小工具.doc_第2页
AutoLisp编写工程地质剖面图小工具.doc_第3页
AutoLisp编写工程地质剖面图小工具.doc_第4页
AutoLisp编写工程地质剖面图小工具.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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);从list表中搜寻olditem并以newitem代替。(reverse list);返回元素被倒置后的list表等等。而且AutoLisp在获得实体信息时就是以表的形式进行存放的;在编写节理玫瑰图、绘制岩土层代号、获取钻孔信息等都会用到各种结构的表。3 应用Setvar、getvar改变AutoCAD系统变量。如在某些应用中,由于OSNAP、ORTHO等的状态对图形绘制有加大影响。修改系统变量,程序结束时再改回去,这是一种很好的编程习惯。4 建立下拉菜单和图标菜单。大量的工具编写完成后,可以组织编写一个图标菜单,应用时就显得非常方便。下拉菜单的编写比较方便,r12版修改Acad.mnu,R14版修改Acad.mns,一般就是增加一段pop代码即可。图标菜单也大同小异,但除了增加一段icon代码,还需绘制图标。绘制图标可用各种栅格图象编辑器,建议还是用AutoCAD R14版内置的图标编辑器比较方便。具体操作是:把光标移动到ACAD的图标菜单上,点击鼠标右键,选择编辑,把一个个彩色的点拼成图形即可,在绘制时其右方的一个小窗口可看到效果,完成后再另存为需要的文件名。一般只需绘制16*16点阵的小图标即可,除非你习惯于采用大图标菜单。5 如何使每次启动AutoCAD都自动调入AutoLisp程序,而不需重新手工调入,可以修改ACAD的SYSTEM目录下的Acad.mnl文件,在适当位置增加下列语句:用(load path filename)则在启动ACAD时自动调入filename.lsp文件,如选用Autoload则只在第一次使用时调入。6 有时需要在ACAD环境下直接编辑文本文件,可以由AutoLisp调用,具体如(winapp notepad.exe filename) 即可。对于输入大量数据(如用于节理统计等)建立的数据文件,在AutoLisp运行过程中直接打开发现错误的文件进行修改,可以减少界面切换,加快绘图过程。以上只是工程地质制图工具集编制过程中的一些小体会,与大家共飨,希望得到同行的批评指正。 MS Word中插入AutoCAD图形的完美方法任鸣春 (国家电力公司成都勘测设计研究院 成都 610072)用AutoCAD制作插图、MS Word编排科技论文报告是我们经常要做的事情。但凡做过此事的朋友,相信都遇到过这样或那样的烦恼:插入的图形显示正常,打印出来线条细得看都看不清,如果在Word中修改线条粗细,改后的Word文件会成5倍的体积增长,而且图形还会经常出现“大红叉”;AutoCAD R14以后版本更是会连背景一起都拷到Word中,尽管可以在AutoCAD中改变背景设置,但除了操作麻烦外,图片的大小也难以控制。为了解决这些问题,探索者想了很多的办法,甚至动用了商用的软件,然而效果并不理想。现在好了,笔者通过潜心的研究、偶然的发现,终于搞清楚了插图过程中的技术细节,总结了一套方便实用,不需要额外的软件投入的方法,用你手上现有的软件工具,完美地插入AutoCAD图形。所需软件工具:任意版本的AutoCAD,当然;-)MS Office97以上版本,废话!不过重要的是,Office中除了已经安装的Word外,必须安装Powerpoint,这是本文的关键(没有Powerpoint也可以做,但插图的质量不是最好)。不要怀疑,现在跟着我一步一步的做:1.在AutoCAD中打开将要插入的图形,使要插入到报告中的那些图元在屏幕上可见,便于选择;2.使用菜单“编辑/复制”运行copyclip命令(或Ctrl-C),框选要复制的图元,将其复制到系统剪切板;3.新建一个Powerpoint演示文档,用Ctrl-V插入刚才拷贝的内容(Office97版本可以用“选择性粘贴/图片”格式粘贴进来;4.用鼠标右键点击粘贴进来的图片边缘背景部分,在弹出的快捷菜单中选“组合/取消组合”项,一直重复到“取消组合”无效(即已无组合)为止;5.单击并选中图片背景部分,用Del键删除背景,做此项操作时应小心,确定你仅选择了背景;如果你的AutoCAD背景为黑色,线条白色,做背景删除后可能什么都看不见了,此时不要惊慌,你的图形内容还在,只是在白色的背景下看不见而已,继续下面的步骤,我们接着做!6.在Powerpoint的显示页面上,用Ctrl-A选中全部图形(显示为所有图形的编辑“夹点”,图形仍然不可见),在任意“夹点”上点鼠标右键,选“设置自选图形格式”项,出现图形格式对话框,设置其中线条颜色为黑色,粗细先设定为图中最多的线条的粗细值(通过比较,一般设为0.35磅比较合适),确定后图形就显示出来了;7.接着设置个别不同线宽的图元,选中要设置的图元,用第6步的方法按需设置即可,如果不能选择你所需要的图元,说明它还是一个组合,用前面讲的方法取消组合就可以了。8.所有的图元线条设置好后,你还可以做一些必要的编辑工作,如插入文字注释,添加图元等;9 .确定不需要进一步编辑了,再次用Ctrl-A选中所有图元,在任意“夹点”上点鼠标右键,选“组合/组合”项将所有零散的图元组合成一个图形;10.最后一步,选中已组合的图形,用Ctrl-C将其拷贝至系统剪切板,打开编辑的Word报告,在插图点用“编辑/选择性粘贴”用“图片”格式插入之(这是要点,请不要随便用Ctrl-V插入,否则Word文件会长很大,还会出现“大红叉”)。到此,插入操作完成了,插入的图形是不是很完美?你可能觉得操作很复杂,其实用熟悉了是很快很方便的。此方法最大的好处是不需要额外的软件,而且插入质量绝对是其他方法不可比的,整个过程的控制性也很好,可以编辑修改被插入图形的任何部分,用起来比花钱的商用软件还顺手,不信你就试一试。操作过程中,所有需要进行图形“粘贴”操作的地方,最好用编辑菜单中的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论