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ファイルでの運用も可能としている。
コメント