41272619910520**** 郑州航空工业管理学院
摘要
本文从参数化绘图的理念和地籍图管理在Auto CAD的相关理论基础出发,主要介绍了Auto CAD在地籍图管理的绘图过程、Auto LISP语言在对Auto CAD实体对象的操作和Auto LISP参数化绘图在测绘工程中的应用等方面,通过利用Auto LISP语言在Auto CAD系统进行二次开发,只要是能运行Auto CAD的操作系统均能够运行,不仅提高了制图的效率与质量,而且能够减少在其他软件生产相同地籍成果的误差,有效地满足了测绘工作人员在参数化绘图方面的需求。
关键词:参数化绘图,Auto LISP语言,AutoCAD
Auto CAD(Auto desk Computer Aided Design)是Auto desk(欧特克)公司开发的自动计算机辅助设计软件,用于二维绘图等功能,现已经成为最流行的绘图工具。Auto CAD具有良好的用户界面,通过交互菜单或命令行方式便可进行各种操作。通过它无需懂得编程,即可自动制图,因此它在全球广泛使用,可以用于土木建筑,装饰装潢,工业制图,工程制图,电子工业等多方面领域[9]。
1.2.1 Auto CAD二次开发的现实意义
通过对Auto CAD系统的初步了解,相信许多人都已经对Auto CAD其强大的绘图与制图能力有所了解,但是根据本人在校期间的课程学习以及校外实践参与到生产工作的经验来看,如今越来越多的人虽说都认识Auto CAD系统,无论男女老少都知道“CAD”这个脍炙人口的名词,甚至也有很多人会利用这个强大的绘图软件制作用户所需要的产品,但是这些人有大部分不知道Auto CAD系统内部配置有二次开发工具Auto LISP语言,他们很多都是利用Auto CAD最基础的绘图功能与命令完成各自所需的图形,殊不知二次开发工具Auto LISP对许多工作上的繁琐性、重复性有所减免。因为在生产单位工作时如果需要运用到Auto CAD软件,各行业所需要的成果绝不仅仅只停留在在Auto CAD系统界面上通过简单的几个绘图命令所构成的图形这种层面,那么对于复杂的图形结果通过简单的几句代码来实现,而无需进行重复且枯燥的绘图命令操作则显得十分必要,这是对生产单位工作人员一个效率与质量上的提高。综上而言,Auto CAD二次开发的目的是降低用户直接使用绘图命令的出错率,提高工作的效率与质量。
1.2.2 Auto CAD二次开发的基本原则
软件工程是指导计算机软件开发和维护的工程科学,即采用工程的概念、技术和方法来开发和维护软件。软件工程才不用生存周期的方法学,从时间上对软件的开发和维护的问题进行分解,把软件生存的周期一次划分为若干阶段,从对人物的抽象逻辑分析开始,一个阶段一个阶段的开发[2]。
1.3 Auto CAD二次开发工具的选择(Auto LISP)
1.3.1 Auto LISP 简介
Auto LISP是Auto CAD系统内置的一个给设计者提供CAD二次开发的汇编语言,Auto CAD系统内拥有支持Auto LISP编程的汇编环境,即Visual LISP编辑器。Auto LISP语言的特点十分明显,对于初学者而言,通过学习其他人已经编好的程序代码,能够直接看得出此类语言是通过括号“(”和“)”成对存在构成表达式。Auto LISP拥有大量控制Auto CAD的特殊函数,能够直接调用几乎所有的Auto CAD命令且修改系统变量。
1.3.1 Auto LISP 对设计人员效益评估
对于设计人员,如果掌握了Auto LISP对Auto CAD进行二次开发将会是对原有工作的效率有一个质的提高,Auto LISP是Auto CAD的基础语言,简简单单的几行语句就能实现十分强大的功能,如果设计人员在设计程序的工作中得心应手,将会是参数化绘图在测绘工程的一大进步。
什么是参数化绘图?在机械制造行业内,这个名词使用的频率较高,因为在绘制机械零件的时候一般需要用户提供各种参数从而对所需要的零件进行设计并绘制。而参数化绘制在测绘工程中的概念也与此相似,譬如说绘制一个地形图的图廓,从事测绘工作的人士都对此类成果图较为了解,绘制地形图图廓的时候需要用户选取或提供西南角坐标,绘图软件系统或者用户设计的程序便可实现对地形图图廓的绘制与输出,那么此时用户所需要输入的西南角坐标即是参数化绘图的首要元素,也称参数。
对用户所需要的成果或者图形进行分析,掌握该图形的尺寸信息,尽可能地找出各参数之间的关系,并且确定绘图所需要输入的参数,如绘制地形图图廓,分析出图框的各点坐标与西南角坐标的关系,确定图框整饰的放置位置与对正方式。
根据上一步所分析出的结果,在二次开发工具Auto LISP编辑器下编写对应运算法则的代码,设计者可以先在Visual LISP编辑器下编辑出整个程序的设计思路及所需的函数,从而在此基础之下一句一句代码实现对参数的运算,求解出该图形的其他关键参数,如绘制地形图图廓输入的西南角坐标,根据该坐标能够计算出图框的其他拐点的坐标、四条连线之间中点的坐标、绘制图框内方格网的基础点坐标和整饰插入点坐标等等。
在 Auto CAD 制图与用图中,我们经常会遇到对象选择的情况,而对于选择的对象在Auto CAD里面都是以实体为单位的对象,何谓实体?在Auto CAD中的实体是指用户通过对Auto CAD系统中命令的调用,运用多种绘图命令形成的图形,这种图形可以是单个也可以是多个图形所组成的一个整体,由多种图形形成整体的实体一般包括了许多不同类型的图形,如直线、多段线、曲线、多边形、块和文字等等,不同的实体可以放置在不同的图层,传统的对象选择能够根据不同实体的各种属性进行简单的筛选。
一般情况下,选取对象的方式有鼠标点选和窗口模式两种,但对于复杂的实体或图纸,仅使用以上两种方式难以满足工作的需求。
当工程用图或制图中地形图涉及的实体比较多的时候,往往需要选取大量的实体对象进行接下来的操作,从而满足用户的各种需求。我们可以通过窗口模式选取大量实体,但各行各业的需求和标准不一致,通过窗口模式选取的对象并非所有的实体均是用户需要的,这是则需要在命令行输入“R”,进行删除不需要的实体对象,这种操作往往比较烦琐也十分不合理,如今我们能够通过 Auto LISP 编程就可以快速实现所需对象实体的选择。
选择集是实体的有序集合,它是利用选择集构造函数通过一定方式从图形中或图形数据库中选定多个实体构成。[4]
选择集操作函数(ssget <方式> <点> <点> [点表] [关联表]),调用ssget函数构建选择集时,若需要<点>参数时,一般先将自动捕捉关闭,即把系统变量 osmode 设置为零。
一、选择集的窗口参数
<方式> 字符串类型,指定一个选择方法。
<点> <点> 表类型,由三个数字的点参数表,表示 x、y、z 坐标,也可以是仅包括x、y 的坐标。
[点表] 表类型,由点参数表组成的表。
本文主要就一种通过筛选过滤表的选取对象方式进行解释说明,该选取方式与其他选取方式相比有其独特的优点,在其参数语法(ssget "x" [关联表])中,无需要选取任何点进行单个或多个对象选择,ssget的 "x " 方式是扫描整个图形库,并且把所有在图形数据库中与[关联表](或称之为过滤表)指定的实体类型和特征相匹配的实体选中,最终构建成一个新的选择集,与特征不匹配的实体则不被选中加入选择集,这种选取的方式与现实生活中的过滤器相似,故也称之为选择集过滤器。
本文通过学习现今的Auto CAD参数化绘图的技术以及Auto CAD系统内置的汇编语言Auto LISP的基本知识与原理,对运用Auto LISP对选择集进行选择,促进Auto CAD参数化绘图在差会给出中的应用。