/* #TITLE# またぎ歯厚の計算 */ /* "MATAGI.MAC" 2003.8.3 kita */ /* 圧力角定義 */ alf = 20; alf_rad = alf*pi/180; /* バックラッシ データーベース */ /* bkr_min [m_id,pcd_id] */ /* bkr_max_1〜5[m_id,pcd_id] */ a = array(10,11); bkr_min = array(10,11); bkr_max_1 = array(10,11); bkr_max_2 = array(10,11); bkr_max_3 = array(10,11); bkr_max_4 = array(10,11); bkr_max_5 = array(10,11); /* バックラッシ最小値(0〜5級) */ /*m0.5*/ a[0][0]=15;a[0][1]=20;a[0][2]=25;a[0][3]=30 ;a[0][4]=35 ;a[0][5]=45 ;a[0][6]=60 ;a[0][7]=70 ;a[0][8]=90 ; /*m1 */ a[1][1]=25;a[1][2]=25;a[1][3]=35 ;a[1][4]=40 ;a[1][5]=50 ;a[1][6]=60 ;a[1][7]=70 ;a[1][8]=90 ; /*m1.5*/ a[2][2]=30;a[2][3]=35 ;a[2][4]=45 ;a[2][5]=50 ;a[2][6]=60 ;a[2][7]=80 ;a[2][8]=90 ;a[2][9]=120; /*m2 */ a[3][3]=40 ;a[3][4]=50 ;a[3][5]=60 ;a[3][6]=70 ;a[3][7]=80 ;a[3][8]=100;a[3][9]=120; /*m2.5*/ a[4][3]=45 ;a[4][4]=50 ;a[4][5]=60 ;a[4][6]=70 ;a[4][7]=80 ;a[4][8]=100;a[4][9]=120; /*m3 */ a[5][4]=50 ;a[5][5]=60 ;a[5][6]=70 ;a[5][7]=90 ;a[5][8]=100;a[5][9]=130;a[5][10]=150; /*m3.5*/ a[6][4]=60 ;a[6][5]=60 ;a[6][6]=80 ;a[6][7]=90 ;a[6][8]=110;a[6][9]=130;a[6][10]=160; /*m4 */ a[7][4]=60 ;a[7][5]=70 ;a[7][6]=80 ;a[7][7]=90 ;a[7][8]=110;a[7][9]=130;a[7][10]=160; /*m5 */ a[8][4]=70 ;a[8][5]=70 ;a[8][6]=90 ;a[8][7]=100;a[8][8]=120;a[8][9]=140;a[8][10]=170; /*m6 */ a[9][4]=70 ;a[9][5]=70 ;a[9][6]=90 ;a[9][7]=110;a[9][8]=120;a[9][9]=150;a[9][10]=170; bkr_min = a; /* バックラッシ 1級 最大値 */ /*m0.5*/ a[0][0]=45;a[0][1]=60;a[0][2]=70;a[0][3]=80 ;a[0][4]=100;a[0][5]=130;a[0][6]=160;a[0][7]=200; /*m1 */ a[1][1]=60;a[1][2]=80;a[1][3]=90 ;a[1][4]=110;a[1][5]=140;a[1][6]=170;a[1][7]=210;a[1][8]=250; /*m1.5*/ a[2][2]=90;a[2][3]=100;a[2][4]=120;a[2][5]=150;a[2][6]=180;a[2][7]=220;a[2][8]=260;a[2][9]=320; /*m2 */ a[3][3]=110;a[3][4]=130;a[3][5]=150;a[3][6]=190;a[3][7]=220;a[3][8]=270;a[3][9]=330; /*m2.5*/ a[4][3]=120;a[4][4]=140;a[4][5]=160;a[4][6]=190;a[4][7]=230;a[4][8]=280;a[4][9]=340; /*m3 */ a[5][4]=150;a[5][5]=170;a[5][6]=200;a[5][7]=240;a[5][8]=290;a[5][9]=350;a[5][10]=430; /*m3.5*/ a[6][4]=160;a[6][5]=180;a[6][6]=210;a[6][7]=250;a[6][8]=300;a[6][9]=360;a[6][10]=440; /*m4 */ a[7][4]=170;a[7][5]=190;a[7][6]=220;a[7][7]=260;a[7][8]=310;a[7][9]=370;a[7][10]=450; /*m5 */ a[8][4]=180;a[8][5]=210;a[8][6]=240;a[8][7]=280;a[8][8]=330;a[8][9]=390;a[8][10]=470; /*m6 */ a[9][4]=210;a[9][5]=230;a[9][6]=260;a[9][7]=300;a[9][8]=350;a[9][9]=410;a[9][10]=480; bkr_max_1= a; /* バックラッシ 2級 最大値 */ /*m0.5*/ a[0][0]=50;a[0][1]=60;a[0][2]=80;a[0][3]=90 ;a[0][4]=120;a[0][5]=140;a[0][6]=180;a[0][7]=220;a[0][8]=280; /*m1 */ a[1][1]=70;a[1][2]=90;a[1][3]=100;a[1][4]=130;a[1][5]=150;a[1][6]=190;a[1][7]=230;a[1][8]=290; /*m1.5*/ a[2][2]=100;a[2][3]=110;a[2][4]=140;a[2][5]=160;a[2][6]=200;a[2][7]=240;a[2][8]=300;a[2][9]=370; /*m2 */ a[3][3]=120;a[3][4]=150;a[3][5]=170;a[3][6]=210;a[3][7]=250;a[3][8]=310;a[3][9]=380; /*m2.5*/ a[4][3]=130;a[4][4]=160;a[4][5]=180;a[4][6]=220;a[4][7]=260;a[4][8]=320;a[4][9]=390; /*m3 */ a[5][4]=170;a[5][5]=190;a[5][6]=230;a[5][7]=270;a[5][8]=330;a[5][9]=400;a[5][10]=480; /*m3.5*/ a[6][4]=180;a[6][5]=200;a[6][6]=240;a[6][7]=280;a[6][8]=340;a[6][9]=410;a[6][10]=490; /*m4 */ a[7][4]=190;a[7][5]=210;a[7][6]=250;a[7][7]=290;a[7][8]=350;a[7][9]=420;a[7][10]=500; /*m5 */ a[8][4]=210;a[8][5]=240;a[8][6]=270;a[8][7]=310;a[8][8]=370;a[8][9]=440;a[8][10]=520; /*m6 */ a[9][4]=230;a[9][5]=260;a[9][6]=290;a[9][7]=330;a[9][8]=390;a[9][9]=460;a[9][10]=540; bkr_max_2= a; /* バックラッシ 3級 最大値 */ /*m0.5*/ a[0][0]=60;a[0][1]=70;a[0][2]=90;a[0][3]=110;a[0][4]=130;a[0][5]=160;a[0][6]=200;a[0][7]=250; /*m1 */ a[1][1]=80;a[1][2]=100;a[1][3]=120;a[1][4]=140;a[1][5]=170;a[1][6]=210;a[1][7]=260;a[1][8]=320; /*m1.5*/ a[2][2]=110;a[2][3]=130;a[2][4]=150;a[2][5]=180;a[2][6]=220;a[2][7]=270;a[2][8]=330;a[2][9]=410; /*m2 */ a[3][3]=140;a[3][4]=170;a[3][5]=200;a[3][6]=240;a[3][7]=280;a[3][8]=350;a[3][9]=420; /*m2.5*/ a[4][3]=150;a[4][4]=180;a[4][5]=210;a[4][6]=250;a[4][7]=300;a[4][8]=360;a[4][9]=430; /*m3 */ a[5][4]=190;a[5][5]=220;a[5][6]=260;a[5][7]=310;a[5][8]=370;a[5][9]=450;a[5][10]=540; /*m3.5*/ a[6][4]=200;a[6][5]=230;a[6][6]=270;a[6][7]=320;a[6][8]=380;a[6][9]=460;a[6][10]=560; /*m4 */ a[7][4]=210;a[7][5]=240;a[7][6]=280;a[7][7]=330;a[7][8]=400;a[7][9]=470;a[7][10]=570; /*m5 */ a[8][4]=230;a[8][5]=270;a[8][6]=300;a[8][7]=350;a[8][8]=410;a[8][9]=490;a[8][10]=590; /*m6 */ a[9][4]=260;a[9][5]=290;a[9][6]=330;a[9][7]=380;a[9][8]=440;a[9][9]=520;a[9][10]=610; bkr_max_3= a; /* バックラッシ 4級 最大値 */ /*m0.5*/ a[0][0]=70;a[0][1]=80;a[0][2]=100;a[0][3]=120;a[0][4]=150;a[0][5]=180;a[0][6]=230;a[0][7]=280; /*m1 */ a[1][1]=90;a[1][2]=110;a[1][3]=130;a[1][4]=160;a[1][5]=190;a[1][6]=240;a[1][7]=290;a[1][8]=360; /*m1.5*/ a[2][2]=120;a[2][3]=140;a[2][4]=170;a[2][5]=210;a[2][6]=250;a[2][7]=310;a[2][8]=380;a[2][9]=460; /*m2 */ a[3][3]=160;a[3][4]=190;a[3][5]=220;a[3][6]=260;a[3][7]=320;a[3][8]=390;a[3][9]=480; /*m2.5*/ a[4][3]=170;a[4][4]=200;a[4][5]=230;a[4][6]=280;a[4][7]=330;a[4][8]=400;a[4][9]=490; /*m3 */ a[5][4]=210;a[5][5]=250;a[5][6]=290;a[5][7]=350;a[5][8]=420;a[5][9]=510;a[5][10]=610; /*m3.5*/ a[6][4]=230;a[6][5]=260;a[6][6]=300;a[6][7]=360;a[6][8]=430;a[6][9]=520;a[6][10]=630; /*m4 */ a[7][4]=240;a[7][5]=270;a[7][6]=320;a[7][7]=370;a[7][8]=440;a[7][9]=530;a[7][10]=640; /*m5 */ a[8][4]=260;a[8][5]=300;a[8][6]=340;a[8][7]=400;a[8][8]=470;a[8][9]=560;a[8][10]=670; /*m6 */ a[9][4]=290;a[9][5]=320;a[9][6]=370;a[9][7]=420;a[9][8]=490;a[9][9]=580;a[9][10]=690; bkr_max_4= a; /* バックラッシ 5級 最大値 */ /*m0.5*/ a[0][0]=70;a[0][1]=90;a[0][2]=110;a[0][3]=130;a[0][4]=170;a[0][5]=200;a[0][6]=250;a[0][7]=320; /*m1 */ a[1][1]=100;a[1][2]=120;a[1][3]=150;a[1][4]=180;a[1][5]=220;a[1][6]=270;a[1][7]=330;a[1][8]=410; /*m1.5*/ a[2][2]=140;a[2][3]=160;a[2][4]=190;a[2][5]=230;a[2][6]=280;a[2][7]=350;a[2][8]=420;a[2][9]=520; /*m2 */ a[3][3]=180;a[3][4]=210;a[3][5]=250;a[3][6]=300;a[3][7]=360;a[3][8]=440;a[3][9]=540; /*m2.5*/ a[4][3]=190;a[4][4]=220;a[4][5]=260;a[4][6]=310;a[4][7]=380;a[4][8]=450;a[4][9]=550; /*m3 */ a[5][4]=240;a[5][5]=280;a[5][6]=330;a[5][7]=390;a[5][8]=470;a[5][9]=570;a[5][10]=690; /*m3.5*/ a[6][4]=250;a[6][5]=290;a[6][6]=340;a[6][7]=400;a[6][8]=480;a[6][9]=580;a[6][10]=700; /*m4 */ a[7][4]=270;a[7][5]=310;a[7][6]=360;a[7][7]=420;a[7][8]=500;a[7][9]=590;a[7][10]=720; /*m5 */ a[8][4]=300;a[8][5]=340;a[8][6]=390;a[8][7]=450;a[8][8]=530;a[8][9]=620;a[8][10]=750; /*m6 */ a[9][4]=330;a[9][5]=370;a[9][6]=410;a[9][7]=430;a[9][8]=560;a[9][9]=650;a[9][10]=780; bkr_max_5= a; /* 入力 */ echo "モジュール m (1〜6) = "; m = getnum(1); echo "歯数 z = "; z = getnum(1); echo "等級 class (1〜5) = "; cls = getnum(1); /* m_id,pcd_id の選定 */ pcd = m * z; /* PCD */ switch (m){ case 0.5: m_id = 0;break; case 1.0: m_id = 1;break; case 1.5: m_id = 2;break; case 2.0: m_id = 3;break; case 2.5: m_id = 4;break; case 3.0: m_id = 5;break; case 3.5: m_id = 6;break; case 4.0: m_id = 7;break; case 5.0: m_id = 8;break; case 6.0: m_id = 9;break; } echo m_id; if ( pcd >=1.5 && pcd <3 ) { pcd_id = 0;} else if ( pcd >=3 && pcd <6 ) { pcd_id = 1;} else if ( pcd >=6 && pcd <12 ) { pcd_id = 2;} else if ( pcd >=12 && pcd <25 ) { pcd_id = 3;} else if ( pcd >=25 && pcd <50 ) { pcd_id = 4;} else if ( pcd >=50 && pcd <100 ) { pcd_id = 5;} else if ( pcd >=100 && pcd <200 ) { pcd_id = 6;} else if ( pcd >=200 && pcd <400 ) { pcd_id = 7;} else if ( pcd >=400 && pcd <800 ) { pcd_id = 8;} else if ( pcd >=800 && pcd <1600) { pcd_id = 9;} else if ( pcd >=1600 && pcd <3200) { pcd_id = 10;} /* バックラッシ */ real_bkr_min = bkr_min[m_id][pcd_id]; /* 最小値 */ switch (cls){ /* 最大値 */ case 1: real_bkr_max = bkr_max_1[m_id][pcd_id];break; case 2: real_bkr_max = bkr_max_2[m_id][pcd_id];break; case 3: real_bkr_max = bkr_max_3[m_id][pcd_id];break; case 4: real_bkr_max = bkr_max_4[m_id][pcd_id];break; case 5: real_bkr_max = bkr_max_5[m_id][pcd_id];break; } /* またぎ歯厚の公差 */ kousa_min = -1 * real_bkr_min/1000 * cos(alf); kousa_max = -1 * real_bkr_max/1000 * cos(alf); /* またぎ歯厚 */ inv = tan(alf)-alf_rad; kf = alf_rad/pi; zm = nint(z*kf+.5); sm = m*cos(alf)*(pi*(zm-.5)+z*inv); ssm = sprint("%8.3f",sm); /* 出力 */ echo "またぎ歯数 = " zm " 配置位置クリック"; p = getpnt(1); GNT [zm] <[p[0]],[p[1]]> str1 = sprint("%4.3f",kousa_min); str2 = sprint("%4.3f",kousa_max); str = ssm + "\MS" + str1 + "\MY" + str2 + "\MZ"; echo "またぎ歯厚 = " str " 配置位置クリック"; p = getpnt(1); GNT [str] <[p[0]],[p[1]]> str1 = sprint("%5.3f",real_bkr_min/1000); str2 = sprint("%5.3f",real_bkr_max/1000); str = str1 + "〜" + str2; echo "バックラッシ = " str " 配置位置クリック";; p = getpnt(1); GNT [str] <[p[0]],[p[1]]>