利用CAD宏程序进行点位中心线的自动绘制程序的开发

(整期优先)网络出版时间:2019-10-20
/ 2

利用CAD宏程序进行点位中心线的自动绘制程序的开发

杨亮武杰罗枭王思蕾杜颖娜

(中航飞机股份有限公司陕西西安710089)

摘要:本文结合应用CAD宏编程方法,针对飞机模线样板设计中大型明胶图中点位中心线绘制问题,进行二次开发,实现梁、长桁的明胶图绘制中点位中心线的自动绘制,以便更好的掌握CAD二次开发编程技巧,更好的服务于飞机的设计制造中,提升工作效率。

关键词CAD宏二次开发点位中心线

1引言

AutoCAD是由Autodesk公司开发的计算机辅助设计软件,具有易掌握、使用方便等优点,能够绘制二维图形与三维图形,目前已广泛应用于机械、建筑、电子、航天、造船等各个领域。任何优秀的软件都不可能满足于所有领域,适用于所有用户习惯和运用需求,二次开发是对软件的用户化的有效手段。因此,CAD为用户提供了多种二次开发的接口,为用户的特别需要提供了解决方案。本文介绍了点位中心线自动绘制程序的开发思路和方法。

1.1问题的提出

大客长桁、梁等零件的模线样板设计中,存在上万个的点位信息需要在模线上绘制。由于大型模线绘图机不能自动绘制点位,需要将点位转换为点位中心线如图1。模线样板设计过程中需要对大量的由设计数模生成的点进行点位中心线的绘制,设计员工作量巨大,且容易出错。

常规的做法是先逐一对每个点做出点位中心线。

其缺点是:

需要逐点操作,手工捕捉绘制,操作过程烦琐,工作强度大;

效率低,容易出错,每根长桁上万个点位绘制通常需要一周的时间;

利用CAD宏编程软件,编程程序,自动读取每一个点位,计算每个点位的坐标信息,利用程序绘制点位中心线,快速实现点位中心线的绘制。

其优点是:

操作简单,一步式操作,大大降低了劳动强度

通用性强,效率高,多余上万个点,几秒中就能完成计算;

计算迅速,特别适用于多点操作;

2CAD二次开发的接口

CAD有着优良的扩展性能和强大的开发接口,具有完备的二次开发性和二次开发能力。其接口通常有两种形式:AUTOCADAPI和AUTOCADVBA。

其中AUTOCADVBA(简称宏)使用的是AUTOCADACTIVEX技术,将AUTOCAD和VISUALBAISC的功能结合在一起,使用户能够从内部或外部的编程方式来操作AUTOCAD,具有速度块,易使用的优点。

3点位中心线自动绘制程序的开发

3.1点位中心线自动绘制的原理

如图1,利用读取点位的坐标X0,Y0,标记中线线的长度为L0,则通过圆心利用两点绘制直线的方法绘制两根中心线,完成点位中心线的绘制。

中心线L1[(X0-L/2,Y0),(X0+L/2,Y0)]

中心线L2[(X0,Y0-L/2),(X0,Y0+L/2)]

3.2点位中心线自动绘制编程功能的实现

准备工作:定义点的总数为N,点位序号为I,第I个点位所对应的中心点定位L1,L2.

模块化编程:依据点位中心线绘制原理的分析,可以将程序分为以下六大模块实行模块化编程的方法来实现。

●点位中心线长度L的读取:为方便不同用户对不同模线设计中点位中心线不同长度的需求,利用InputBox语句,编写提示输入对话框,通过记录用户输入数据,确定中心线的长度值L。

●点位总数N的统计:利用ModelSpace.Count命令对当前CAD文档中的点位个数N进行统计计算,通过N次循环遍历每个点位,实现每个点位中心线的准确绘制。

●点位坐标的读取:利用Coordinates命令读取第I个点位的坐标值[X0,Y0]

并记入变量。

●中心线坐标点的计算:依次读取第I个点位坐标,由点位中心线的绘制原理,计算出第I个点位的L1,L2的中心线的点位坐标。

●中心线的绘制:利用两点绘制直线AddLine(startPt2,endPt2)命令实现第I个点位中心线的绘制。

●完成提示信息:当程序运行结束时,利用MSGBOX命令弹出程序运行结束提示信息。

其流程图如图2所示

3.3部分程序代码及说明

中心线L1坐标点位计算

startPt1(0)=get3Dpts1(0)-lenght/2

startPt1(1)=get3Dpts1(1)

startPt1(2)=0

endPt1(0)=get3Dpts1(0)+lenght/2

endPt1(1)=get3Dpts1(1)

endPt1(2)=0

中心线L1直线绘制

SetlineObj1=ThisDrawing.ModelSpace._AddLine(startPt1,endPt1)

中心线L2坐标点位计算

startPt2(0)=get3Dpts1(0)

startPt2(1)=get3Dpts1(1)-lenght/2

startPt2(2)=0

endPt2(0)=get3Dpts1(0)

endPt2(1)=get3Dpts1(1)+lenght/2

endPt2(2)=0

中心线L2直线绘制

SetlineObj2=ThisDrawing.ModelSpace._AddLine(startPt2,endPt2)

4程序运行效果

以大客型机翼对接板点位5000个中心线绘制为例,原手工绘制需要5小时,利用程序仅用时1分30秒,实现了点位中心线的准确快速绘制,极大的提高了设计员的设计效率。

5结论

由于程序的通用性和易用性,在大客模线样板设计过程中得到了大量的运用,节省了设计时间,简化了计算过程,一键式的操作改变了点位中心线手工绘制的现状,保证了模线样板设计的准确性,极大的提高了模线样板设计的工作效率。

参考文献:

[1]林卓然.VB语言程序设计,电子工业出版社,2009.

[2]郭秀娟.AUTOCAD二次开发使用教程,机械工艺出版社,2014