zudo-stl-fix
GitHub リポジトリ

検索したい単語を入力

いつでも検索バーを開ける

引数とオプション

stl_doctor.py のすべての引数とオプション、デフォルト値と検証ルール。

書式

stl_doctor.py [-h] [--out-dir OUT_DIR] [--report REPORT]
              [--weld-tolerance WELD_TOLERANCE] [--max-faces MAX_FACES]
              [--max-pairs MAX_PAIRS] [--overwrite]
              {check,repair} files [files ...]

位置引数

引数意味
modecheck または repair。check は監査のみを行います。repair は監査したうえで、対応範囲の作業が必要な場合に修復済みのコピーを書き出します。
files1 つ以上の STL パス、クォートしたグロブ、またはディレクトリ。ディレクトリはサブディレクトリを辿らずに走査され、拡張子が .stl(大文字小文字を区別しない)のファイルが対象になります。解決後のパスが重複するものは 1 回だけ処理されます。

何にもマッチしないグロブや、STL ファイルを含まないディレクトリは、どのファイルも処理する前にエラーになります。

オプション

オプションデフォルト意味
-h, --helpヘルプを表示して終了します。
--out-dir OUT_DIRrepaired修復済みファイルの出力先ディレクトリ。各出力は <input stem>-fixed.stl(入力ファイル名から拡張子を除いた部分に -fixed.stl を付けたもの)という名前になります。
--report REPORTstl-report.jsonバッチ JSON レポートのパス。末尾は .json でなければならず、入力ファイルのいずれとも一致してはいけません。
--weld-tolerance WELD_TOLERANCE0.0メッシュに既存の短いエッジを潰す処理を明示的に有効にします。単位は STL の座標単位です。0 は近似的な溶接を行わないことを意味します。repair モード専用です。
--max-faces MAX_FACES20000厳密な交差スキャンは、面数がこの値を超えるメッシュを拒否します。
--max-pairs MAX_PAIRS2000000厳密な交差スキャンは、候補となる三角形ペアの数がこの値を超えると停止します。
--overwriteオフ既存の、無関係な通常ファイルであるレポートや出力の置き換えを許可します。入力 STL や同じ実行の出力は、リンク経由であっても決して置き換えません。

検証ルール

  • --weld-tolerance は有限かつ非負でなければなりません。--max-faces と --max-pairs は 1 以上でなければなりません。

  • check と一緒に --weld-tolerance を指定すると拒否されます。これは repair 用のオプションです。

  • レポートのパスは末尾が .json で、どの入力とも異なり、--overwrite を指定しない限り既に存在していてはいけません。

  • 出力パス(<out-dir>/<stem>-fixed.stl)が入力と一致する場合や、2 つの入力のベース名が同じ場合は、処理を始める前に実行が拒否されます。

  • 出力ファイルは、--overwrite を指定しない限り既に存在していてはいけません(この確認は修復が必要なファイルに対してのみ行われます)。

  • 大文字と小文字だけが異なるベース名の入力は、重複と同じく拒否されます。macOS の標準ボリュームでは出力名が同じファイルになるためです。

エイリアスからの保護

入力はパスだけでなくファイルの同一性で保護されます。シンボリックリンクやハードリンクは同じファイルの別名であり、CLI はリンク越しに書き込みません。

  • レポートのパスがシンボリックリンクである場合、または入力や既存の出力へのハードリンクである場合は、何も書き込む前に終了コード 2 で実行を中止します。

  • 出力のパスがシンボリックリンクである場合、または入力や同じ実行の別の出力へのハードリンクである場合は、そのファイルを error として記録します(終了コード 2)。他のファイルの処理は続きます。

  • --overwrite を指定すると、無関係な通常ファイルは新しいファイルをリネームで重ねる形で置き換えられ、パーミッションは保たれます。指定しない場合、新しい名前は排他的に作成されます。

  • 書き込みのたびに保存したバイト列を読み戻します。修復した出力と入力のハッシュは、レポートを書く前と後にもう一度確認します。変化したファイルは error として報告し、レポートを書いた後に変化が見つかった場合はレポートを書き直します。

Note

--max-faces や --max-pairs に達した場合、クリーンなスキャンとして報告されることは決してありません。そのファイルはエラーとして記録され、実行は終了コード 2 で終わります。出力と終了コードを参照してください。

溶接許容値

デフォルトの 0 では、頂点は一切マージされません。正の値を指定すると、メッシュに既に存在し、長さが許容値以下のエッジが潰されます。接続されていない近接した壁同士をマージすることは決してありません。メンバーが許容値より大きく移動してしまうクラスタはスキップされます。正の許容値が指定され、かつ高さが 1e-5 未満の三角形がメッシュにある場合、そのファイルは作業が必要なものとして扱われます。適用された許容値、マージ数、最大変位はレポートの repair_details に記録されます。

Revision History

Takeshi Takatsudo作成: 2026-10-16T13:26:56+09:00更新: 2026-11-08T00:43:10+09:00