APP下载

如何实现直线特征的自动标注

2011-10-19莫玉梅甘文的

大众科技 2011年8期
关键词:垂直线肇庆子程序

莫玉梅 甘文的

(肇庆科技职业技术学院,广东 肇庆 526114)

如何实现直线特征的自动标注

莫玉梅 甘文的

(肇庆科技职业技术学院,广东 肇庆 526114)

文章介绍在AutoCAD中如何实现直线特征的自动标注。利用二次开发技术的手段, 运用AutoLISP编程、开发新的命令,在AutoCAD实现直线特征的自动标注,为使用AutoCAD的用户提供更方便、更快捷、更高效、更准确的命令,从而提高绘图效率和准确性。

AutoCAD;AutoLISP;二次开发;自动标注

1 前言

AutoCAD是目前微机上应用最为广泛的通用交互式计算机辅助绘图与设计软件之一。在模具设计与制造中,AutoCAD以其强大的图形支撑能力和开放的结构体系,成为CAD市场的不可缺少的软件。而在AutoCAD出图必须对图素进行标注,标注在画图的过程中占用了大量的时间,更是一个容易出错的环节。因此,对标注进行开发是很有必要的,特别是在较为复杂的模具零件。

2 二次开发目标

希望在VLISP集成环境下运动AutoLISP语言设计开发一个新程序,使得AutoCAD产生一个具有新功能的命令。该命令的执行是以0点(0,0)为基准,针对用户所选择的范围内的同一属性(颜色、线型)的直线特征进行自动快速标注,标注过程实现统一引线、统一文本,同时要避免标注的重复、避免文本重叠。为了图形的清晰,要求避免在图形内出现尺寸标注。为了打印的美观,还要求文本字高比例按图形大小自动调节。标注速度决定于计算机处理数据的快慢,如图 1所示的所有直线的标,要在20秒内便可完成。

图1 直线的标注

3 在AutoCAD中实现直线特征自动标注的原理与实现

3.1 程序流程图,如图2所示

图2 程序流程图

3.2 程序的编写

(1)程序名为:ad.lsp

(2)程序的编写:

该程序相对复杂,运用了很多函数和变量,运用了AutoLISP大部分语法。此程序的特色就是运用了子程序,使得程序简化了许多。下面介绍一些程序编写过程中的重点,部分程序如下。

1)实现从判断有否记录到获得plmax、plmin、pwmax、pwmim、exmax、exmin的过程

判断纪录有无,如有have=1*****

3)调用子程序

在此调用了四次子程序,子程序名分别为:ss1、dim0,每个程序都被调用了两次。

ss1用来判断在直线的选择集的线是水平线还是垂直线,再分开两种线放在不同的选择集里;再对水平线或垂直线两个选择集进行判断是否有相同的x值或y值,有的情况存进一个选择集里,再对选择集中相同的删除,无的情况也存进一个选择集,再从两个选择集中获得所有要标注的点的x、y值的选择集,并排序,

dim0用来对上述所得到的最后一个选择集进行标注。

水平线和垂直都调用相同子程序,却得到了不同的结果,是因为在调用子程序时设置不同的变量。如以下程序,调用了相同的子程序,但其变量是不同的。

(ss1 linehor 1 2 0 1 car cadr) (dim0 car);

调用子程序ss1针对水平线,再调用子程序dim0进行尺寸标注

;***********************垂直线的子程序****************

(ss1 linever 2 1 1 0 cadr car) (dim0 cadr);调用子程序ss1针对垂直线,再调用子程序dim0进行尺寸标注

4)用于标注的子程序

4小结

(1)本程序变量很多,占据很多的内存,所以要在程序开始把它们都处理成“局部变量”。

(2)程序函数很多,编程时要注意充分运用好。

(3)程序的语法结构有些复杂,要注意每一个语法细节。

(4)灵活调用子程序,会使得程序更简练。

(5)要注意读文件和写文件过程。

5 应用实例

新命令程序完成之后,还要对程序进行必要的调试,调试成功了,该命令的功能开发才算完毕,它使用则分为两个步骤:

(1)加载

当回到AutoCAD环境下,用Load函数装载就可以执行了。执行时,如果程序中没有defun函数,系统便边装入边运行;若有defun定义的命令或函数,装载后只需在Command:(如果是中文AutoCAD,Command被汉化为了“命令:”)提示符下键入defun函数定义的命令或或函数名即可运行相应的命令或函数。

(2)使用

在加载完毕之后,直接输入新命令的程序名既可使用。

[1] 孙江宏. AutoCAD 2000 应用与开发技巧[M].北京:清华大学出版社.

[2] 孙江宏.Visual LISP R14-2000 编程与应用[M].北京:清华大学出版社.

[3] 汤峻.AutoCAD 2000 高级应用与 Visual LISP开发宝典[M].北京:人民邮电出版社.

[4] 郭剑峰.用Visual LISP开发AutoCAD 2000应用程序[M].北京:人民邮电出版社.

[5] 李学志.Visual LISP程序设计(AutoCAD 2006)[M].北京:清华大学出版社.

[6] 用Visual LISP开发AutoCAD 2004应用程序[M].北京:科学出版社.

How to the antomatic dimension of line feature

This article describes how to achieve a straight line features of AutoCAD in the automatic annotation,the use of secondary development of technical means, the use of AutoLISP programming, development of new command.to achieve a straight line features in AutoCAD automatically marked for the use of AutoCAD users a more convenient,Faster,more efficient, more accurate orders,thereby enhancing the efficiency and accuracy of the drawing.

AutoCAD AutoLISP Secondary development Auto-annotation

TP311.52

A

1008-1151(2011)08-0011-03

2011-06-08

莫玉梅(1982-),女(壮族),广西南宁人,肇庆科技职业技术学院机械工程助教,广东工业大学在读硕士,研究方向为软件二次开发。

猜你喜欢

垂直线肇庆子程序
大地回春—肇庆十八年林丰俗作品特展
肇庆学院封
基于指数模型的R = P(Y <X <Z)统计推断
怎样走最近
机械制图教学方法例谈
汉米尔顿
TWAUDIO为2016国际马术比赛进行扩声
浅谈子程序在数控车编程中的应用
子程序在数控车加工槽中的应用探索
西门子840D系统JOG模式下PLC调用并执行NC程序