印刷設定
印刷設定は,現段階では,以下の画像に示すパラメータを指定することができます.
これらのパラメータに関していくつかの注意点があります.
-
layer_height:押し出し量を計算する時に参照する値であるので,造形ピッチと揃える必要がある
-
スピード: 印刷とトラベル速度.mm/minの単位
-
ファンスピードは0から255の値
-
originの値は,原点からシフト量を示す
-
extrusion_multiplierは,樹脂の射出係数
一般の3Dプリンタでは,原点をベッドの左手前に設定していますが,G-coordinatorでは,造形の数式を簡単に書くために,原点をベッドの中央に設定しています. 例えば,使用する3Dプリンタのベッドが200mm×200mmの時,その中心の(100, 100) を原点と設定しています.G-coordinator上で(10,-20)の座標が,G-code上では(110, 80)に変換されて記録されます.
これらの値は,印刷する全てのパスにデフォルトで適用される基本設定です.
しかし,3Dプリンタの条件をもっと細かく指定したい場合がよくあります.
そうした調整はエディタで行います.
例えば,前回の記事で実装した円柱のパスに関して,ファーストレイヤはベッドの定着をするために,樹脂の射出を多くしたいという状況を想定しましょう.
import numpy as np
import gcoordinator as gc
full_object=[]
for height in range(100):
arg = np.linspace(0, 2*np.pi, 100)
x = 10 * np.cos(arg)
y = 10 * np.sin(arg)
z = np.full_like(arg, (height+1) * 0.2)
wall = gc.Path(x, y, z)
+ if height == 0:
+ wall.extrusion_multiplier = 1.2
full_object.append(wall)
gc.gui_export(full_object)
この二行を前回のコードに追加することで,heightの値が0の時のみ,wallというパスの射出係数が1.2倍になります.
他にも,以下のように,印刷設定のパラメータツリーで指定した値は射出係数だけに限らず,エディタをもちいて上書きすることが可能になっています.
if height == 0:
wall.extrusion_multiplier = 1.2 # 射出係数を1.2に
wall.retraction = True # 次のパスに移動する前のリトラクションをオンに
wall.print_speed = 3000 # 印刷スピードを3000[mm/sec]に
start, end G-codeの設定
スタート,エンドG-codeの設定は,印刷設定の上のmachine_settingsのボタンを押してポップアップするウィンドウの中で行います.
それぞれの欄に,普段使っているスライサなどのスタート,エンドG-codeをコピーペーストすればいいです.
例えば,Curaなどを使用の方は,以下のページを参考に,Curaのソフトの中のstart, end G-codeをそのまま持ってくるので問題ないです.
これらの設定の変更後には,ソフトの再起動が必要です.
G-codeの書き出し
これまでのステップで,造形,印刷設定,スタート・エンドG-codeの設定ができました.あとは,G-codeを書き出すだけです.
G-code exportボタンを押せば,G-codeプレビュー画面が表示されます.G-codeの最初の1000行のみがプレビューされます.
save G-code file のボタンを押せば,生成されたG-codeを指定の場所に保存することができます.
G-coordinator ver3.0.0においては,G-codeを保存する際に,拡張子.gcodeまで入力する必要があります.
gcoordinator(Pythonライブラリ)での印刷設定
G-coordinaotr(GUI)を使用の方は読み飛ばして構いません
gcoordinatorライブラリでは,全てのパスに適用される基本設定を以下のjsonで管理を行います.また,個別のパスに対する指定は,上と同じくコード上で行います.
{
"Print":{
"nozzle": {
"nozzle_diameter": 0.4,
"filament_diameter": 1.75
},
"layer": {
"layer_height": 0.2
},
"speed": {
"print_speed": 10000,
"travel_speed": 15000
},
"origin":{
"x": 100,
"y": 100
},
"fan_speed": {
"fan_speed": 255
},
"temperature": {
"nozzle_temperature": 200,
"bed_temperature": 50
},
"travel_option": {
"retraction": false,
"retraction_distance": 2.0,
"unretraction_distance": 2.0,
"z_hop": false,
"z_hop_distance": 0.4
},
"extrusion_option": {
"extrusion_multiplier": 1.0,
"absolute_extrusion": false
}
},
"Hardware": {
"kinematics": "Cartesian",
"bed_size": {
"bed_size_x": 200,
"bed_size_y": 200,
"bed_size_z": 205
}
},
"Kinematics": {
"NozzleTilt": {
"tilt_code": "B",
"rot_code": "A",
"tilt_offset": 0.0,
"rot_offset": 0
},
"BedTiltBC": {
"tilt_code": "B",
"rot_code": "C",
"tilt_offset": 0.0,
"rot_offset": 0,
"div_distance": 0.5
},
"BedRotate": {
"rot_code": "C",
"rot_offset": 0.0,
"div_distance": 0.5
}
}
}
このjsonをコピーして,どこかに保存してください.パラメータを調整したjsonファイルは,そのパスを事前に指定することで,グローバルな印刷設定として読み込まれます.
import gcoordinator as gc
gc.load_settings("path/to/base_settings.json")
ライブラリ単体で,G-codeを生成するには,スタート,エンドG-codeをそれぞれ別のテキストファイルに保存します.その保存したテキストファイルのパスを指定して,G-codeが生成されます.
その手順は以下の通りです.
ライブラリ単体で,G-codeを生成するには,スタート,エンドG-codeをそれぞれ別のテキストファイルに保存します.その保存したテキストファイルのパスを指定して,G-codeが生成されます.
その手順は以下の通りである.
import gcoordinator as gc
# Create paths and store them in full_object
gcode = gc.GCode(full_object)
gcode.start_gcode("path/to/start_gcode.txt")
gcode.end_gcode("path/to/end_gcode.txt")