1、 0 机床数控技术机床数控技术及应用及应用 课程设计说明书课程设计说明书 时间:时间:20112011 年年 1212 月月 1 15 5 日日 1 目录 一 课程设计要求 2 二 编程语言 2 三 插补界面说明 2 四 逐点比较法直线插补流程图及算法 2 五 DDA 法圆弧插补插补流程图及算法 7 六 其他程序说明 15 七 心得体会 16 附录 17 2 一 课程设计要求 1 直线插补要求:用逐点比较法插补第 4 象限的直线; 2 圆弧插补要求:用 DDA 法插补 1-4 象限的顺圆弧; 3 界面设计要求:具有数据输入框,具有插补过程动态显示功能,插补步长可调。 二 编程语言 Visual
2、 C+ 三 插补界面说明 插补界面具有逐点比较法插补直线数据输入区,DDA 法插补 1-4 象限顺圆弧的数据输入区,两者公用 的步长输入区,图形显示区域,四个按钮实现插补过程的单步、连续显示、图形的清除, 插补界面的退出,以及必要的文字说明。 界面设计所用到的控件有:1 个图像控件,用来显示输出图形;13 个编辑框,用来输入插补直线与圆 弧所必要的数据;2 个单选框,用来选择直线插补和圆弧插补;4 个按钮,用来控制插补、清除、退出界 面;若干个静态文本,进行相应地文字说明。 各控件名称及对应的关联变量名称: 按钮控件 1, IDC_BUTTON1, m_danbu ,实现单步插补功能按钮; 按
3、钮控件 2, IDC_BUTTON2, m_qingchu ,实现清除功能按钮; 按钮控件 3, IDC_BUTTON3, m_lianxu ,实现连续插补功能按钮; 按钮控件 4, IDC_BUTTON4, m_tuichu ,实现退出界面功能按钮; 单选框控件 1,IDC_RADIO1, m_line,其属性选择 GROUP ,选择直线插补; 单选框控件 2,IDC_RADIO2 ,选择圆弧插补; 编辑框控件 1, IDC_EDIT1, m_alx ,输入直线起点横坐标; 编辑框控件 2, IDC_EDIT2, m_aly ,输入直线起点纵坐标; 编辑框控件 3, IDC_EDIT3, m
4、_blx ,输入直线终点横坐标; 编辑框控件 4, IDC_EDIT4, m_bly ,输入直线终点纵坐标; 编辑框控件 5, IDC_EDIT5, m_aax ,输入圆弧起点横坐标; 编辑框控件 6, IDC_EDIT6, m_aay ,输入圆弧起点纵坐标; 编辑框控件 7, IDC_EDIT7, m_bax ,输入圆弧终点横坐标; 编辑框控件 8, IDC_EDIT8, m_bay ,输入圆弧终点纵坐标; 编辑框控件 9, IDC_EDIT9, m_ox ,输入圆心横坐标; 编辑框控件 10, IDC_EDIT10, m_oy ,输入圆心纵坐标; 编辑框控件 11, IDC_EDIT11,
5、 m_r ,输入圆弧半径值; 编辑框控件 12, IDC_EDIT12, m_n ,输入累加器位数; 编辑框控件 13, IDC_EDIT13, m_bc ,输入插补步长; 图形控件:IDC_PRINTAREA,实现图形输出功能; 若干静态文本控件,IDC_STATIC,作为相关文字说明。 四 逐点比较法直线插补流程图及算法 1) 偏差判别公式的推导 设直线的起点坐标为(x1,y1),终点坐标为(x2,y2),直线上的任意一个动点为(x,y),插补的 步长为 b,则偏差判别函数 F=(x2-x1)*y-(y2-y1)*x 对位于第四象限的直线,有: 当 F=0 时,向+x 方向进给一个脉冲当量,此时 x(i+1)=xi+b,则有 F(i+1)=Fi-(y2-y1)*b 3 当 F=0 初始化:E=(x2-x1)+(y1-y2),F=0,x=x1,y=y1 +X 方向走一步 F=F-b*(y2-y1),x=x+b -Y方向走一步 x1=0,y1=0,x20,y2GetDC(); CRect rc; pWnd-GetClientRect( CRgn rgn; rgn.CreateRectRgn(rc.left+1,rc.top+7,rc.right-2,rc.bottom-2); pdc-S