付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录数控技术课程设计任务书2摘要3自动编程概述5数控自动编程系统的定义5数控自动编程系统的现状和发展5现状51.22 发展趋势62、系统设计7设计72.1开发工具的选择7人机界面7功能模块的划分83、主要功能模块详细说明9算法说明9排序功能介绍9加工起点的确定93.13 加工过程的确定10程序流程图11DXF 文件简介113.2.2 DXF 文件的结构.123.2.3 图形几何信息提取123.2.4 NC4、所设计自动生成13的使用说明及.154.1 使用说明154.1.185、设计小结18程序附录19数控技术课程设计任务书仿真数控自动编程系统题目名称机电学生学院05 级机械提高班专业班级姓名
2、学号1.课程的性质和任务数控机床课程设计是机电专业教学活动的一个重要的实践性环节,是对学生所学数控机床课程和其它有关课程知识和技能的一次综合性练在使之巩固、充实、系统化,并进一步扩展。课程设计是培养学生理论联系实际、解决生产实际问题的机会。通过对数控铣床典型的结构设计和零件编程的具体问题的解决,使学生对数控机床的结构原理、设计方法以及用编程方法处理实际问题的一般步骤和具体技巧得到训练,提高运用所学专业知识分析问题和解决问题的能力。2.课程的基本要求每个学生应在规定时间内,独立完成所选题目,对选择编程题目的学生,要求用编写计算机的方法解决数控过程中的一个问题。可以用本人熟悉的一种编程语言,要求清
3、楚地分析问题、提出算法、列出流程图,最后用程序验证,并且提交详细和规范的程序说明书。3.数控课程设计任务用计算机高级编程语言(如 VB,VC+)来实现:由任意的 CAD(如AutoCro/E,UG,Solider works 等)所生成的二维绘图 DXF 文件(限定 DXF文件中几何元素只有直线和圆弧)到 CNC 代码的自动生成(亦即仿真数控自动编程系统)。具体要求如下:(1)(2)(3)(4)从 DXF 文件中提取几何信息(只提取直线和圆弧的信息);在屏幕上显示所提取得到的二维几何图形。将提取得到的几何元素进行排序(由程序来实现);针对指定的走刀方向、起刀点,自动生成数控平面铣削(或数控线切
4、割)的 CNC 代码。发出任务书日期:2007 年 04 月 16 日指导教师签名:计划完成日期:2007 年 06 月 22 日基层教学责任人签章:主管院长签章:摘要仿真数控自动编程指的是在计算机上模拟工件在数控机的加工轮廓,并通过对仿真所得的与实际加工路径相符的图形进行综合分析,从而可以在实际加工之前及时发现问题,完善加工方案,减小数控机床在实际加工中的出错概率,提高工作效率,缩短工作周期,降低加工成本的投入,最终达到整体经济效益的提高。本文介绍了一种简单的仿真数控编程系统的开发和设计,具体是以CAD 为进行二维图形的绘画,并将完成的图形以 DXF 的格式保存起来,最后,用 VB 开发好的
5、仿真读入 DXF 文件,通过对所提取几何元素进行排序,实现CAD 图形的再现和数控代码的生成。:仿真数控、自动编程、CAD、DXF、VBAbstractNC simulation refers to the programming on a computer simulation of the workpiece in CNC machine tools on the prosing profile and, through thesimulation from the path in line with the actual prosing of a comprehensiveysis of
6、 graphics, which can be prosed in a timely mannrior to the actualproblems found, improve the prosing programmes, reduce the NC machine tools inthe actua proreducing prosing of error probability, improve work efficiency, reduce the work cycle,sing costs of inputs, and ultimay achieve the overall econ
7、omicefficiency improved. This pr presents a simple simulation of CNC programmingsoftware system development and design, a specific CAD as a platform for thetwo-dimenal graphics paing and graphics to the completion of the DXF format,Finally, with DXF simulation software to reads and the geometric ele
8、ments fromthe sort ,it can implement graphics reproduction of the CA D and NC code generation.Keywords:simulation NC .、 Automatic programing 、.CAD、 .DXF 、.VB1.自动编程概述1.1 数控自动编程系统的定义自动编程也称为计算机(或编程机)辅助编程。即程序编制工作的大部分或全部由计算机完成。包括完成坐标值计算、编写零件加工程序单等,有时甚至能帮助进行工艺处理。自动编程编出的程序还可通过计算机或自动绘图仪进行刀具运动轨迹的图形检查,编程可以及时检
9、查程序是否正确,并及时修改,减少出现错误的几率。自动编程大大减轻了编程的劳动强度,效率提高几十倍乃至上百倍,尤其重要的是,自动编程技术解决了手工编程无法解决的许多复杂零件的编程难题。工作表面形状愈复杂,工艺过程愈繁琐,自动编程的优势愈明显。随着零件复杂程度的增加,数学计算量、程序段数目也将大大增加,这时如果单纯依靠手工编程将极其,甚至是不可能完成的。于是人们发明了一种系统,它可以代替人来完成数控加工程序的编制,这就是自动编程。自动编程的特点是编程工作主要由计算机完成。在自动编程方式下,编程只需采用某种方式输入工件的几何信息以及工艺信息,计算机就可以自动完成数据处理、编写零件加工程序、制作程序信
10、息载体以及程序检验的工作而无须人的参与。在目前的技术水平下,分析零件图纸以及工艺处理仍然需要人工来完成,但随着技术的进步,将来的数控自动编程系统将从只能处理几何参数发展到能够处理工艺参数。即按加工的材料、零件几何尺寸、公差等原始条件,自动选择刀具、决定工序和切削用量等数控加工中的全部信息。1.2 数控自动编程系统的现状和发展1.2.1 现状:自动编程可将编程过程中的数学处理与编写加工程序工作交由计算机来完成,从而使数控加工编程从面向机床指令的“汇编语言”级上升到面向几何元素的“高级语言”级,提高了编程速度与精度,解决了某些手工编程无法解决的复杂零件的编程问题,大大地促进了数控技术的发展。然而,
11、由于语言数控自动编程技术发展较早,受计算机软硬件的限制,使其也存在许多之处:语言数控自动编程系统需要采用某种特定语言的形式来描述本来十分直观的零件几何形状信息及加工过程,致使这种编程方法直观性差,编程过程复杂抽象,不易掌握。同时,由于语言的描述能力有限,难以描述复杂的几何形状;缺少对零件形状、刀具运动轨迹的直观图形显示和刀具轨迹的验证,不便于进行阶段性的检查;语言自动编程是由编程根据零件图纸,结合加工工艺手工编写源程序,再由编程系统处理生成数控代码,因而从零件设计到数控加工程序的生成各部分工作相互,即影响编程效率,又使得语言自动编程系统难以和 CAD 数据库以及CAPP 系统有效连接,不容易作
12、到高度的自动化,集成化;另外,APT 语言经过近 30 年的发展,功能大而全,使其语言词多,语则复杂多样,况且大多数 APT 语言自动编程系统都采用了字符界面,这导致了系统用户界面不友好。由于语言自动编程的上述缺点,使人们开始研究图形自动编程技术。而世界上第一台图形显示器 1964 在研制成功,为图形自动编程系统的研制奠定了硬件基础;计算机图形学等学科的发展,又为图形自动编程系统的研制准备了理论基础。很显然,这种编程方法与语言自动编程方法相比,具有速度快、精度高、直观性好,简便易学,便于检查与纠错,便于实现 CAD/CAM等优点。因此,图形自动编程技术已成为目前国内外先进的集成 CAD/CAM
13、 自动编程系统所普遍采用的方法。1.2.2 发展趋势(1). 在微机上发展模块化的功能编程系统,不仅具有词汇式语言输入、图形式输入,还有人机理能力。系统的程序(系统 割、复杂形腔等编程模块 。式输入。不仅可以出来几何图形,而且还有工艺处)结构实行模块化,包括有点位、车削、铣削、线切(2). 发展CAD/CAPP/CAM.实行前台加工和集成系统,由 CAD 开始建立的数据格式,自动生成刀位数据,自动生成加工工艺和工艺参数,实行刀具轨迹仿真,进行修正,最后自动生成数控加工程序。(3). 发展CNC 控制和编程系统,实行前台加工和运算编程的并行工作方式,或者称为编程。在数控系统的键盘上输入编程指令并
14、进行会话式操作,不输出中间结果,直接形成数控加工程序。(4)数字化编程和语音编程技术.对无尺寸的图形或实物模型,用坐标测量机获得几何数据,然后经过处理后形成数控加工指令或形成加工程序,这就是数字化编程技术。随着语言识别技术的发展和应用,出现了语音编程技术,编程只需要通过话筒将规定的语音指令输入编程计算机,经过处理后便可获得所需的数控加工程序。2系统设计2.1设计在Windows XP 的环境下, 经过以下几个步骤来实现:(1) 将要加工的零件图形在 AutoCAD 中绘制出来, 然后通过 AutoCAD 的DXFOUT 命令将图形转换为文本文件格式的 DXF 文件;(2) 在Visual Ba
15、sic 6. 0 界面下, 编制DXF 文件中的有关图形的几何信息, 按照数控加工标准, 经过转换和工艺干预, 生成加工零件的对应数控加工(即 NC) ;(1.DXF2.编程算法3.数控知识计算方面)(3) 在Visual Basic 6. 0 界面下, 读入自动生成的 NC, 经过转换, 静态显示对应的加工刀具运动轨迹, 从而校验 NC正确否。开发工具的选择本系统选用 VB 作为工具进行开发,具体理由:VB 能够提供方便快捷的界面创建方式,相对 VC,就可以减少界面创建代码编制带来的麻烦。VB 速度不如 VC,生成的安装程序比较大,但是本系统对速度和程序体积的要求不是很高,而且能够实现告诉度
16、开发。人机界面首先,按照本系统要求,界面必须有 piture 控件以显示图形,text 控件以显示生成的CNC 代码,至少有两个d 控件控制DXF 文件的导入和CNC代码的,还有比例缩放,用以图形,其次考虑到系统的友,再加上一些辅助的控件和界面优化,得到本系统人机界面,如图 1、2 所示,图 1 为欢迎界面,图 2 为操作界面。图 1欢迎界面图 2操作界面2.4 功能模块的划分(1)文件管理模块:打开 CAD、载入、退出和刷新命令按钮。(2) 钮。处理模块:比例缩放命令按钮、缩放倍数放置 Combo 和方向控制按(3)加工代码参数控制模块:刀补、进给、转速和刀具四个 Combo。(4)图形及代
17、码显示模块:显示框、代码显示框和坐标显示框。3 主要功能模块详细说明3.1 算法说明3.3.1 排序功能介绍只能实现由 AutoCAD所生成的二级所生成的二维绘图 DXF这个文件(限定 DXF 文件的几何元素只有直线和圆弧)到 CNC 代码的自动生成。所以对于描述直线段的信息、圆弧的信息和圆的信息,只要各自考虑在 X 和Y 平面的相关坐标值。对于含有若干直线和圆弧组成的封闭圆形,DXF 文件中描述直线段的信息、圆弧的信息是按在 AutoCAD 绘图的顺序来排列的。在描述信息中,直线段的信息有直线段起点的X 值、直线段起点的Y 值和直线段终点的X 值、直线段终点的 Y 值的描述;而对于圆弧有圆心
18、的 X 值圆心的 Y 值、 圆弧的半径 R 、值圆弧的起始角1 和圆弧的终止角2,由圆弧的这些信息 通过计算可以得到圆弧的起点的X 值、起点的 Y 值和终点的X 值、终点的 Y 值的描述;这样在软件中可以定义两个数组按照直线和圆弧信息出现的先后顺序来各自存放直线段和圆弧起点的X 值、起点的 Y 值和终点的X 值、终点的 Y 值。另外,还定义五个数组来存放先后出现圆弧有圆心的 X 值圆心的 Y 值、 圆弧的半径 R 、值圆弧的起始角1 和圆弧的终止角2,以备在下面中计算两点间的距离中的算法时判断是否出现圆弧时,以及在出现圆弧时生成 NC 序列时和绘图时使用。当所绘制的图形只有一个圆时可作为一个特
19、殊情况来考虑,无须对元素进行排序。这样便实现了将提取的几何元素的进行排序。3.1.2 加工起点的确定在确定加工起点时,对于直线段或圆弧组成的封闭二维图形,这个按直线段或圆弧信息出现的先后顺序,选取两者中首先出现的段的起点作为加工起点,并开始加工第一段和生成相应的 NC 代码和图形。由读入圆弧的半径 R 组成的数组相对应的值是否等于 0 来判断是下一段出现的是直线还是圆弧.对于第一段为直线段(如图 3 所示),可能按先后顺序用 G01 加工,并在图形显示区中绘制出第一段直线。对于第一段为圆弧的情况(如图 4 所示),有描述信息圆弧的起始角1、圆弧的终止角2,可知计算出的 X1,Y1 和 X2,Y
20、2 在圆弧中是逆时针方向的,这样可以确定一定是用G03 来加工。再加上在 VB 加圆弧的绘画是按逆时针方向的,这样可以在图形显示区中绘制出第一段圆弧。2图 3第一段图 4 对于只是一个圆的情况,可以选取如图 5 所示的点划线(X,Y)作为加工起点,可以用 G02 或 G03 进行加工和编写 NC 序列,并在图形显示区绘出圆。图 53.1.3 加工过程的确定(1) 加工过程各段间连接的实现在由直线段和圆弧的起点坐标和终点坐标组成的数组 X(k),Y(k)中,从第一段的终点坐标开始,查找出与第一段终点坐标的距离的平方小于一个接近于 0的很小的数的坐标,当满足这个条件的坐标出现时,这个坐标中的一段就
21、是要加工的下一段。出下一段的另一个坐标作为下一个加工工序的终点,由读入圆弧的半径R 组成的数组相对应的值是否等于0 来判断是下一段出现的是直线还是圆弧。(2) 读入的下段是直线如图 7 当由点(X3,Y3)到(X7,Y7)时,这时下一段直线的起点坐标对应的数组的下标 K 的值为奇数,排序数组中的下一个数 X(k+1),Y(k+1)即点(X8,Y8)即为下一段直线的终点坐标,这样可以用 G01 加工下一段直线并生相应的 NC 代码,在图形显示区绘出直线。如图 8 当由点(X3,Y3)到(X8,Y8)时,这时下一段直线的起点坐标对应的数组的下标 K 的值为偶数,排序数组中的下一个数 X(k-1),
22、Y(k-1)即点(X7,Y7)即为下一段直线的终点坐标,这样可以用 G01 加工下一段直线并生相应的 NC 代码,在图形显示区绘出直线。1图6图 7(3) 当读入的下段是圆弧如 7 图当由点(X4,Y4)到(X6,Y6)时,这时下一段圆弧的起点坐标对应的数组的下标K 的值为偶数,排序数组中的下一个数X(k-1),Y(k-1)即点(X5,Y5)即为下一段圆弧的终点坐标,这样可以用 G02 加工下一段圆弧并生相应的 NC 代码,在图形显示区绘出圆弧。同样在图 7 中,当由点(X2,Y2)到(X5,Y5)时,这时下一段圆弧的起点坐标对应的数组的下标K 的值为奇数,排序数组中的下一个数X(k+1),
23、Y(k+1)即点(X6,Y6)即为下一段圆弧的终点坐标,这样可以用 G03 加工下一段圆弧并生相应的NC 代码,在图形显示区绘出圆弧.如图 8 当由点(X2,Y2)到(X6,Y6)时,这时下一段圆弧的起点坐标对应的数组的下标K 的值为偶数,排序数组中的下一个数X(k-1),Y(k-1)即点(X5,Y5)即为下一段圆弧的终点坐标,这样可以用 G02 加工下一段圆弧并生相应的 NC 代码,在图形显示区绘出圆弧。同样在图 8 中,当由点(X4,Y4)到(X5,Y5)时,这时下一段圆弧的起点坐标对应的数组的下标K 的值为奇数,排序数组中的下一个数X(k+1),Y(k+1)即点(X6,Y6)即为下一段圆
24、弧的终点坐标,这样可以用 G03 加工下一段圆弧并生相应的 NC 代码,在图形显示区绘出圆弧.综上可知,当读入的下段是圆弧时,当下一段圆弧的起点坐标对应的数组的下标 K 的值为奇数时,用 G02 加工下一段圆弧并生相应的 NC 代码,在图形显示区绘出圆弧;当下一段圆弧的起点坐标对应的数组的下标 K 的值为偶数用 G03加工下一段圆弧并生相应的 NC 代码,在图形显示区绘出圆弧。3.2程序流程图3.2.1 Dxf 文件简介DXF的信息。文件是包含图形信息的文本文件,其他的 CAD 系统可以文件中如果其他人正使用能够识别 DXF 文件的 CAD 程序,那么以 DXF格式保存图形就可以共享该图形。
25、控制 DXF 格式的浮点精度最多可达 16 位小数,并可以 ASCII 格式或二进制格式保存该图形。如果不想保存整个图形,可以只输出选定对象以删除无关的材质。可以使用 AutoCAD 创建 Web 图形格式 (DWF) 文件。DWF 文件是二维矢量文件,用户可使用这种格式在 Web 或 ranet 网络上发布 AutoCAD 图形。使用 Volo View 或 Autodesk ExpressViewer,还可以在ernet Explorer 5.01 或更高版本中查看 DWF 文件。 DWF 文件支持实时平移和缩放以及对图层和命名视图显示的控制。3.2.2DXF 文件的结构. 标题段(HEA
26、DER )有关图形的一般信息都可以 DXF 文件的这一节找到,每一个参数具有一个变量名和一个相关值。. 表段这一段包含的指定项的定义,它包括:a、线形表(LTYPE) b、层表(LYER)c、字体表(STYLE) d、视图表(VIEW)e、用户坐标系统表(UCS) f、视窗配置表(VPORT)g、标注字体表(DIMSTYLE)h、申请符号表(AP. 块段(BLOCKS)组成每个块的实体。.实体段(ENTITIES)这一段含有块定义实体,这些实体描述了图形种)这一段含有实体,包括任何块的调用。.END OF FILE(文件结束)3.2.3 图形几何信息提取将 AutoCAD 图形转换为 DXF
27、文件描述直线段的信息为AcDbLine后, 分析 DXF文件,从中可知:10直线段起点的X 20直线段起点的Y 30直线段起点的Z11直线段终点的X 21直线段终点的Y 31直线段终点的Z值值值值值值描述圆的信息为AcDbCircle 1030圆心的Z 值40圆的半径R 值圆心的X 20圆心的Y值值描述圆弧的信息为AcDbCircle10圆心的X 20圆心的Y 30圆心的Z40圆弧的半径R 值50圆弧的起始角1 51圆弧的终止角2值值值对于一个加工零件来说,其轮廓无非是这三种几何元素的组合。因此根据上述分析,可编制将 DXF 文件中的几何信息提取出来。其流程图如图 8 所示。图 8 几何信息提
28、取流程图3.2.4 NCNC格式为自动生成结构。按照 ISO标准, NC由若干个段组成。段的NGXYZFSTM其中: N 后面跟四位数字, 表示段号;G 后面跟两位数字, 表示准备功能;X、Y、Z 后面跟数字,表示被加工段的终点坐标;F、S、T 后面跟数字, 分别表示加工时的进给速度、主轴转速及加工刀具号;M 后面跟两位数字, 表示辅助功能; 或 LF 结束。工艺参数确定。在生成 NC过程中, 需要根据加工对象来确定F、S、T 等值。本系统中, 可自动或由用户选取F、S、T 的值, 将所选值添加至 NC 软件的段中。NC令, 可知自动生成。对照 DXF 文件的特息与 NC中准备功能指AcDbL
29、ine 对应 G01 AcDbCircle 对应 G02 或 G03由此可编制一个完整的 NC 代码生成, 由 DXF 文件内容直接转换为 NC 软件。当然, 在中需要人机交互来确定以下内容: 零件加工的起始点,确定G00 的坐标; 圆或圆弧的加工方向, 确定 G02 或 G03 ; 加工的刀具补偿方向,确定 G41 或 G42 等信息。其流程图如图 9 所示。图 9 生成NC 代码流程图以下为由本G92 X0 Y0生成的CNC 代码及其图形:N10 G90 G17 G00 G41 D01 X651.83 Y802.19 S600 M03 LF N20 G01 X675.20 Y783.07
30、T0101 F100 LFN30 G01 X747.57 Y827.39 LF N40 G01 X745.62 Y770.24 LF N50 G01 X821.49 Y788.52 LF N60 G01 X791.53 Y861.22 LF N70 G01 X725.78 Y874.05 LF N80 G01 X711.38 Y834.39 LF N90 G01 X699.71 Y868.21 LF N100 G01 X725.78 Y895.43 LF N110 G01 X663.92 Y895.43 LFN120 G03 X651.83 Y802.19 I14.79 J45.49 LF N
31、130 G00 G40 X0 Y0 LFN140 M05 LF N150 M30 LF图 10 系统生成图4、所设计的使用说明及4.1使用说明(1)进入 VB,点击 VB 界面启动按键进入仿真数控自动编程系统欢迎界面,如图 11 所示。图 11 欢迎界面(2)点击“开始编程”命令控件进入系统操作界面,如图 12 所示。图 12 系统操作界面命令控件找出并打开 CAD(3) 点击打开 CAD或者直接在电脑找出并打开,绘制 CAD 平面图形(只由圆弧和直线组成),画完之后另存为 DXF格式的文件。(4)点击载入,出现如图 13 所示的窗口,选择一个 DXF 格式的文件打开,读入图形如图 14 所示
32、,代码如下所示。G92 X0 Y0N10 G90 G17 G00 G41 D01 X1243.49 Y1475.78 S600 M03 LF N20 G01 X2110.78 Y1372.09 T0101 F100 LFN30 G01 X1777.21 Y761.04 LF N40 G01 X2826.12 Y949.91 LF N50 G01 X2055.19 Y227.76 LF N60 G01 X950.69 Y986.94 LF N70 G01 X242.77 Y1072.12 LF N80 G01 X795.02 Y1860.93 LF N90 G01 X1243.49 Y1475.
33、78 LF N100 G00 G40 X0 Y0 LFN110 M05 LF N120 M30 LF图 13 打开窗口图 14 生成图(5) 通过调整比例和箭头(如图 15)移动图形位置,以便原本被隐藏在图形框之外的图形。而用户坐标显示框可以清楚地看到当前鼠标所在图框的具体坐标。图 15 比例缩放、移动图像命令控件和坐标显示框(6) 通过调整加工代码参数控制模块相关参数,改变加工代码的一些辅助功能指令,达到刀具等参数选择与不同加工要求的匹配,如图 16 所示,与上面第四步产生的代码对比,可知代码的刀补、进给量、转速和刀具由图 16 的参数给定。图 16(7)单击刷新控件,可以实现图形显示窗口、
34、代码显示窗口和用户坐标显示框的清零,以便再次载入新图形。(8)单击控件,会跳出一个框与图 13 相似,在这里可以吧数控代码以txt 格式以备用。(9)单击退出或者关闭单击窗体右上角关闭窗体,都会跳出如图 17所示的提示框信息。点击是,可以进入界面,接下来如步骤(8)。图 174.2通过多次以上步骤的循环操作,可以看出图形与系统自动生成的 NC 代码相符合,且其他辅助控件都能正常工作,说明所设计的系统是可行的。5 设计小结在这一次的数控课程设计中,我知道什么叫做把握时间,寻找灵感和把握灵感的瞬间。因为在设计的过程中,我发现程序的设计,特别是系统的开发,不仅需要大量的时间和精力,以及缜密的思维,还
35、必须能够把握住那偶尔一闪而过的灵感。我觉得这一点尤为重要,比如当我冥思苦想,却不得解决,往往会在一瞬之间迸发灵感,让我能够顺利的度过。当然,数控课程设计综合了计算机技术和机械数控知识。我从中不但对数控有了更深一层的理解,而且还把 VB 重新拾掇了起来,而且比以前的学得更加的扎实。我很兴奋,很感谢这一次的数控给了我机会。此外,数控课程设计给了我一个直接接触数控的机会,使我对数控的本质有了一个具体直观的感受和理解。这课所不可能给的,设计实践弥补了之一,使的素质能够全方位的得到提高。回归本次课程设计,在本程序中,我实现了代码和图形的生成,不过也出现了一些问题,比如当点击打开 CAD,画完图保存为 D
36、XF 文件。这时如果不把 CAD 程序关闭,那么所设计系统就会与 CAD 产生 ,致使所设计系统不能正常显示加载的 DXF 文件的图形。那么就必须在载入 DXF 文件之前关闭 CAD。还有有时系统会无法显示图形,这可能是系统自身的不稳定引起的。不过我还在寻找是否存在其他问题。希望老师能够给与教育指导。程序附录窗体 Form1 程序段源代码:Private Sub Form1.Hide Form2.Showd1_Click()End Sub 隐藏窗体 1,显示窗体 2Private Sub Form_Load() Label1.BackStyle = 0 - transpareLabel1.Ca
37、ption = 欢迎使用数控自动编程系统Label1.FontSize = 40End Sub 设置窗体 1 中label 的属性窗体 Form2 程序段源代码:Option ExplicitDim str As String, temp As String Dim SZ As VariantDim pi As Double Dim Pro As StringDim H As Double, W As Double, a As Double, b As Double, bi As Double Dim X(100) As Double, Y(100) As DoubleDim m Aseger
38、, n As Dim flag Aseger, p Aseger, q AsegerDim ruler As Double 定义各个全局变量Function fileOpen() As CommonDialog1.ShowOpenIf CommonDialog1.FileName ThenOpen CommonDialog1.FileName For Input As #1 str = Do While Not EOF(1)Input #1, tempstr = str & temp & Loop Close #1fileOpen = True End IfEnd Function实现文件读入
39、功能。Function getStart(i Aseger) AsegerDim j As i = i + 1egerFor j = i To UBound(SZ)If SZ(j) = AcDbLine Or SZ(j) = AcDbCircle ThengetStart = j 该段程序是通过对 DXF 文件中已提取出的与图形有关的某一段中出现AcDbLine或AcDbCircle位置的查询,当出现两都之一时停止。Exit Function End IfNextgetStart = -2 这个赋值是为结束查询做准备。 End Function以下过程是实现提取几何元素,并对所提取的几何元素进
40、行排序,然后进行画图,在屏幕上显示所撮得到的二维几何图形Function getPro() As String Picture1.ClsPro = pi = 3.141592654Dim str1 As Dim sj As Dim sp As Dim no Aseger, str2 As egereger egereger, str3 AsegerDim kR(100) As Double, jR(100) As DoubleDim cR(100) As Double, cX(100) As Double, cY(100) As Double Dim zcR As Double, zcX As
41、 Double, zcY As DoubleDim j%, k%, a%, b%, c%Dim jX As Double, jY As Double, csX As Double, csY As Doublestr2 = InStr(1, str, AcDbLine & ) str3 = InStr(1, str, AcDbCircle & )If str2 str3 ThenIf str3 0 Then str1 = str3Else: str1 = str2End IfElseIf str3 str2 Then If str2 0 Thenstr1 = str2Else: str1 = s
42、tr3 End IfEnd Ifsj = InStr(str1, str, ENDSEC & ) temp = Mid(str, str1, sj - str1)该段程序是通过对 DXF 文件里的AcDbLine和AcDbCircle位置的查询,对比其第一次出现的先后顺序,从出现两者之一的位置开始,当出现ENDSEC时停止查询,并把读出查询出的代码赋给字符串temp。SZ = Split(temp, ) 将字符串temp 以这分隔符分开变成字符串数组 SSPro = G92 X0 Y0 & vbCrLfsp = -1m = 0n = 0a = 0flag = FalseDo While sp
43、-2sp = Me.getStart(sp)If sp = -2 Then Exit DoIf SZ(sp) = AcDbLine Then a = m + 1cR(a) = 0将提取得的几何元素进行排序 m = m + 1X(m) = SZ(sp + 2) 查找出各直线的起点X 坐标,并存入数组 X(m)中n = n + 1Y(n) = SZ(sp + 4) 查找出各直线的起点Y 坐标,并存入数组 Y(n)中 m = m + 1X(m) = SZ(sp + 8) 查找出各直线的终点X 坐标,并存入数组 X(m)中n = n + 1Y(n) = SZ(sp + 10) 查找出各直线的终点Y 坐
44、标,并存入数组 Y(n)中ElseIf SZ(sp) = AcDbCircle Then If SZ(sp + 10) = AcDbArc Thena = m + 1cX(a) = SZ(sp + 2) cY(a) = SZ(sp + 4) cR(a) = SZ(sp + 8)kR(a) = SZ(sp + 12) * pi / 180 jR(a) = SZ(sp + 14) * pi / 180将提取得的几何元素进行排序m = m + 1X(m) = cR(a) * Cos(kR(a) + cX(a) 查找出各圆弧的起点X 坐标,并存入数组 X(m)中n = n + 1Y(n) = cR(a
45、) * Sin(kR(a) + cY(a) 查找出各圆弧的起点坐标,并存入数组(n)中m = m + 1X(m) = cR(a) * Cos(jR(a) + cX(a) 查找出各圆弧的起点X 坐标,并存入数组 X(m)中n = n + 1Y(n) = cR(a) * Sin(jR(a) + cY(a) 查找出各圆弧的起点Y 坐标,并存入数组 Y(n)中Else zcX = SZ(sp + 2) zcY = SZ(sp + 4) zcR = SZ(sp + 8) csX = zcXcsY = zcY - zcR no = no + 10Pro = Pro & N & no & G90 G17 G
46、00 & Combo1.Text & D01 X & Format(csX, 0.00) & Y & Format(csY, 0.00) & & Combo2.Text & & M03 & LF & vbCrLfno = no + 10Pro = Pro & N & no & G03 & _X & Format(csX, 0.00) & & _Y & Format(csY, 0.00) & & I & Format(csX - zcX, 0.00) & & J & Format(csY - zcY, 0.00) & & Combo3.Text & & Combo5.Text & LF & vb
47、CrLfCall Form2.drawCircleR(zcX, zcY, zcR) Text1.Text = Proflag = True End If End If LoopIf flag = False Thenno = no + 10Pro = Pro & N & no & G90 G17 G00 & Combo1.Text & D01 X & Format(X(1), 0.00) & Y & Format(Y(1), 0.00) & & Combo2.Text & & M03 & LF & vbCrLfIf cR(1) = 0 Then no = no + 10Pro = Pro &
48、N & no & G01 & _X & Format(X(2), 0.00) & & _Y & Format(Y(2), 0.00) & & Combo3.Text & & Combo4.Text & LF & vbCrLfCall Form2.drawLine(CDbl(X(1), CDbl(Y(1), CDbl(X(2),CDbl(Y(2)Text1.Text = ProElseno = no + 10Pro = Pro & N & no & G03 & _X & Format(X(2), 0.00) & & _Y & Format(Y(2), 0.00) & & I & Format(X
49、(1)- cX(1), 0.00) & & J & Format(Y(1) - cY(1), 0.00) & & Combo3.Text & & Combo4.Text & LF & vbCrLfCall Form2.drawCircle(cX(1), cY(1), cR(1), kR(1), jR(1) Text1.Text = ProEnd If End IfjX = CDbl(X(2)jY = CDbl(Y(2)j = 2For p = 1 To m 2 - 1 For k = 3 To m当满足下面这个条件时,提取出满足条件的点,并对相应的参数进行判断,然后生成代码和绘制图形If (C
50、Dbl(jX) - CDbl(X(k) 2 + (CDbl(jY) - CDbl(Y(k) 2 0.0001 And k j ThenIf k Mod 2 = 0 Then j = k - 1If cR(k - 1) 0 Then no = no + 10Pro = Pro & N & no & G02 & _X & Format(X(k - 1), 0.00) & & _Y & Format(Y(k - 1), 0.00) & & I & Format(jX - cX(k - 1), 0.00) & & J & Format(jY - cY(k - 1), 0.00) & LF & vbCr
51、LfCall Form2.drawCircle(cX(k - 1), cY(k - 1), cR(k - 1), kR(k - 1), jR(k - 1)Text1.Text = Pro jX = X(k - 1)jY = Y(k - 1)Elseno = no + 10Pro = Pro & N & no & G01 & _X & Format(X(k - 1), 0.00) & & _Y & Format(Y(k - 1), 0.00) & LF & vbCrLfCall Form2.drawLine(CDbl(jX), CDbl(jY), CDbl(X(k - 1), CDbl(Y(k
52、- 1)Text1.Text = Pro jX = X(k - 1)jY = Y(k - 1)End IfElseIf k Mod 2 0 Then j = k + 1If cR(k) 0 Thenno = no + 10Pro = Pro & N & no & G03 & _X & Format(X(k + 1), 0.00) & & _Y & Format(Y(k + 1), 0.00) & & IFormat(jX - cX(k), 0.00) & & J & Format(jY - cY(k), 0.00) & LF vbCrLf& &Call Form2.drawCircle(cX(
53、k), cY(k), cR(k), kR(k), jR(k)Text1.Text = Pro jX = X(k + 1) jY = Y(k + 1)Elseno = no + 10Pro = Pro & N & no & G01 & _X & Format(X(k + 1), 0.00) & & _Y & Format(Y(k + 1), 0.00) & LF & vbCrLfCall Form2.drawLine(CDbl(jX), CDbl(jY), CDbl(X(k + 1),CDbl(Y(k+1)Text1.Text = Pro jX = X(k + 1)jY = Y(k + 1)En
54、d If End If Exit For End If Next Nextno = no + 10Pro = Pro & N & no & G00 G40 X0 Y0 & LF & vbCrLf no = no + 10Pro = Pro & N & no & M05 & LF & vbCrLf no = no + 10Pro = Pro & N & no & M30 & LF & vbCrLf Text1.Text = ProgetPro = ProEnd FunctionPrivate Subd1_Click()If fileOpen = True Then Picture1.Clsget
55、Pro Combo5.Text = 1.0End IfEnd Sub 实现 DXF 文件的载入Public Sub drawLine(x1 As Double, y1 As Double, x2 As Double, y2 As Double) initailx1 = x1 * H + a y1 = y1 * H + b x2 = x2 * H + a y2 = y2 * H + by1 = Me.changeY(y1) y2 = Me.changeY(y2)Picture1.Line (x1, y1)-(x2, y2)End Sub 画直线,实现直线的缩放和移动Public Sub init
56、ail()If Combo5.Text = 0 Then Combo5.Text = 1.0End Ifruler = 500 / CDbl(Combo5.Text)H = Picture1.ScaleHeight / rulerEnd Sub 缩放定义,公用变量Private Subd10_Click()If IsNumeric(Combo5.Text) = True Then Picture1.ClsgetProElseMsgBox (请输入一个正数) End IfEnd Sub 缩放命令Public Function changeY(ySize As Double) As Double
57、changeY = Picture1.ScaleHeight - ySizeEnd Function 把坐标换算成符合所定X、Y 轴的用户坐标Public Sub drawCircle(x1, y1, R, kR, jR) initailx1 = x1 * H + a y1 = y1 * H + bR = R * Hy1 = changeY(CDbl(y1)Picture1.Circle (x1, y1), R, , CDbl(kR), CDbl(jR) End Sub 画圆弧,实现圆弧的缩放和移动Public Sub drawCircleR(x1, y1, R)Me.initailx1 = x1 * H + a y1 = y1 * H + b R = R * Hy1 = changeY(CDbl(y1) Picture1.Circle (x1, y1), REnd Sub画圆弧,实现圆弧的缩放和移动Public Sub
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年全国教师资格证考试测试题及答案
- Galactamine-生命科学试剂-MCE
- 心脏康复中的心理康复政策建议
- 2026mba面试题库及答案
- 急性消化道梗阻的急诊护理
- 2026年浙江东阳市事业单位招考65人易考易错模拟试题(共500题)试卷后附参考答案
- 2026年泰州市高港区事业单位招考易考易错模拟试题(共500题)试卷后附参考答案
- 2026年河南郑州市信访局政府购买服务工作人员招聘20人易考易错模拟试题(共500题)试卷后附参考答案
- 2026年河南省新蔡县乡镇事业单位等招考易考易错模拟试题(共500题)试卷后附参考答案
- 2026年河南洛阳师范学院招聘工作人员45人易考易错模拟试题(共500题)试卷后附参考答案
- 2026年触电事故现场急救(断电、心肺复苏)操作指南
- 2026年合肥聚和运营管理有限公司委托招聘考试备考试题及答案解析
- 2026中国铁路南宁局集团有限公司招聘高校毕业生80人三(本科及以上学历)考试备考题库及答案解析
- 2026年北京市丰台区高三二模政治试卷(含答案)
- 2026年煤矿安全生产管理人员考试题库(附答案)
- 陆上风力发电工程施工质量验收规程
- 2026年宁夏电投永利能源有限公司公开招聘考试模拟试题及答案解析
- 2026广东佛山市禅城区祖庙街道公有企业招聘初试笔试历年参考题库附带答案详解
- 《预算执行常态化监督发现问题纠偏整改操作指南(试行)》
- T-CCSAS 062-2026《行为安全观察与沟通实施指南》
- 2026年部编版语文五年级下册期末考试真题及答案(共3份)
评论
0/150
提交评论