|
53.lzh かなり久しぶりに鍋電卓をDLさせていただいて使ってみると、ずいぶん変わってて色々出来るようになってますネ。
んで、以前Windowsのスクリプトで作っていた物を鍋用に変えてみました。
切削速度等を入力して回転数と送り速度を表示する物で、エラー処理は仕方が分からなかったのでしていません。
確認した範囲ではインプットボックスに数字以外の文字や未入力で「OK」しても次々きいてきて。最後に鍋電卓からのエラーが出るだけで悪さはしないと思います。
添付した書庫には元のWSHのファイルも入れてます、こちらは自分なりのエラー処理していますので不正入力された時点で終了します。
インプットダイアログ内のメッセージの改行の仕方も分からなかったので、空白で埋めて不細工なスクリプトになってしまいました(^^;
色々教えていただけるとありがたいです。
52.zip 数年前に投稿したTHD変更スクリプトですが、機能アップし、
ツール番号、工具長補正番号、工具径補正番号、工具径補正データ入力、行程入れ替え等に対応しました。
まだ完璧ではないのですが、よろしければ使ってみて下さい。
注意事項としては、行程入れ替えが完全ではなく、工程番号に同じ数字を入力すると、行程が消えてしまいます。いんちき行程削除機能として使ってますが・・・
また、1本目と最後の行程は入れ替えることができません・・・
行程削除を追加したいと思い、がんばってはいるのですが、行程変更&行程削除がうまくいかずつまづいています。
どなたか詳しい方がいらっしゃれば、アドバイスお願いします。
多少、自社の専用変換用コードも入っていますが、ほぼどんなNCプログラムでも動作すると思います。
51.zip 上下異形状化スクリプトですが、多分、ソディックのワイヤーカット専用です。
N0010に下形状、N0020に上形状とした、NCデータをコロンで区切ったデータに整形します。
サンプルデータを同封してますので、興味のある方は、とりあえず試してみてください。
試すとわかりますが、アプローチ部分が明らかに変ですが、私の扱っている機械では、
コレでしか動かないのです。他は検証のしようがないので、この部分は皆さんの機械に
合わせて、出来たデータを修正、もしくはスクリプトの改良をください。
スパム対策?で、圧縮ファイルは、アップできないんですね。
拡張子zipを、txtにしてアップしますので、ダウンロード後は、
拡張子を、zipなおして解凍してください。
50.lzh 初めて投稿します。
鍋CADから出力されたMC機用のNCプログラムの(T・H・D)No.を変更するスクリプトです。
鍋CADではツールの重複を防止するための機能があります。そこで、ツールマガジンに付いている決まったツール以外のT番号は適当に重複しないように設定してあります。
今までは、エディタで置き換えるか、NC機械内で置き換えるという方法をとっていました。
掲示板で助けてもらいながら、やっと完成しました。助けていただいた方ありがとうございました。
スクリプト初心者なので、おかしなところがあるとは思いますが、一応動作します。(^_^;
どなたか詳しい方がいらっしゃったら直してください。
速度も遅いので・・・(;___;)ウルウル
変換可能なNCプログラムは下記のようなものです。鍋CADのMILL設定は忘れました・・・
%
(POST=TOSNUC.MIL FILE=test.NC)
T112
M506
T03
G53
G57H901
G92W100.
N0010(T112 FMIL-100 H112)
G90G00X-303.66Y-476.31
G43Z100.0H112M01
S760
M03
M101
Z2.0
G01Z0.0F1200
X136.14Y-471.21F1200
X136.14Y-395.81
G00Z100.0
M05
M09
G73Z900.0W900.0
M506
T20
G53
G57H901
G92W100.
N0020(T03 DRIL-50 H03)
G90G00X0.0Y-439.0
G43Z100.0H03M01
S130
M03
M53
G98G81R2.0Z-40.0F26
X-659.96Y226.4
G80Z100.0
M05
M09
G73Z900.0W900.0
M506
T0
M506
M30
%
TOSNUC使用になってますが、FUNUCでも(11M以降)大丈夫です。
使ってみてください。
何があっても責任はとれませんので宜しく・・・
49.lzh CSVのデータを鍋CADスクリプトの配列変数に取り込むスクリプトを組んでみました。
ここで変換されたファイルを鍋エディタで"nanchara.pas"などの名前で保存し、
このスクリプトファイル(nanchara.pas)を鍋CADのスクリプトで読み込んで実行するという使い方です。
pascalよくわかっていません。
とりあえずうごきました。
バグ取りおねがいします。
サンプルとしてお役に立てれば幸いです.
program TPREAD;
const
COM1 = 1; COM2 = 2; COM3 = 3; COM4 = 4;
B2400 = 2400; B4800 = 4800; B9600 = 9600; B14400 = 14400; B38400 = 38400; B56000 = 56000; B115200 = 115200; B128000 = 128000; B256000 = 256000;
CHAR7 = 7; CHAR8 = 8;
STOPBIT1 = 1; STOPBIT2 = 2;
PARITY0 = 0; PARITY1 = 1; PARITY2 = 2;
RTSCTS = 0; DTRDSR = 1; XONXOFF = 2;
var
i, j, m,n,o,count : integer;
s ,txt: string;
ch,ch2: byte;
owr:boolean;
begin
i:=0; j:=0; n:=0; owr:=true;
txt:='';
if CommOpen(COM2, B2400, CHAR8, STOPBIT2, PARITY1, RTSCTS,3000) = false then
begin
Beep;
OkMsgBox('RS232C初期化に失敗しました。');
CommClose;
exit;
end;
// if MsgBox('DNC読み込みを開始しますか?') = true then
// begin;
CommSetRTS(true);
CommSetDTR(true);
repeat
ch:=CommReadChar();
until ch<> 0;
repeat
case ch of // ISOコードテーブル
$b1 : txt:=txt+'1';
$b2 : txt:=txt+'2';
$33 : txt:=txt+'3';
$b4 : txt:=txt+'4';
$35 : txt:=txt+'5';
$36 : txt:=txt+'6';
$b7 : txt:=txt+'7';
$b8 : txt:=txt+'8';
$39 : txt:=txt+'9';
$30 : txt:=txt+'0';
$41 : txt:=txt+'A';
$42 : txt:=txt+'B';
$c3 : txt:=txt+'C';
$44 : txt:=txt+'D';
$c5 : txt:=txt+'E';
$c6 : txt:=txt+'F';
$47 : txt:=txt+'G';
$48 : txt:=txt+'H';
$c9 : txt:=txt+'I';
$ca : txt:=txt+'J';
$4b : txt:=txt+'K';
$cc : txt:=txt+'L';
$4d : txt:=txt+'M';
$4e : txt:=txt+'N';
$cf : txt:=txt+'O';
$50 : txt:=txt+'P';
$d1 : txt:=txt+'Q';
$d2 : txt:=txt+'R';
$53 : txt:=txt+'S';
$d4 : txt:=txt+'T';
$55 : txt:=txt+'U';
$56 : txt:=txt+'V';
$d7 : txt:=txt+'W';
$d8 : txt:=txt+'X';
$59 : txt:=txt+'Y';
$5a : txt:=txt+'Z';
$2b : txt:=txt+'+';
$2d : txt:=txt+'-';
$af : txt:=txt+'/';
$ac : txt:=txt+',';
$2e : txt:=txt+'.';
$a6 : txt:=txt+'&';
$a5 : txt:=txt+'%';
$28 : txt:=txt+'(';
$a9 : txt:=txt+')';
$aa : txt:=txt+'*';
$bd : txt:=txt+'=';
$3f : txt:=txt+'?';
$3a : txt:=txt+':';
$bb : txt:=txt+';';
$22 : txt:=txt+'"';
$27 : txt:=txt+'''';
$3c : txt:=txt+'<';
$be : txt:=txt+'>';
$c0 : txt:=txt+'@';
$db : txt:=txt+'[';
$dd : txt:=txt+']';
$a3 : txt:=txt+'#';
$24 : txt:=txt+'$';
$a0 : txt:=txt+' ';
$8d : txt:=txt+chr(13); //CR
$0a : txt:=txt+chr(10); //LF
$0 : txt:=txt+'*';
$11 : txt:=txt+'>';
else break;
end
ch:=CommReadChar();
until ch= 0;
Writeln(txt);
Beep;
CommSetRTS(false);
CommSetDTR(false);
CommClose;
end.
program PTR;
const
COM1 = 1; COM2 = 2; COM3 = 3; COM4 = 4;
B2400 = 2400; B4800 = 4800; B9600 = 9600; B14400 = 14400; B38400 = 38400; B56000 = 56000; B115200 = 115200; B128000 = 128000; B256000 = 256000;
CHAR7 = 7; CHAR8 = 8;
STOPBIT1 = 1; STOPBIT2 = 2;
PARITY0 = 0; PARITY1 = 1; PARITY2 = 2;
RTSCTS = 0; DTRDSR = 1; XONXOFF = 2;
var
i, j, n : integer;
s : string;
ch, ASC : char;
rb : byte;
begin
if CommOpen(COM1, B4800, CHAR8, STOPBIT2, PARITY0, RTSCTS, 30000) = false then
begin
Beep;
OkMsgBox('RS232C初期化に失敗しました。');
CommClose;
exit;
end;
if MsgBox('PTR読み込みを開始しますか?') = true then
begin;
Cursol(1);
CommSetRTS(true);
CommSetDTR(true);
s := '';
while true do // 永久ループになるのでストップボタンを押して下さい。
begin
rb := CommReadChar();
if rb <> 0 then MsgBox(IntToHex(rb));
end;
Cursol(0);
CommSetRTS(false);
CommSetDTR(false);
CommClose;
end;
end.
46.lzh 鍋CADで読み込んだ場合に、円弧にXミラーが掛かってしまうDXFデータを
正常に読み取れるように座標値等を変換させるスクリプトです。
Zビューの情報も書き換えますので、出力元のCADでも正しく読めます。
円と円弧とテキストのXミラーデータを修正します。(現在報告されているもののみ対応)
ただし、テキストに関しては手元にその様なデータがないため、動作未確認です。(m_m)
たぶん、円と円弧と同じ状況と仮定して作りました。
変換出来ない場合、ご相談下されば可能な限り対応いたします。
45.lzh DNC通信スクリプトのサンプルです。
いろいろと、実機に合わせて改造してみて下さい。
ご投稿もお待ちしております。
※Hidekiさんのご指摘部修正済み版です。
昨夜、実機テストにあたり一カ所修正したことを書かなかったのは、まずかったですね。
すいませんです。<(_ _)>
for j := 1 to Length(s)-1 do
行末一文字欠けてしまいます。
正しくは、
for j := 1 to Length(s) do
ですよね。
- ClipBoard -