こんにちは、てってらです。内容はタイトルまんまです。
学校でoriginalmind社のmini-CNC BLACKII 1520っていうフライス盤使ってるんですが、その捨て板がボコボコになってきたんで平面出しをすることに。で、純正(?)のncdデータをoriginalmindのサイトからパクろうとしたんですがエンドミルの径が2mmと4mmのしかなかったので、手元にある3mmのエンドミル用に新しく書き出すことにしました。ついでにJavaScriptの練習もしたかったってのもあったんでGコード手打ちじゃなくてプログラム組んでみました。せっかくなので晒します。
で、できたのがこれ
うp方法わかんないんでそのまんま貼っつけますよん
・GcodeMaker.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Generate G-code</title>
<script src="GcodeMaker.js"></script>
</head>
<body>
<output></output>
</body>
</html>
var depth, moving_speed, motor_speed;
var vartical_length, horizontal_length;
var repeat;
diam = 3; //スピンドル径[mm]
margin = 0.5; //重ねる幅[mm]
depth = 0.2 //削る深さ[mm]
moving_speed = 500; //送り速度
motor_speed = 3000; //回転数
vartical_length = 200; //ステージの縦幅(Y軸方向)[mm]
horizontal_length = 150; //ステージの横幅(X軸方向)[mm]
//G-code書き出し(スピンドル上げる->原点へ移動)
ele.innerHTML += "G01 Z5.00 F200" +"<br>";
ele.innerHTML += "M06" + "<br>";
ele.innerHTML += "G01 X0.00 Y0.00 F500" + "<br>";
}, false);
変なとこがあればぜひ教えてください。お願いします
あとスピンドルモータの回転数とか送り速度とかはほんとにテキトーなんで、くれぐれも信用しないでください
これで基板彫るときの刃折れが少なくなるといいなー
<meta charset="utf-8">
<title>Generate G-code</title>
<script src="GcodeMaker.js"></script>
</head>
<body>
<output></output>
</body>
</html>
・GcodeMaker.js
window.addEventListener("load", function(){
var diam, margin;window.addEventListener("load", function(){
var depth, moving_speed, motor_speed;
var vartical_length, horizontal_length;
var repeat;
diam = 3; //スピンドル径[mm]
margin = 0.5; //重ねる幅[mm]
depth = 0.2 //削る深さ[mm]
moving_speed = 500; //送り速度
motor_speed = 3000; //回転数
vartical_length = 200; //ステージの縦幅(Y軸方向)[mm]
horizontal_length = 150; //ステージの横幅(X軸方向)[mm]
repeat = vartical_length / (diam - margin) + 1; //横移動回数
var ele = document.getElementsByTagName("output")[0];
//G-code書き出し(原点へ移動->スピンドル下ろす)
ele.innerHTML += "G01 Z5.00 F500" + "<br>";
ele.innerHTML += "G01 X0.00 Y0.00 F" + moving_speed + "<br>";
ele.innerHTML += "S" + motor_speed + " M03" + "<br>";
ele.innerHTML += "G01 Z-" + depth + " F200" + "<br>";
var x_n, y_n; //桁数変換用変数
var x_axis, y_axis; //G-code用の座標格納変数
x_n = y_n = x_axis = y_axis = 0;
for(var roop_cnt=0; roop_cnt<repeat; roop_cnt++){
x_n = (roop_cnt % 2 == 0) ? horizontal_length : 0; //往路:X=横幅, 復路:X=0
x_axis = x_n.toFixed(2); //小数点以下2桁まで
//G-code書き出し(横移動)
ele.innerHTML += "G01" + " X" + x_axis + " Y" + y_axis + " F" + moving_speed;
var ele = document.getElementsByTagName("output")[0];
//G-code書き出し(原点へ移動->スピンドル下ろす)
ele.innerHTML += "G01 Z5.00 F500" + "<br>";
ele.innerHTML += "G01 X0.00 Y0.00 F" + moving_speed + "<br>";
ele.innerHTML += "S" + motor_speed + " M03" + "<br>";
ele.innerHTML += "G01 Z-" + depth + " F200" + "<br>";
var x_n, y_n; //桁数変換用変数
var x_axis, y_axis; //G-code用の座標格納変数
x_n = y_n = x_axis = y_axis = 0;
for(var roop_cnt=0; roop_cnt<repeat; roop_cnt++){
x_n = (roop_cnt % 2 == 0) ? horizontal_length : 0; //往路:X=横幅, 復路:X=0
x_axis = x_n.toFixed(2); //小数点以下2桁まで
//G-code書き出し(横移動)
ele.innerHTML += "G01" + " X" + x_axis + " Y" + y_axis + " F" + moving_speed;
ele.innerHTML += "<br>";
y_n += (diam - margin); //Y座標を一段移動
y_axis = y_n.toFixed(2); //小数点以下2桁まで
//G-code書き出し(縦移動)
ele.innerHTML += "G01" + " X" + x_axis + " Y" + y_axis + " F" + moving_speed;
ele.innerHTML += "<br>";
y_n += (diam - margin); //Y座標を一段移動
y_axis = y_n.toFixed(2); //小数点以下2桁まで
//G-code書き出し(縦移動)
ele.innerHTML += "G01" + " X" + x_axis + " Y" + y_axis + " F" + moving_speed;
ele.innerHTML += "<br>";
}
//G-code書き出し(スピンドル上げる->原点へ移動)
ele.innerHTML += "G01 Z5.00 F200" +"<br>";
ele.innerHTML += "M06" + "<br>";
ele.innerHTML += "G01 X0.00 Y0.00 F500" + "<br>";
}, false);
変なとこがあればぜひ教えてください。お願いします
あとスピンドルモータの回転数とか送り速度とかはほんとにテキトーなんで、くれぐれも信用しないでください
これで基板彫るときの刃折れが少なくなるといいなー
0 件のコメント:
コメントを投稿