バイナリエディタの使用による出力用ファイルの改変

LCD Photon レジン設定判別で使用するための出力用.photonファイルをカスタマイズするためにバイナリエディタを使用する。

photon-resin-calibrationならびにphoton-xp-finderの作者であるX3msnake氏は、
010 Editor(英語、30日間の体験版)を紹介している。

X3msnake氏によるAnycubic LCD Photonレジン露光調整用ファイル解説動画(英語)内でも触れられている。

X3msnake氏によるレジン露光調整用ファイル 最新版(Github)

photon-resin-calibration内の010HEXEditor-template README翻訳


#010
HEX Editor テンプレート

010 Editorをダウンロードしてください。
anycubic-photon-hextemplate.btをテンプレートフォルダにドロップします。
編集したい.photonファイルを開いてください。
テンプレートを適用しブロック群の意味を明らかにします。

ファイルに介入するための方法についての短めの紹介動画を確認してください。(訳注:上記の動画)


anycubic-photon-hextemplate.btにバイナリテンプレートというスクリプト言語で記述された内容と.photonファイル内のデータを照合しながら、16進法で記述された.photonファイル内のデータを書き換え調整することが可能となる模様。

GithubGistに、日本語による過去バージョンではあるものの 010Editorの説明があるので参考にされたし。

他にバイナリテンプレート機能のあるエディタには

がある。



テストファイルデータ構造

struct HEADER headerに以下の情報が折り畳まれている。(ダブルクリックで展開し閲覧可能)
  • 不明(ファイルタイプID?)
  • X軸方向の出力範囲(mm)
  • Y軸方向の出力範囲(mm)
  • z軸方向の出力範囲(mm)
  • 穴埋め[3項目](0秒用穴埋め?)
  • 積層ピッチ(初期値)(mm)
  • 通常露光時間(初期値、秒)
  • ベースレイヤ露光時間(秒)
  • Off time(秒)
  • ベースレイヤ層数(このレイヤーが表示されている場所が見つからないとのこと)
  • X軸方向解像度
  • Y軸方向解像度
  • 不明3
  • 不明4
  • 総層数
  • 不明5
  • 不明6(穴埋め?)
  • 不明7(穴埋め?)
  • 穴埋め[6項目](0秒用穴埋め?)

struct layerDef IDefs[層数]には各出力層ごとに以下の情報が折り畳まれている。(ダブルクリックで展開し閲覧可能)
項目 [0]~[1] [2] [3]~[13]/0.025mm [3]~[13]/0.05mm
積層ピッチ 0.05 4 0.075 0.1
ベースレイヤ露光時間 0 0 0 0
Off time 6.5 6.5 0 0
データ開始位置 UVを照射する形状自体は各テストファイルで共通のため同一
データサイズ UVを照射する形状自体は各テストファイルで共通のため同一
穴埋め[4項目] 詳細不明
  • 各レイヤーの積層ピッチの設定は[0]~[1]、[2]、[3]~[13]の区分で異なる。

したがって、テストファイルは以下のような構成になっていると思われる。
層数 UV照射パターン 積層ピッチ(mm) 露光時間 Off time(秒)
[0]層目 ベースレイヤ形状 0.05 ベースレイヤ露光時間 6.5
[1]層目 ベースレイヤ形状 0.05 ベースレイヤ露光時間 6.5
[2]層目 照射なし 4 - 6.5
[3]層目 照射なし 0.05+(テストしたい条件の積層ピッチ) - 0
[4]層目 1~10列目 0.05+(テストしたい条件の積層ピッチ) 通常露光時間 0
[5]層目 2~10列目 0.05+(テストしたい条件の積層ピッチ) 通常露光時間 0
[6]層目 3~10列目 0.05+(テストしたい条件の積層ピッチ) 通常露光時間 0
[7]層目 4~10列目 0.05+(テストしたい条件の積層ピッチ) 通常露光時間 0
[8]層目 5~10列目 0.05+(テストしたい条件の積層ピッチ) 通常露光時間 0
[9]層目 6~10列目 0.05+(テストしたい条件の積層ピッチ) 通常露光時間 0
[10]層目 7~10列目 0.05+(テストしたい条件の積層ピッチ) 通常露光時間 0
[11]層目 8~10列目 0.05+(テストしたい条件の積層ピッチ) 通常露光時間 0
[12]層目 9~10列目 0.05+(テストしたい条件の積層ピッチ) 通常露光時間 0
[13]層目 10列目のみ 0.05+(テストしたい条件の積層ピッチ) 通常露光時間 10

  • テスト条件を変更したい場合はstruct HEADER headerの通常露光時間(初期値、秒)、ベースレイヤ露光時間(秒)とstruct layerDef IDefsの[3]~[13]層の積層ピッチを変更すれば良い?
  • [4]層目の照射パターンを複数回照射できれば、露光時間を10秒から15秒まで0.5秒刻みでテストをするといったような、もっと狭い範囲での露光時間の設定が可能になると思われるが…?
  • このテストファイルではOff timeの条件を変えて出力の様子を見ることはできないので注意されたし。


