1、1 内容提要据有关资料统计:用手工编程时,一个零件的编程时刻与其实际加工时刻的平均比例约为30:1。而数控机床无法启动进行加工的缘故中,有20%-30%是由于加工程序不能及时编制出来造成的。由此可见,编程的自动化是现今制造业的一个必然的进展趋势。所谓的自动编程,确实是利用运算机专用软件来编制数控加工程序,编程人员只需依照零件图样的要求,利用数控语言,由运算机自动地进行数值计算及后置处置,编写出零件加工程序单。在很多制造领域,尤其在军事工业,航空航天工业,微观制造业等尖端科技领域,由于其产品往往具有科技含量高、结构复杂、精度高等特点,给手工编程造成了专门大难度,乃至无法完成。为了缩短编程时刻,减
2、少人为失误,编程后方便加工前的加工模拟,愈来愈多的常规制造领域业慢慢采纳自动编程。因此,制造业界投入了愈来愈多的资源来进行自动编程技术的研究开发,使其迅速的进展成熟起来。本次课程设计的目的确实是设计一个能够将AutoCAD等运算机辅助设计软件画出的DXF图形文件中的相关信息提掏出,通过编程转换成咱们所需要的加工图形,并生成数控代码,实现自动编程目的软件。2 前期预备编程软件的选择Visual Basic(VB)和Visual C+(VC)尽管都是可视化的高级编程语言,可是编写相同程序时,VC的工作量一样要比VB高上很多,而且VC适用于大型的,复杂的,商用的程序,其学习难度也远高与VB。VB是一
3、种可视化的、面向对象和采纳事件驱动方式的结构化高级程序设计语言,可用于开发Windows环境下的各类应用程序。它简单、效率高,且功能壮大。故选用用Visual Basic作为本次课程设计的编程软件。 DXF文件的结构1、DXF文件简介DXF是Drawing Exchange Format的缩写,是Autodesk公司开发的用于AutoCAD与其它软件之间进行CAD数据互换的CAD数据文件格式。其扩展名是“.dxf”,是一种基于矢量的 ASCII 格式,在表现图形的大小方面十分精准,由于它结构简单、可读性好,易于被其他程序处置,因此已是事实上的工业标准。目前,绝大多数CAD系统都能读入或输出DX
4、F文件。2、DXF文件的组成一个完整的DXF文件由六大段组成,别离是:题目段(HEADER Section)类 段(CLASSED Section)表 段(TABLES Section)块 段(BLOCKS Section)实体段(ENTITLES Section)对象段(OBJECTS Section)还有起始段和段终止标记和文件终止标记。一样情形下,段的前后顺序不能改变。六大段中与几何图形有关的几何信息均包括在实体段中,实体段中的实体有:点,直线,圆,圆弧,折线,B样条曲线,文本等。而咱们只需要用到直线和圆弧。不同实体在DXF文件中的记录要素不同,例如一条直线的几何信息是直线的起点和终点坐
5、标。通过度析DXF的文件结构和自动编程所需的信息,只把握ENTITLES段就大体能够知足画图和提取几何图形大体信息的要求。3、实体段(ENTITLES Section) 该段概念了每一个实体的种类,所在的图层名,颜色,线形,厚度,实体描述字及有关几何数据,如直线(起点、终点),圆(层、圆心、半径),圆弧(圆心、角度、起始坐标、终点坐标)。不管DXF中的哪个段均由假设干个组(Group)组成,每一个组单元占两行,第一行为组码(Group Codes),为整形的代码,代表着改组组值的性质,第二行为组值(Group Value),为具体的数值和代码,二者相结合标识出具体组值代表的意义。表1至表3是D
6、XF直线、圆、圆弧组码的功能说明表一:DXF中直线组码的说明组码 说明100子类标记(AcDbLine)6线形(可选)10起点(在OCS中)DXF:X的值20,30DXF中Y,Z起点(在OCS中)的值11端点(OWCS中)DXF:21,31DXF中Y,Z端点(在OCS中)的值表二:DXF中圆的组码的说明说明子类标记(AcDbCircle)中心点(在OCS中)DXF:DXF中Y,Z中心点(在OCS中)的值40半径210拉伸方向。默认值(0,0,1),DXF:X值220,230Y,Z的拉伸方向表三:DXF中圆弧组码的说明子类标记(AcDbArc)50起始角度51终点角度由表可知,AcDbArc嵌套
7、在 AcDbCircl中,而且圆心、半径的组码与圆的都相同。可是圆与圆弧的提取并非会混淆,因为在ENTITLES段中每一个实体概念的入口处组码0的组值标示实在体类型,圆在入口处组码的组值是CIRCLE,而圆弧是ARC,由此可区分提取。DXF文件中的组码50,51给出的是圆弧起点与终点角度,而关于运动操纵信息而言,需要的是圆弧起点与终点的坐标值。依照下式,将取得的是圆弧的所在座标系下的两个端点的坐标值。设圆心坐标为,半径为,起始角为,终止角为,那么可取得圆弧在所在座标系下的起点坐标与圆弧的终点坐标:三、数控系统软件设计进程数控系统软件的设计是本次课程设计的要紧内容与核心部件,通过Visual B
8、asic的编程功能,咱们从DXF文件中提掏出所需的组码,并利用这些组码显示图形,生成数控代码。咱们还考虑了刀补,加工方向和起刀点的选择。为了方便利用者操作,咱们把这些功能通过人性化的界面表达,用户只用进行一些简单的操作,即可实现自动编程的功能。为了能够清楚显示图像,界面包括原始状态、最大化两种情形。图1虚线框内是整个软件的功能的设计流程。其中,我和另外两名同窗需要做的是从读入DXF文件,提取圆弧和直线信息并排序,最后显示图形(1-4步)。而我又在其中负责显示图形(第4步)工作。图1 数控系统软件设计的流程图读入DXF文件利用VB中的通用对话框控件,能够打开所需的DXF源文件,并按行读取文件中的
9、数据内容,具体程序如下:Private Sub openfile_Click()Call openDXFfile_ClickEnd SubPrivate Sub openDXFfile_Click() 打开文件TDXF = = filename = On Error GoTo cancleopenj = 0Open filename For Input As #1 按行读取打开的文件顺序读取数据的内容Do While Not EOF(1) Line Input #1, saveDXF If saveDXF = AcDbCircle Or saveDXF = AcDbLine Then j =
10、j + 1 End If TDXF = TDXF & saveDXF & 保留文件信息Loopk = jReDim DXFline(1 To k), DXFcircle(1 To k), TEMPline(1 To k), TEMPcircle(1 To k), Common(1 To k), D(1 To k), TempCommon(1 To k), Taxis(1 To k)Close #1此程序可由openDXFfile子程序打开DXF文件并找出实体段中圆弧与直线的组码,并计数。提取相关圆弧和直线的信息由于适才程序中,在圆弧和直线组码开始处追加了“”,方便了下面提取每段圆弧与直线信息的
11、程序查找所需内容。strStart1 = InStr(1, TDXF, &) 提取直线标志所在行strStart2 = InStr(1, TDXF, ) 提取圆弧标志所在行If strStart1 strStart2 And strStart2 0 Then strStart = strStart2 ElseIf strStart1 strStart = strStart1 Else strEnd = InStr(strStart, TDXF, ENDSEC提取直线和圆弧终点的几何信息 temp = Mid(TDXF, strStart, strEnd - strStart) 提取直线和圆弧的
12、几何信息sourse = Split(temp, ) startPos = -1 j = 0Do While startPos -2 startPos = getStart(startPos) If startPos = -2 Then Exit Do If sourse(startPos) = DXFline(j).SX = 0 DXFline(j).SY = 0 DXFline(j).EX = 0 DXFline(j).EY = 0DXFline(j).SX = sourse(startPos + 2) 拾取起点的X坐标 DXFline(j).SY = sourse(startPos + 4) 拾取起点的Y坐标 DXFline(j).EX = sourse(startPos + 8) 拾取终点的X坐标 DXFline(j).EY = sourse(startPos + 10
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1