




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、 课设任务用dda法插补第二象限直线。用逐点比较法插补第三到第二象限顺圆弧。二、课设要求 1、具有数据输入界面,有起点、终点、半径及插补步长等; 2、具有单步插补过程的动态显示功能; 3、插补的步长可调;三、编程语言visual basic四、功能说明本程序用逐点比较法插补第二象限的直线,及第三二象限的顺圆弧,可进行连续插补或单步插补。1、直线插补:用逐点比较法实现第二象限任意直线的插补,需要输入起点、终点坐标及步长。2、圆弧插补:用逐点比较法实现第三二象限的顺圆弧段的插补,需要输入起点、终点坐标、半径和步长。3、插补步长可调。4、可以单步执行所有插补动作,单击一次按钮执行一次插补。五、程
2、序内容 dda法插补第二象限直线1、源程序: dim a, b, c, d, e, f, g, i, j, e, f as single*连续直线插补*private sub command1_click()if (-c + a) (d - b) then f = -c + a else: f = d - bg = 1do while (2 g) = e then i = i - e * (2 g): x2 = x2 - ej = j + (d - b)y1 = y2if (j / (2 g) = e then j = j - e * (2 g): y2 = y2 - epicture1.li
3、ne (x2 * text6.text, y2 * text6.text)-(x1 * text6.text, y1 * text6.text), vbgreennext hpicture1.line (c * text6.text, -d * text6.text)-(a * text6.text, -b * text6.text), vbredend sub*单步直线插补*private sub command2_click()if (-c + a) (d - b) then f = -c + a else: f = d - bg = 1do while (2 g) = e and (j
4、/ (2 g) = e thenpicture1.line (x2 - e) * text6.text, (y2 - e) * text6.text)-(x2 * text6.text, y2 * text6.text), vbgreeni = i - e * (2 g)j = j - e * (2 g)x2 = x2 - ey2 = y2 - eelseif (i / (2 g) = e and (j / (2 g) e thenpicture1.line (x2 - e) * text6.text, y2 * text6.text)-(x2 * text6.text, y2 * text6
5、.text), vbgreeni = i - e * (2 g)x2 = x2 - eelseif (i / (2 g) = e thenpicture1.line (x2 * text6.text, (y2 - e) * text6.text)-(x2 * text6.text, y2 * text6.text), vbgreenj = j - e * (2 g)y2 = y2 - eend ifend sub3. dda法插补第二象限直线的流程图:ynynynmm-1xexexeyeyeye初始化xexe,yeye,累加次数mm,xe、ye清零m=0吗?ye有溢出吗?xe有溢出吗?+y向走
6、一步-x向走一步结束逐点比较法插补第三到第二象限顺圆弧1. 源程序:dim x0, y0, cxy, cd, cx1, cy1, cx2, cy2, cx11, cy11, cx22, cy22, ci, r, a1, b1, c1, d1, e1, x1, y1, x2, y2 as singleconst pi=3.1415926*连续圆弧插补*private sub command6_click()d1 = 1 / 2 * (cx22 2 + cy22 2 - cx11 2 - cy11 2) / (cy22 - cy11)e1 = (cx11 - cx22) / (cy22 - cy1
7、1)a1 = 1 + e1 2b1 = 2 * d1 * e1 - 2 * cx11 - 2 * cy11 * e1c1 = cx11 2 + cy11 2 + d1 2 - 2 * d1 * cy11 - r 2x0 = (-b1 + sqr(b1 2 - 4 * a1 * c1) / (2 * a1)y0 = d1 + e1 * x0 *求得圆心if cx1 x0 and cx2 x0 theno = atn(cy1 - y0) / (cx1 - x0) + pi *起始角o1 = atn(cy2 - y0) / (cx2 - x0) + pi *终止角picture2.circle (x
8、0, y0), r, vbred, o1, oelsepicture2.circle (x0, y0), r, vbred, 2 / pi, 3 * pi / 2end if *画圆 again: *开始插补过程if cy1 y0 thenif (cx1 - x0) 2 + (cy1 - y0) 2 = r 2 thenpicture2.line (cx1, cy1)-(cx1 - ci, cy1)cx1 = cx1 - cielsepicture2.line (cx1, cy1)-(cx1, cy1 + ci)cy1 = cy1 + ciend ifelseif (cx1 - x0) 2 +
9、 (cy1 - y0) 2 (cx1 - cx2 + ci) 2 + (cy1 - cy2) 2 or (cx1 - cx2) 2 + (cy1 - cy2) 2 (cx1 - cx2 - ci) 2 + (cy1 - cy2) 2 or (cx1 - cx2) 2 + (cy1 - cy2) 2 (cx1 - cx2) 2 + (cy1 - cy2 + ci) 2 or (cx1 - cx2) 2 + (cy1 - cy2) 2 (cx1 - cx2) 2 + (cy1 - cy2 - ci) 2 thengoto againelseend ifend sub*单步圆弧插补*private
10、sub command7_click()d1 = 1 / 2 * (cx22 2 + cy22 2 - cx11 2 - cy11 2) / (cy22 - cy11)e1 = (cx11 - cx22) / (cy22 - cy11)a1 = 1 + e1 2b1 = 2 * d1 * e1 - 2 * cx11 - 2 * cy11 * e1c1 = cx11 2 + cy11 2 + d1 2 - 2 * d1 * cy11 - r 2x0 = (-b1 + sqr(b1 2 - 4 * a1 * c1) / (2 * a1)y0 = d1 + e1 * x0 *求得圆心if cx1 x
11、0 and cx2 x0 theno = atn(cy1 - y0) / (cx1 - x0) + pi *终止角o1 = atn(cy2 - y0) / (cx2 - x0) + pi *终止角picture2.circle (x0, y0), r, vbred, o1, oelsepicture2.circle (x0, y0), r, vbred, 2 / pi, 3 * pi / 2end if *画圆if (cx1 - cx2) 2 + (cy1 - cy2) 2 (cx1 - cx2 + ci) 2 + (cy1 - cy2) 2 or (cx1 - cx2) 2 + (cy1 -
12、 cy2) 2 (cx1 - cx2 - ci) 2 + (cy1 - cy2) 2 or (cx1 - cx2) 2 + (cy1 - cy2) 2 (cx1 - cx2) 2 + (cy1 - cy2 + ci) 2 or (cx1 - cx2) 2 + (cy1 - cy2) 2 (cx1 - cx2) 2 + (cy1 - cy2 - ci) 2 thenelsegoto cover *开始插补过程end ifif cy1 y0 thenif (cx1 - x0) 2 + (cy1 - y0) 2 = r 2 thenpicture2.line (cx1, cy1)-(cx1 - ci
13、, cy1)cx1 = cx1 - cielsepicture2.line (cx1, cy1)-(cx1, cy1 + ci)cy1 = cy1 + ciend ifelseif (cx1 - x0) 2 + (cy1 - y0) 2 = r 2 thenpicture2.line (cx1, cy1)-(cx1, cy1 + ci)cy1 = cy1 + cielsepicture2.line (cx1, cy1)-(cx1 + ci, cy1)cx1 = cx1 + ciend ifend ifcover:end sub2.变量说明: cx1=圆弧起点的横坐标值,cy1=圆弧起点的纵坐标
14、值 cx2=圆弧终点的横坐标值,cy2=圆弧终点的纵坐标值 x0=圆弧半径的横坐标值, y0=圆弧半径的纵坐标值r=圆弧半径, ci=圆弧插补的步长a1,b1,c1,d1为计算圆点的中间变量3.逐点比较法插补第三象限顺圆弧程序流程图nyny+y向走一步初始化xex,yey,e=nf0?-x向走一步e=0?结束起始ff-2y+1ff-2x+1ee-1逐点比较法插补第二象限顺圆弧程序流程图: nyny+x向走一步初始化xex,yey,e=nf0?+y向走一步e=0?结束起始ff+2x+1ff+2y+1ee-1六、程序界面及运行结果dda插补第二象限直线运行界面dda插补第二象限直线运行结果逐点比较
15、法插补二三象限顺圆弧运行界面逐点比较法插补二三象限顺圆弧运行结果七、课设中遇到的问题及解决办法1、在进行单步插补时出现问题,单步插补出不来? 定义的变量应为全局变量,通过按钮来实现单步操作。按第一次按钮,程序执行一步,按第二次时,程序执行两步,及将第一步做的覆盖后在多做一步。依此,每次按下按钮都比前一次多做一步,这样,作图时就表现为单步运行。2、在圆弧插补是画出的圆跟圆弧的插补在起点和终点处不重合? 在画图的pitcure属性中的scaletop和scalewidth的值应相等,否则画出的横纵坐标不等,导致在横坐标和纵坐标上的长对不等使得与圆弧不重合。3、如何解决起点不是原点的直线的插补 若是起点不是原点的话,可以将起点平移到原点位置,而终点也相应的平移即可,这样就解决了起点不是原点的问题。根据这个思想在判断象限时就拿终点坐标和起点坐标比较来判断终点属于哪个象限。 和插补直线一样,当圆心不是原点时,可以将圆心平移到原点位置,圆上各点相应的平移即可。八、心得体会通过这次的机床数控课程设计,使我加深了对数控机床的插补的了解,更好的掌握了逐点比较法的插补原理。这次课程设计选
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度绿色办公空间办公室合租协议书
- 2025版IT系统安全风险评估与维护合同规范文本
- 2025版财务咨询与风险管理合同示范文本
- 2025版拆除工程安全培训与应急预案合同
- 二零二五年市政道路清扫保洁劳务承包协议
- 二零二五年食品加工企业原料采购合同
- 二零二五年UPS电源设备维修服务及备用电源合同
- 二零二五年度智能工厂土建工程施工合同范本
- 二零二五年度铁路安全承包合同范本
- 2025版新能源发电设备采购合同
- 道路清障救援作业服务投标方案(完整技术标)
- 海南碧凯药业有限公司二期外用制剂车间栓剂生产线产能扩建项目 环评报告
- 2024年度医院医疗设备维修保养情况报告课件
- 民兵护路知识讲座
- 古城墙修复专项施工方案
- 工程监理大纲监理方案服务方案
- GB/T 3372-2010拖拉机和农业、林业机械用轮辋系列
- GB/T 2007.1-1987散装矿产品取样、制样通则手工取样方法
- 一例糖尿病合并脑梗死-护理查房概要
- 2023年宝应县(中小学、幼儿园)教师招聘笔试题库及答案解析
- 公司制成检验记录表
评论
0/150
提交评论