FlashPrintでExportしたスライスパラメータの実数をテキストエディタで見やすくするプログラムを作成したので、ここにソースコードを公開。
- 2021/10/21更新
Javascript化して変換用ページを公開。
FlashPrint Parameter(FCFG)からCSV形式に変換 - 2022/02/12更新
C#版で16進数のエスケープ記述に解釈できないのがあったので、その修正を実施。
C#のRegex.Unescapeの16進数は\x??と2桁必要だったのだけど、FlashPrintから出力されたものには\x?と1桁のものがあった。
またJavascript版では\f等の制御文字の認識ができなかった。
そこで、Javascript版で作ったエスケープ文字処理用関数をC#版に移植するとともに1桁、2桁の16進数でも問題ないようにするとともに、制御文字の変換も行えるように変更した。
初めに
FlashPrintのスライスパラメータは以下の操作で出力ができる。
- Ver5.1
- Ver4.6
これらで出力されたファイルは、V5.1が拡張子fcfg、V4.6が拡張子fprofileで保存され、中身はWindowsのINI形式で出力されたものになる。
このスライスパラメータを見るうえで、一つ問題になっているのが実数の表現形式。
例えばV5.1のものを出力した時のノズルのサイズは@Variant(\0\0\0\x87>\xcc\xcc\xcd)
といった形で出力される。
パラメータを若干修正したものを複数用意した場合、どの値がどの程度異なるのか、このファイルを見ただけで判断することができず、FlashPrintのGUI画面から参照する必要が出てくる。
またWinMerge等のツールでファイルの比較をしても、差を直感的に認識することが難しい。
そこで、実数の値を変換して可視化できるものを作ろうと思った。
実装
Variant部分は、単精度浮動小数点をリトルエンディアンでバイト化したものを文字列にしていたようなので、読み込み時は上の逆を行って単精度浮動小数点にして出力している。
また取り扱いやすくするようにCSV形式で出力を行っている。
この変換自体はV4.6、V5.1どちらも同じだったので、共通して使えるようになっている。
変換結果
以下の様な形に、実数値が可視化された形で出力されるようになった。
これで、パラメータの調整をする場合に、何をどう変えたのかを判別することができるようになった。
Javascript化
WEB上で変換可能なように上のソースをJavascript化した。
物は以下のページに配置したので、プログラムをコンパイルしなくても変換できるようになった。
コメント