数控技术第三次作业
题目【1】:第一象限的逆圆插补。
1.取该圆弧的圆心坐标为(0,0),起点坐标为(4,0),终点坐标为(0,4),圆弧半径为4.
2.采用逐点比较法的C程序如
#include int n=8,x,y,f,g; scanf(\"%d,%d\f=x^2+y^2-16; if (f>=0) g=f-2x+1,x--,n--; printf(\"%d,%d,%d\\n\else g=f+2y+1,y++,n--; printf(\"%d,%d,%d\\n\if (g>=0) g=g-2x+1,x--,n--; printf(\"%d,%d,%d\\n\ else g=g+2y+1,y++,n--; printf(\"%d,%d,%d\\n\ } 3.程序流程图如下: 开始 否 逆圆? 初始化 是 +Y向进一步 f=f—2X+1 —X向进一步 while (n==0) printf(\"it is over\"); 否 暂停 直线插补 有插补? 是 圆弧? 是 f=f+2Y+1 X=X—1 Y=Y+1 取起点,终点,令f=0 Xe—X=0 是 第一象限? 是 是 f>=0? 是 否 逆圆? 是 否 结束 Ye—Y=0 否 否 否 4.程序运行后得到一系列插补点,连接插补点得到插补轨迹如 下图所示: 5.综上,第一象限的逆圆采用逐点插补法的插补过程及其解决算 法如上所述。 题目【2】:第一象限的直线插补 取第一象限的直线方程为Y=X,起点坐标为原点(0,0),终点坐标为(4,4)。 1. 基于MATLAB的插补程序如下: Xe = input('输入终点横坐标 X\\nXe = '); Ye = input('输入终点纵坐标 Y\\nYe = '); h = input('输入步长\\nh = '); Tstep= (abs(Xe)+abs(Ye))/h; Step=0; F=0; Xi=0; Yi=0; x = 0; y = 0; Xi=Xi+h; x = [x Xi]; y = [y Yi]; end Step=1; while (Step Yi=Yi+h; end x = [x Xi]; y = [y Yi]; Step = Step+1; hold on end plot(x,y) 2.MATLAB程序运行得到的插补图形及其轨迹如下图: 综上,用逐点比较法完成了第一象限的逆圆插补和直线插补。 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- fupindai.com 版权所有 赣ICP备2024042792号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务