网站大量收购独家精品文档,联系QQ:2885784924

工程数据的处理方法及CD程序编制.ppt

  1. 1、本文档共97页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
工程数据的处理方法及CD程序编制

工程数据的处理方法 及CAD程序编制 例1. 普通V带型号及截面尺寸 int i; float b[7]={6.0,10.0,13.0,17.0,22.0,32.0,38.0}; float h[7]={4.0,6.0,8.0,11.0,14.0,19.0,25.0}; float bp[7]={5.3,8.5,11.0,14.0,19.0,27.0,32.0}; 用户给定i=2(即A型),则程序可以立即查出 : b[2]=13.0,h[2]=8.0,bp[2]=11.0 特点: 一个非数值型自变量。所查的值为离散型数据。 方法: 利用一维数组和一个整型变量。 例2.平键和键槽的剖面尺寸 例3.包角影响系数K2 特点: 自变量和需要查的值均为连续值。 方法: 利用一元插值函数。 例4. 齿轮传动工况系数KA 特点: 两个离散型自变量和一个离散型函数值。 方法: 利用二维数组。 特点: 两个自变量是连续值。 方法: 利用二元插值函数。 特点: 三个离散型自变量。 方法: 利用三维数组。 ② 对数坐标系直线图的公式化处理 (2) 抛物线插值 用 C 语言编制的二维线性插值函数的源程序如下: 1. 最小二乘法的多项式拟合 float tlip( float x[], float y[], float z[][8], int m, int n, float tx, float ty ) { int i, j; float a, b, f; for( i = 0; i = m-3; i++ ) if( tx = x[i+1]) goto c; i = m-2; c: for( j = 0; j = n-3; j++ ) if( ty = y[j+1]) goto d; j = n-2; d: a = ( tx-x[i]) / (x[i+1]-x[i] ); b = ( ty-y[j]) / (y[j+1]-y[j] ); f = (1-a)*(1-b)*z[i][j]+b*(1-a)*z[i][j+1] +a*(1-b)*z[i+1][j] + a*b*z[i+1][j+1]; return(f); }   二维列表函数三点抛物线插值法的思路,基本上与二维线性插值法一致。只是在插值计算时,共 4 次运用一维抛物线插值算法来替代一维线性插值算法。用该方法可以提高插值精度。   该算法的插值步骤如下: ? 首先,从给定的 m×n 个结点中,选取最靠近插值点 T(x, y)相邻的 9 个结点(见图 4-11); ? 其次,由 三个点,按插值点 T(x, y) 在 y 方向的位置用一维抛物线插值 方法求出 A点的插值函数值 ZA ; 图4-11 二维列表函数表的抛物线插值 y 0 x (2) 抛物线插值   ? 再用同样方法,求得 B、C 两点的插值函数值ZB、ZC ;   ? 最后,再用 A、B、C 三点的插值函数值按插值点 T(x, y)在 x 方向的位置用一维抛物线插值算法计算出插值点 T(x, y) 插值函 数值 Z(x, y) 。   由上述算法执行过程得到的二维列表函数表的抛物线插值算法公式为: (4-9) 式中: ∏ 累乘; 表示乘积遍取 k 从 i 到 i+2(k ≠ r 除外)的全部 数值。 float tqip( float x[ ], float y[ ], float z[ ][24], int m, int n, float tx, float ty ) { int i, j, k, l; float u[3], v[3], f; for( i = 0; i = m-4; i++ ) if( tx =x [i+1] ) goto c; i = m-3; c: for( j = 0; j = n-4; j++ ) if( ty = y[j+1]) goto d; j = n-3; d: if( I

文档评论(0)

liwenhua11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档