/*#TITLE# Ball Bearing寿命計算マクロ */ /* "BALL_BEARING.MAC" 2009.2.1 kita */ clear(); /* Data Read */ os = "linux"; /* os = "windows"; */ load_fn = fname("#MACRO#","KITA/ball_bearing.dat"); fp = fopen(load_fn,"r"); n_b = 0; for(;;){ tmp = fgets(100,fp); if(length(tmp) == 1){ break;} n_b +=1; } b_d = array(n_b); b_name = array(n_b); b_cor = array(n_b); b_cr = array(n_b); b_f0 = array(n_b); cr = 0; /*echo "n_b=" n_b; getany(1);*/ fseek(fp,0,0); for(i=0; i } / for(i=0; i<=7; i+=1){ th = atan2(a1[i],1); tmp0 = pce(0,b1[i]); tmp1 = rot(tmp,th); LBP [100*tmp0] [100*(tmp0+tmp1)] } getany(1); */ /* テンポラリー Window */ p1=dig(1300,1000); p2=dig(2250,1990); mp=mopen(33,p1,p2,5,20); mcolor (mp,4); /* color 黄 */ ps=pos(1,1,33); /* 表示 */ merase(mp); mcolor(mp,5);/*橙*/ ps[0] = 2; ps[1] = 0; mecho(ps,"// NSK 玉軸受の寿命計算 //(終了:ce)"); mcolor (mp,1);/*緑*/ ps[0] = 2; ps[1] = 2; mecho(ps,"ラジアル荷重 Fr ="); ps[1] = 3; mecho(ps,"アキシアル荷重 Fa ="); ps[1] = 4; mecho(ps,"回転数 n ="); ps[1] = 5; mecho(ps,"軸径 d ="); ps[0] = 5; ps[1] = 2; mecho(ps,"[kgf]"); ps[1] = 3; mecho(ps,"[kgf]"); ps[1] = 4; mecho(ps,"[rpm]"); ps[1] = 5; mecho(ps,"[mm]"); ps[0] = 2; mcolor(mp,3);/*水*/ ps[1] = 15; mecho(ps,"動定格荷重 Cr ="); ps[1] = 16; mecho(ps,"静定格荷重 Cor ="); ps[1] = 17; mecho(ps,"動等価荷重 P0 ="); ps[1] = 18; mecho(ps,"定格寿命 Lh10 ="); ps[1] = 19; mecho(ps,"97%寿命 Lh03 ="); ps[0] = 5; ps[1] = 15; mecho(ps,"[kgf]"); ps[1] = 16; mecho(ps,"[kgf]"); ps[1] = 17; mecho(ps,"[kgf]"); mcolor(mp,4);/*黄*/ ps_r = pos(4,2,33); fr = 50; mecho(ps_r,fr); ps_a = pos(4,3,33); fa = 10; mecho(ps_a,fa); ps_n = pos(4,4,33); n_rpm = 30;mecho(ps_n,n_rpm); ps_j = pos(4,5,33); dia = 10;mecho(ps_j,dia); idx_b = 0; mcolor(mp,6);/*桃*/ ps_name0 = pos(2,14,33); ps_name = pos(1,1,33); ps_cr = pos(4,15,33); ps_cor = pos(4,16,33); ps_p0 = pos(4,17,33); ps_lh10 = pos(4,18,33); ps_ly10 = pos(5,18,33); ps_lh03 = pos(4,19,33); ps_ly03 = pos(5,19,33); mcolor(mp,4);/*黄*/ /* 初期値 */ /*idx_b = 0;*/ /*pnt = pos(3,7,33);*/ idx_i = array(10); j = 0; for(;;){ pnt = getany(1); merase(ps_name0); merase(ps_cr); merase(ps_cor); merase(ps_p0); merase(ps_lh10); merase(ps_lh03); merase(ps_ly10); merase(ps_ly03); if(vtype(pnt) == 12){ if (pnt[0] == 4 && pnt[1] == 2){ echo "ラジアル荷重 Fr=";fr = getnum(1); merase(ps_r);mecho(ps_r,fr); continue;} else if(pnt[0] == 4 && pnt[1] == 3){ echo "アキシアル荷重 Fa=";fa = getnum(1); merase(ps_a);mecho(ps_a,fa); continue;} else if(pnt[0] == 4 && pnt[1] == 4){ echo "回転数 n_rpm=";n_rpm = getnum(1); merase(ps_n);mecho(ps_n,n_rpm);continue;} else if(pnt[0] == 4 && pnt[1] == 5){ echo "軸径 dia=";dia = getnum(1); merase(ps_j); mecho(ps_j,dia); idx_i = array(10); j = 0; pnt[0] = 3; pnt[1] = 7; for(i=0; i= 100000){ ss_lh10 = sprint("%1.3e 時間",lh10); ss_lh03 = sprint("%1.3e 時間",lh03); } else{ ss_lh10 = sprint("%6.0f 時間",lh10); ss_lh03 = sprint("%6.0f 時間",lh03); } ss_ly10 = sprint("%6.1f 年",ly10); ss_ly03 = sprint("%6.1f 年",ly03); merase(ps_p0); mecho(ps_p0,ss_p0); merase(ps_lh10); mecho(ps_lh10,ss_lh10); merase(ps_lh03); mecho(ps_lh03,ss_lh03); merase(ps_ly10); mecho(ps_ly10,ss_ly10); merase(ps_ly03); mecho(ps_ly03,ss_ly03); } /* end vtype == 12 */ else if(vtype(pnt) == 5){ break;} else { continue;} } mclose(mp); /*echo "idx_b=" idx_b; getany(1); echo (b_name[idx_b]) "fr" fr "fa" fa "n" n_rpm "cr" cr "cor" cor; getany(1); echo "f0" f0 "x0" x0 "y0" y0 "p0" p0 "lh10" lh10 "ly10" ly10 "lh03" lh03 "ly03" ly03; getany(1); */ if(cr == 0){ exit;} /* Bearing 未選択 */ if(lh10 <= 100000){ ss_tmp = sprint("#%s\n Fr = %4.0f kgf\n Fa = %4.0f kgf\n n = %4.1f rpm\n Cr = %4.0f kgf\n Cor = %4.0f kgf\n f0 = %2.1f\n X = %2.1f Y = %2.1f\n P0 = %4.1fkgf\n Lh10 =%6.0f 時間 %6.1f 年\n Lh03 =%6.0f 時間 %6.1f 年\n", b_name[idx_b],fr,fa,n_rpm,cr,cor,f0,x0,y0,p0,lh10,ly10,lh03,ly03); } else{ ss_tmp = sprint("#%s\n Fr = %4.0f kgf\n Fa = %4.0f kgf\n n = %4.1f rpm\n Cr = %4.0f kgf\n Cor = %4.0f kgf\n f0 = %2.1f\n X = %2.1f Y = %2.1f\n P0 = %4.1fkgf\n Lh10 =%1.2e 時間 %6.1f 年\n Lh03 =%1.2e 時間 %6.1f 年\n", b_name[idx_b],fr,fa,n_rpm,cr,cor,f0,x0,y0,p0,lh10,ly10,lh03,ly03); } echo "出力位置をクリックしてください"; GLB [ss_tmp] exit;