バイナリテンプレートのインストール(010Editor ヘルプページより)


Template Optionsボックスの説明

[Template Options]ダイアログには、ローカルドライブまたは010エディタリポジトリからインストールされたバイナリテンプレートがすべて一覧表示されます。
テンプレートがインストールされると、テンプレートのメインメニューに表示され、特定のファイルを開いたときに自動的に実行されるように設定できます。
[Tools] > [Options]をクリックするか、[Templates] > [View Installed Templates]をクリックするかして、テンプレートオプションダイアログにアクセスしてください。

ダイアログの上部には、 「カテゴリ>テンプレート名」の形式で表示されたテンプレートのリストが表示されます。
[Add]をクリックしてテンプレートファイルを選択すると、新しいテンプレートをローカルドライブから追加できます。
(表示されるファイルダイアログを使用して複数のテンプレートを同時に追加できます。カテゴリ、ファ​​イルマスク、IDバイトなどの情報はファイルコメントから抽出されます)
アイテムを選択して[Delete]をクリックすると、テンプレートがリストから削除されます(ファイルはディスク上で削除されません)。
上矢印または下矢印をクリックして、テンプレートをリストに配置します。

テンプレートがリストから選択されると、その属性が[Template Options]ボックスに表示されます。
 「Name」フィールドにテンプレートの名前を入力します。
この名前は、カテゴリ別に表示されたテンプレートメニューに表示されます。
[Category]が空の場合、テンプレートはテンプレートメニューの上部近くに表示されます。 Visibleトグルを無効にすると、テンプレートを削除せずにメニューから隠すことができます。
[File Name]フィールドにテンプレートのファイル名を入力し、バイナリテンプレートには通常 「.bt」という拡張子が付きます。
[File Name]フィールドの横にあるフォルダボタンを押すとファイルダイアログボックスが展開し、そこから、使用するテンプレートファイルを選択することができます。
 [Edit]ボタンを押して[Options]ダイアログボックスを閉じ、エディタでファイルを表示します。

[File Mask]フィールドと[ID Bytes]フィールドは、このテンプレートが解析できるデータファイルを示します。
[File Mask]フィールドでは、ワイルドカード文字 '*'(ゼロ以上の一致)または '?' (正確に一つだけ一致)を使用し、あるファイルの中のファイルの名前と照合します。
またカンマ文字を使用して複数の検索条件を区切ることができます。
例えば、[File Mask]フィールドに「*.o,?.dylib」と入力すると、「test.o」や「a.dylib」といったファイルと一致します。
(訳注:.photonファイルを上記バイナリテンプレートと照合させたい場合は、[File Mask]フィールドに*.photonと入力する)

