1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

G-coordinatorで3Dプリント(印刷設定,G-codeの書き出し)

Last updated at Posted at 2024-06-24

印刷設定

印刷設定は,現段階では,以下の画像に示すパラメータを指定することができます.

これらのパラメータに関していくつかの注意点があります.

  • 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")
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?