Gコードパーサー-3

Gコードパーサー-2の続き

Translator

Adventurer3用のGコードファイルに変換するためのクラスを保持するライブラリ。

処理内容は、Adventurer3コントローラーを参照。

ToAdventurer3

Simlify3D、FlashPrintから生成されたファイルとSlic3rから変換されたファイルに対して修正をして、Adventurer3用のGコードファイルを作成するクラス。

変換時に使用するパラメータはToAdventurer3Parameterで保持し、一応、シリアライズ対象にしている。

ToAdventurer3Parameter

パラメータ類は、プロパティとして用意している。

デシリアライズ時、設定されているパラメータのチェックはCheckメソッドで実施している。このチェックの結果は、Dictionary<string, string>で返却される。キーがパラメータのプロパティ名で、設定内容がエラーメッセージになっている。

json形式でシリアライズした場合、以下のような形式で出力される。

{
"EnclosureFanOn":false,
"MotorA":100,
"MotorB":20,
"MotorX":100,
"MotorY":100,
"MotorZ":40,
"PlayRemovalLength":0.5,
"OffsetZ":-0.02,
"BrimSpeedTypeValue":1,
"BrimSpeed":600,
"BrimSpeedRatio":100,
"BrimExtrudeRatio":150
}

BrimSpeedTypeValueはブリムのスピード設定方法で、0,1,2がそれぞれ、変更しない、絶対値で変更する、ファイル中で出力されたデータの割合で変更するに相当する選択値になっている。

Simplify3DParameter

これは、内部で使用しているクラス。Simplify3Dのファイルを読み込んだ時にファイルのヘッダー側に設定されているスライス用パラメータの情報を読み込んで保持しておくためのもの。

Adventurer3用のデータ変換時に、XY軸移動スピード、Z軸移動スピードを使用するために、覚えておくようにしている。

ToAdventurer3

Adventurer3用のデータ変換本体。

Modifyメソッド内で、自前でParseGCodeStreamを用意し変換処理をしている。事前にファイルの種別を判断したのち、ParseGCodeStream.Parseを実施している。

実際のGコード編集処理は、ActionLineからの呼び出しから実施している。

Slic3rToBase

Scli3rのファイル中のZ軸移動速度の修正を行いToAdventurer3に渡せるようにデータを整える処理を行っている。

またSlic3rToBaseを直接シリアライズ可能としており、動作パラメータもこのクラス内で保持している。これは、パラメータの数が1個しかなかったため、あえて別のクラスに分離しなかった。

こちらも、ToAdventurer3と同様にModifyメソッド内で、自前でParseGCodeStreamを用意し変換処理をしている。事前に、ToAdventurer3に渡すためのパラメータを読み込むため。

Scli3rで出力されたファイルのスライス用パラメータは、Simplify3Dとは違い、フッター型にあるため、事前にそこまで読み込み、動作パラメータを取得したのち、ParseGCodeStream.Parseを実施している。

実際のGコード編集処理は、ActionLineからの呼び出しから実施している。

ちなみにjson形式でシリアライズした場合、以下のような形式で出力される。

{
"SpeedZ":30
}

一応、キーワードが違うので、ToAdventurer3用のパラメータに混ぜて、1ファイルでの運用も可能としている。

コメント

タイトルとURLをコピーしました