[ID Bytes]は、バイナリテンプレートが読み込まれる前に、あるファイルに含まれなければならないデータファイルの先頭のバイトのセットを示します。
バイトは16進表記で表示されます。また '//'文字はコメントの先頭を示し、データ照合の際には(//以下のコメント扱いの文字列は)無視されます。
特殊記号[+ DDD]または[+ 0xHHH]ですが、DDDが10進数の場合、またはHHHが16進数の場合、ファイル内のそのバイトをスキップする際に使用できます。
たとえば、[ID Bytes]に「00 [+4] FF」と入力すると、データファイルの先頭バイトに「00」が、5番目のバイトに「FF」が照合の際に必要になることを意味します。
[ID Bytes]が空か、あるいは[Reqire]トグルにチェックが入っていない場合、[File Mask]のみが適用されます。

テンプレートが010 Editorリポジトリからインストールされている場合、[Status]フィールドにインストールされているテンプレートのバージョンが表示されます。
[Run on Load]トグルを有効にすると、当該のテンプレートはロード時に自動的に実行されます。
[Show Editor on Load]トグルが設定されている場合、当該のテンプレートはインターフェイスで編集用として開かれます。

デフォルトでは、次のテンプレートがインストールされています。
  • ZIP - ZIPアーカイブを解析するために使用されるテンプレート。 「ZIP.bt」ファイルを読み込みんでください。
  • WAV - WAVサウンドファイルを解析するために使用されるテンプレート。 「WAV.bt」ファイルを読み込みんでください。
  • BMP - ビットマップファイルの解析に使用されるテンプレート。 「BMP.bt」ファイルを読み込みんでください。

[Set Shortcut]ボタンをクリックすると、キーボードオプションダイアログにジャンプし、選択したテンプレートのショートカットキーを設定できます。
[Reset]を使用すると、すべてのテンプレートを元の値にリセットできます。

テンプレートのリストのインポートとエクスポート


[Template Options]ダイアログを使用すると、テンプレートの現在のリストをエクスポートし、010エディタの別のコピーへインポートすることができます。
現在のテンプレートのリストをエクスポートするには、ダイアログの右下隅にある[Export List...]ボタンをクリックします。
開いた標準ファイルダイアログを使用してテンプレートリストを保存する場所を選択します。

エクスポートされたテンプレートリストには以下の2種類が含まれます。
Template Recordsのリスト(Template Optionsグループに表示されるすべての情報)に加え、実際のテンプレートファイルの2種類です。
エクスポートされたテンプレートリストの拡張子は 「.1tl」です。

既存のテンプレートリストをインポートするには、[Import List... ]ボタンをクリックします。
インポートするテンプレートリストを選択してください。すると、[Import Template List]ダイアログが表示されます。


ダイアログの上部にあるリストからインポートするテンプレートを選択してください。
テンプレートレコードのインポートトグルを選択すると、すべてのテンプレートレコードが読み込まれます。
(テンプレートレコードには、メインの[Option]ダイアログの[Template Options]領域のすべての情報が含まれています)

デフォルトでは、既存のテンプレートレコードは変更されませんが、[Overwrite Existing Records]トグルを有効にすると上書きされます。
インポートするファイルに実際のテンプレートファイルが含まれている場合(テキスト [includes files]がテンプレート名の横に表示されます)、実際のテンプレートファイルをディスクに書き込むことができます。
[Import Template Files]を有効にしてファイルをディスクに書き出しを行え、[Overwrite Existing Files]オプションを有効にすると、ディスク上のテンプレートファイルに上書きできます。
ォルトでは、テンプレートはエクスポート元のディレクトリと同じディレクトリに書き込まれますが、そのディレクトリがこのマシンに存在しない場合は、ディレクトリの切り替えを有効にして、すべてのテンプレートファイルを配置するディレクトリを選択してください。

[Import]]ボタンをクリックすると、インポートが実行され、インポートされた情報が[Results]テキストエリアにインポートに関する情報が表示されます。
ファイルの書き込み中にエラーが発生すると、結果にエラーが表示されます。
ダイアログを閉じるには、[Close]ボタンまたは[Cancel]ボタンをクリックします。

このダイアログの動作は、そのダイアログがスクリプトの代わりにテンプレートで動作する以外にも、[Import Script List]ダイアログと同じ方法で動作します。


テンプレートとスクリプトの実行


テンプレートの実行(010Editor ヘルプページより)

バイナリテンプレートを実行するにはいくつかの方法があります。
一番簡単なのは、単にファイルを開くことです。
010エディタにバイナリテンプレートがインストールされていれば、テンプレートは自動的に実行されます。
010 Editorには、BMP、WAV、およびZIPファイルのバイナリテンプレートがプリインストールされていますが、他のテンプレートもインストールできます(詳細については、Template Options[※前述のもの]またはRepository Dialogを参照してください)。

テンプレートは、[Templates]メニュー([Template Options]ダイアログまたは[Repository]ダイアログを使用してこのメニューにテンプレートをインストールすることができます)でテンプレートの名前をクリックして実行することもできます。


バイナリテンプレートを実行する別の方法は、各エディタの上にファイルバーを使用することです。
データファイル(すなわち、テンプレートまたはスクリプトではないファイル)を編集する場合、ファイルバーには、上で示したように[Run Script]および[Run templates]とマークされたセクションが含まれます。
[Run Template]領域をクリックすると、インストールされているテンプレート、テンプレートを開く、および最近使用したテンプレートのドロップダウンリストが表示されます。
現在のファイルでそのテンプレートを実行するには、リスト内のテンプレート名をクリックします。
ファイルに対してテンプレートが選択されると、[Run Template]領域に「Run Template:<テンプレート名>」とアイコンが表示されます。
このアイコンをクリックするか、F5キーを押してテンプレートを再実行します。

