目標を固定
入力メッシュの頂点と接続関係を保持。まず「どの形に戻したいか」を決めます。
RESEARCH NOTE / 01 FGF 変形補正 PoC
冷えたあとに、目標の形へ。
造形前の形状を補正する、小さな研究。
ペレットから樹脂を積層するFGF(Fused Granulate Fabrication)。造形・冷却で生じる変形を見越して、入力形状を調整する方法を探っています。
収縮と補正を体験する01 / PRINCIPLE
目標は固定したまま、候補形状だけを更新。予測した形と目標の差を測り、評価済み候補の中から最も誤差の小さいものを残します。
入力メッシュの頂点と接続関係を保持。まず「どの形に戻したいか」を決めます。
P0では固定原点から一様に縮むと仮定。冷却の物理解析ではなく、答えのわかる試験モデルです。
対応する頂点同士の誤差を使い、候補座標を反対方向へ動かして再評価します。
予測 = 原点 + (候補 − 原点) × (1 − 収縮率)縮尺合わせや剛体位置合わせはせず、固定した頂点IDの対応で比較します。
02 / INTERACTIVE EXPLAINER
一方向だけの一様収縮を考えてみます。収縮率を変えると、補正前の寸法と理想的な補正寸法が変わります。
TARGET LENGTH
100 mm
2%は試験用の仮定。材料の実測値ではありません。
補正なしの端点誤差:2.000 mm
理想補正寸法 = 100 ÷ (1 − 収縮率) / バーは共通の長さ基準で表示
ブラウザー内の簡単な式で計算します。Pythonコアの実行、反復補正、3D解析、実物の予測ではありません。この100 mmの端点誤差と、下記検証の3D最大点誤差は別の指標です。
03 / IMPLEMENTATION
Python + NumPyのローカルCLI。P0の反復補正、入力・設定・評価結果の保存、読戻し検証までを実装しています。
最大点誤差が最小の候補を保存。悪化すると補正率を下げます。目標形状・接続関係は変えません。
元入力、単位、設定、各反復、誤差CSV、最終メッシュを保存。NPZが計算原本です。
SHA-256、再予測、誤差、最良候補と出力の一致を確認。ハッシュは破損検出用で、署名ではありません。
| 形式 | 現在の対応 | 制限・確認範囲 |
|---|---|---|
| OBJ / STL | 取込対応 | 単位指定が必須。複数対象は選択し、勝手に結合・修復しません。 |
| 3dm | meshのみ | 宣言単位をmmへ変換。Brep・instance・curveは非対応。Rhino側のメッシュ化ブリッジは未実装です。 |
| STEP / STP | 任意CAD依存 | Linuxで生成ソリッドの取込・寸法照合に成功。Macの実読込は未確認。組立階層・元単位の抽出・曲面近似の収束は未完了です。 |
| 補正形状の出力 | NPZ / OBJ / STL | 最終メッシュはmm。STL読込先でもmmを指定。補正STEP・3dm・NURBS復元は未実装です。 |
熱・構造解析、反り、実材料の冷却予測、実機対応、計算再開、ソフト本体のUI/API。自己交差・水密性・薄肉化・ベッド接触・造形範囲・スライス可否も判定しません。Runの処理終了は、収束や印刷可能性の保証ではありません。
04 / EVIDENCE — 2026.10.12
以下は既知の試験モデルとソフトウェアの検証結果です。実際の造形物を測った値ではありません。
P0 / 3D MAX POINT ERROR
0.009201mm
100 × 2 × 10 mmの壁。仮定収縮2%、補正率0.5で8回。対応頂点間の3Dユークリッド距離の最大値。
LOCAL / CORE TESTS
49passed
STEPの実読込は1件skip。3dm mesh、単位変換、保存破損検出、仮想経路往復、実機出力拒否などを確認。
LINUX / CI
3jobs passed
コア+3dmの2ジョブ、CAD取込の1ジョブが成功。生成STEPソリッドも寸法照合済み。全OS・任意CADの保証ではありません。
05 / ROADMAP
モデルを複雑にする前に、検証できる条件を一段ずつ増やします。後続段階は計画であり、実装済みの性能ではありません。
実装・数値検証済み
固定目標、反復補正、停止理由、最良候補、保存と読戻し。
未実装 / 計画
積層の時刻と冷却を結び、材料グレード・物性・仮定を整理する。
未実装 / 計画
小変形モデルを接続し、単純な形状で予測と補正を検証する。
未検証 / 装置条件の確認から
実材料、押出校正、装置別経路、スライサー、印刷用G-codeを整備。装置の安全と実測精度を確認する。
06 / LOCAL CLI
ソフト本体を別途用意し、Python 3.11以上でコア依存を導入した環境の例です。このサイトからソフト本体の取得・計算・ファイル送信はできません。
出力先は存在しないフォルダを指定。verifyは保存結果を照合し、statusは状態を表示します。
python examples/generate_demo.py
fgf validate examples/generated/wall_mm.obj --units mm
fgf run examples/generated/wall_mm.obj \
--units mm --config examples/p0.json --out runs/demo
fgf verify runs/demo
fgf status runs/demo本体のセットアップ後に実行する例。端末上のPythonとCLIが有効な環境を想定しています。
07 / QUESTIONS
できません。研究の内容を紹介するサイトで、操作できるのは説明用の1Dデモだけです。Pythonコアや形状アップロード、3D計算機能は接続していません。
実材料の値としては使えません。2%はP0検証の仮定値です。材料グレード・温度・造形条件・測定条件を揃えた予測精度は、まだ確認していません。
いいえ。既知の収縮モデルに対し、対応する3D頂点間の最大距離を測った数値です。100 mmの1D端点誤差とも、造形物を測定した精度とも異なります。
送れません。research-wallは指定寸法から独立した直線壁経路を作る研究機能で、補正メッシュのスライスではありません。virtual_machine_RESEARCH_ONLY.gcodeはEをmm³と定義した仮想方言。熱・構造予測への接続も未実装です。実機印刷用出力は明示的に拒否し、ファイル名を変えても印刷用にはなりません。
3dmはmeshのみ対応し、Brep・instance・curveは非対応です。STEPは任意CAD依存が必要で、Linuxの生成ソリッドは成功、Macの実読込は未確認です。ユーザーの実ファイル、組立階層、曲面近似の収束、任意OSでの互換性は未確認です。
計算再開は非対応です。resumeは明示的に拒否します。設定と評価済み結果は保存しますが、途中状態を流用せず、新しいRunとして実行してください。