/*#TITLE# 自動保存、自動出力 用マクロ δ 版 */ /* AUTO_SAVE_D.MAC 2005.08.06 */ /* 計画図 : 保存しない */ /* 組 図 : X:\\FIL3K\\ */ /* 部品図 : X:\\FIL3B\\頭3桁\\ */ /* 2006.02.18 主務者覽がスペースだけでも空と判断する */ clear(); s = menu(1); /* os = "windows"; */ os = "linux"; if(os == "linux"){ load_fn = "/home/acad/zip/"; save_fn = "/home/acad/tmp1/"; save_fn_0 = "/home/acad/FIL3B/"; save_fn_1 = "/home/acad/FIL3K/"; cmd = "!cd " + load_fn + " && ls *MDL > " + load_fn + "tmp0.dat" + "#"; } else if(os == "windows"){ load_fn = "C:\\tmp\\"; save_fn = "C:\\tmp1\\"; save_fn_0 = "X:\\FIL3B\\"; save_fn_1 = "X:\\FIL3K\\"; cmd = "!dir /B " + load_fn + "*MDL" + " > " + load_fn + "tmp0.dat" + "#"; } [cmd] b_or_k = 0; /* 部品図:1 組図:0 */ fn_dat = load_fn + "tmp0.dat"; fp = fopen(fn_dat,"r"); /* MDL Data Count */ flg = 0; load_no = 0; all_no =0; do{ ss = fgets(20,fp); if(vtype(ss) == 4){ all_no +=1; if( strstr(ss,"LCK") == -1 && strstr(ss,"MDL") > 0){ load_no += 1; } } else{flg = 1;} }while(flg == 0); if(load_no == 0){ echo "tmp フォルダーが空です"; exit; } fclose(fp); mdl_name = array(load_no); save_mn = array(load_no); nsave_mn = array(load_no); /* MDL 名読み込み */ fp = fopen(fn_dat,"r"); k = 0; flg = 0; do{ ss = fgets(20,fp); if(vtype(ss) == 4){ if(strstr(ss,"LCK") == -1 && strstr(ss,"MDL") > 0){ ss = sscan(ss,"%s"); mdl_name[k] = ss; k += 1; } } else{flg = 1;} }while(flg == 0); fclose(fp); /* プリンター,保存先の指定 */ label_p: echo "プリンターを指定して下さい"; prt = gettxt(1); /* echo "保存先を指定してください 1:自動(CR) 2:手動"; tmp = getany(1); if (vtype(tmp) == 5) { /* Entr キーのみ */ menu_no = 1; } else if (vtype(tmp) == 3) { /* 数値 */ menu_no = tmp; } else { goto label_p;} if(menu_no == 2){ echo "保存先を指定して下さい"; save_fn = gettxt(1); if(os == "windows"){ n = subs(save_fn,"/","\\"); } } */ menu_no = 1; label_ow: echo "同名File 1:上書しない(CR) 2:y/n確認 3:上書"; tmp = getany(1); if (vtype(tmp) == 5) { /* Entr キーのみ */ menu_ow = 1; } else if (vtype(tmp) == 3) { /* 数値 */ menu_ow = tmp; } else { goto label_ow;} echo "主務者名を入力してください"; shumu = gettxt(1); if(menu_no == 1){ /* 自動保存 */ echo "prt: " prt "//保存先:自動//主務者:" shumu " Y(CR)/N"; } else if(menu_no == 2){ /* 手動保存 */ echo "prt: " prt "//保存先:" save_fn " //主務者:" shumu " Y(CR)/N"; } tmp = getany(1); if (vtype(tmp) == 5) { /* Entr キーのみ */ yn = "Y"; } else if (vtype(tmp) == 4) { /* 文字 */ yn = tmp; } if(yn != "Y") { goto label_p;} /* データー読み込み、保存 */ save_no = 0; nsave_no = 0; flg = 0; for(i=0; i 0){ /* 部品図 */ b_or_k = 1; save_fn = save_fn_00; } } } save_mdl_name = save_fn + mdl_name[i]; MODEL/READ [load_mdl_name] DRAW 1 if(os == "windows"){ cmd = "!dir /B " + save_fn + mdl_name[i] + " > " + load_fn + "tmp1.dat" + "#"; } else if(os == "linux"){ cmd = "!ls " + save_fn + mdl_name[i] + " > " + load_fn + "tmp1.dat" + "#"; } [cmd] eq_dat = load_fn + "tmp1.dat"; fp1 = fopen(eq_dat,"r"); ss1 = fgets(20,fp1); fclose(fp1); if(vtype(ss1) == 4){ /* 同一名 File 存在!*/ if(menu_ow == 3){ /* 上書き */ flg_ow = 1; } else if(menu_ow == 2){ /* y/n */ echo "\a"; echo "上書きしますか? Y(CR)/N"; tmp = getany(1); if (vtype(tmp) == 5) { /* Entr キーのみ */ yn = "Y"; } else if (vtype(tmp) == 4) { /* 文字 */ yn = tmp; } if(yn == "Y"){ flg_ow = 1;} /* 上書き */ else { flg_ow = 0;} /* 上書きしない */ } else { flg_ow = 0;} /* 上書きしない */ } else { flg_ow = 1;} /* 同一名 File 存在しない*/ if(flg_ow == 0){ ss1 = sscan(ss1,"%s"); nsave_mn[nsave_no] = mdl_name[i]; nsave_no += 1; continue; } else if(flg_ow == 1){ /* 上書き保存、印刷 */ /* MODEL/READ [load_mdl_name] DRAW 1 */ if(b_or_k == 1){ /* 部品図 */ if(vtype(#DRWTTL013) == 5 || #DRWTTL013 == " " || #DRWTTL013 == " " || #DRWTTL013 == " "){ /*主務者覧が空 or space */ DRAW/TITLE PAGE 1 13 [shumu] } } if(b_or_k == 0){ /* 組図 */ if(vtype(#DRWTTL006) == 5 || #DRWTTL006 == " " || #DRWTTL006 == " " || #DRWTTL006 == " "){ /*主務者覧が空 or space */ DRAW/TITLE PAGE 1 6 [shumu] } } save_mn[save_no] = save_mdl_name; save_no += 1; MODEL/WRITE [save_mdl_name] if(os == "linux"){ cmd = "!rm " + load_mdl_name + "#"; } else if(os == "windows"){ cmd = "!del " + load_mdl_name + "#"; } [cmd] if(os == "windows"){ PLOT/ONN 1 [prt] } else if(prt == "A4"){ PLOT/ONN 1 [prt] } } } echo load_no " ヶ中 " save_no " ヶのファイルを保存しました"; save_txt = load_fn + "save.txt"; fp = fopen(save_txt,"w"); fputs("保存した File 名\n",fp); for(i=0;i s = menu(3); exit;