ドロップダウンリストの下部には、新しいテンプレートを作成する、テンプレートを開く、このファイルに関連付けられたテンプレートを編集する、またはインストールされたテンプレートのリストを編集するための4つのアイコンがあります。
リストの右下にあるハンドルをクリックしてドラッグすると、ドロップダウンリストのサイズを変更することができ、010 Editorは選択したサイズを記憶します。


テンプレートを編集するとき([Edit As]領域には[Edit As:テンプレート名]が表示されます)、ファイルバーには上記のようにRun on Fileセクションが表示されます。
[Run on File]領域をクリックすると、現在開いているすべてのファイルの一覧が表示されますが、スクリプトやテンプレートは含まれません。
ドロップダウンリストのファイルをクリックすると、そのファイルで現在のテンプレートが実行されます。
ファイルが選択されると、この領域にファイル上で[Run:<ファイル名>]が表示され、アイコンをクリックするかF5キーを押すと、現在のテンプレートが再実行されます。
ドロップダウンリストの下部にある[Open]アイコンをクリックすると、ファイルを開き、そのファイルで現在のテンプレートをすぐに実行できます。
ファイルバーのリポジトリセクションは、リポジトリメニューのヘルプトピックで説明しています。

テンプレートの実行中にエラーが発生すると、出力ウィンドウの出力タブにエラーメッセージが表示されます。
エラーメッセージをダブルクリックすると、エラーが発生した行にカーソルが移動します。
テンプレートは、コマンドラインを使用して実行することもできます。
テンプレートを実行すると、「Template Results」ヘルプトピックでは、Resultsの使用方法が説明されています。


スクリプトの実行

テンプレートの実行と同様に、スクリプトは、[Scripts]メニューのスクリプト名をクリックすることで実行できます。
(このメニューにスクリプトを配置する方法と使用可能なすべてのスクリプトのリストについては、「Script Options」ダイアログを参照してください)
また、同じダイアログを使用して、特定のファイルタイプが開いたときに実行するようにスクリプトを設定することも、アプリケーションの起動時やシャットダウン時に自動的に実行するように設定することもできます。
他の人がリポジトリに送信したスクリプトのインストールについては、 Repositoryダイアログを参照してください。


また、各エディタの上部にあるファイルバーを使用してスクリプトを実行することもできます。
スクリプトまたはテンプレートではないファイルを編集する場合、ファイルバーには[Run Script]と[Run templates]という2つのセクションが含まれます。
[Run Script]領域をクリックし、現在のファイルでそのスクリプトを実行するには、インストールされているスクリプト、オープンスクリプト、または最近のスクリプトのリストからスクリプトを選択します。
ファイルに対してスクリプトを選択すると、[Run Script]領域に[Run Script:<スクリプト名>]とアイコンが表示されます。
このアイコンをクリックするか、F7キーを押してスクリプトを再実行します。

ドロップダウンリストの下部には4つのアイコンがあります。
これらのアイコンは、新しいスクリプトの作成、スクリプトのオープン、このファイルに関連付けられたスクリプトの編集、またはインストールされたスクリプトのリストの編集に使用できます。
ドロップダウンリストのサイズは、リストの右下にあるハンドルをクリックしてドラッグすることによっても変更できます。


現在編集中のファイルがスクリプトの場合([Edit As]領域に[Edit As:Script]と表示されます)、ファイルバーに[Run on File]というセクションが表示されます。
[Run on File]セクションをクリックし、開いているすべてのファイルのドロップダウンリストからファイルを選択して、そのファイルで現在のスクリプトを実行します。
一部のスクリプトは、アイコンをクリックするか、ドロップダウンリストから「(none)」を選択すると、ターゲットファイルなしで実行されます。
ファイルが選択されると、この領域には[Run on FIle:<ファイル名>]と表示され、アイコンをクリックするかF7キーを押すと、選択したファイルの現在のスクリプトが再実行されます。
ドロップダウンリストの下部にある[Open]アイコンを使用すると、ファイルを開き、そのファイルで現在のスクリプトをすぐに実行できます。

スクリプトが実行された後(そして、スクリプトがインターフェースにロードされていると仮定して)、スクリプトを選択し、[Inspector]の[Variables]タブをクリックして、スクリプトによって作成された変数を表示します。

コメント

タグ:

Photon
+ タグ編集
  • タグ:
  • Photon

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2018年07月24日 05:39