RedRing の最初のプレビュー版 v0.1.0 を、2026年11月3日に公開しました。STL を読み込み、3軸の走査線パスを計算し、その結果を切削シミュレーションで確かめるまでを、1つのアプリで通して試せます。
RedRing は、Rust と wgpu で開発している CAD/CAM の研究用プラットフォームです。今回の版では、機能の多さよりも、入力から検証までが一本の流れでつながることを優先しました。
ご注意:v0.1.0 は NC を出力しません。ツールパスは切削シミュレーションで確かめるためのもので、実際の加工には使えません。
v0.1.0 でできること
1. STL読み込み
メニューの「ファイル」→「読み込み…」、またはウィンドウへのドロップで STL を読み込みます。ASCII と Binary のどちらにも対応しています。読み込んだ形状は、そのまま加工の対象になります。
2. 走査線パス計算
逆オフセット法で、ボールエンドミルとフラットエンドミルの3軸走査線パスを生成します。加工条件のウィンドウ(Shift+M)で、工具、送り方(ダウンカット・アップカット・ジグザグ)、ピックフィード、送り、工具の移動範囲、素材の余裕と精度を指定できます。画面は日本語と英語に対応しています。
既定の条件は、ボールエンドミル φ10、ピックフィード 2 mm、送り 1200 mm/min です。この条件では、平らな面のパス間に残る山の高さ(カスプハイト)の上限が 0.1010 mm と表示されます。傾いた面では変わるため、目安の値です。
3. 切削シミュレーション
計算したパスに沿って素材を削り、その過程をアニメーションで確認できます。コマ送り、区間の端点への移動、進捗バーでのスクラブ、自動再生に対応しています。条件を変えて取り込み直してもカメラの向きと拡大を保つため、同じ場所を見比べられます。
最後のフレームでは、素材の面を製品形状と比較して色分けします。
| 色(既定) | 意味 |
|---|---|
| 赤 | 削り込み:製品形状の内側へ、トレランスより深く削った所 |
| 緑 | トレランスの中:製品形状からの距離がトレランス以内の所 |
| 青 | 削り残し:製品形状の外側へ、トレランスより離れた所 |
技術的な見どころ:トレランスを点の間でも保証する
今回もっとも力を入れたのは、ツールパスの点と点の間です。CL(工具先端が通る面)の上に点を等間隔で置いて直線で結ぶ方法では、点の上は正しくても、その間の直線が急な壁の CL 面の下を通ることがあります。サンプル間隔を細かくしても誤差は比例して小さくなるだけで、計算時間が先に増えていきます。
v0.1.0 では、点の間隔を細かくするのではなく、隣り合う2点の区間ごとに逆オフセット形状の要素を調べ、直線より上に出る量の最大を閉じた式で求めます。
- トレランスを超えた区間にだけ点を足します
- CL 面の段差では、高い側の高さのまま進んでから下ろします
- トレランスは 0.001 mm で、STL の入力ではこの範囲に経路を収めます
開発時にサンプルデータで測った値は次のとおりです(ボールエンドミル φ10、ピックフィード 2 mm、素材の精度 0.05 mm、release ビルド)。
| 項目 | 等間隔 1.0 mm の点を結ぶだけの場合 | 点の間を確かめる場合 |
|---|---|---|
| 経路が CL 面より下を通る量の最大 | 58.97 mm | 0.001 mm |
| 切削シミュレーションで測った最も深い削り込み | 0.758 mm | 0.0008 mm |
点を足すのは必要な所だけなので、計算時間も実用的な範囲に収まりました。同じ条件で、ツールパスの計算は約1.8秒、切削シミュレーションを含むジョブ全体は約5.8秒でした。これらの値は形状と環境によって変わります。
切削シミュレーションの素材には、トリデクセル(X・Y・Z の3方向の格子線上に、材料のある区間を持つ表現)を採用しました。7月の内部ロジック解説で紹介した Octree ベースの素材から置き換えたもので、面の向きによらず格子の間隔程度の精度で形状を表せます。
試し方
Rust の環境があれば、ソースからビルドして試せます。各 OS の前提条件は README をご覧ください。
git clone --branch v0.1.0 https://github.com/RedRing2020/RedRing.git
cd RedRing
cargo run --releaseCode language: PHP (php)
- STL ファイルをウィンドウにドロップします
Shift+Mで加工条件のウィンドウを開き、「投入」を押します- 実行が終わったら「取り込み」を押します
Spaceで自動再生します
詳しい操作は切削シミュレーションのマニュアルにまとめています。
現時点の主な制約
- NC を出力しません
- パス間のエアカットとつなぎの移動(アプローチ・リトラクト)はありません。シミュレーションでは、工具はパスの間を跳びます
- 工具の半径より狭い隙間や穴は、両側を1本のパスでつなぎます。工具が形状に接しない所にある小さな形状は、見落として削り残すことがあります
- 工具はボールエンドミルとフラットエンドミルだけで、工具の登録機能はありません
- ジョブは同じプロセスの中で実行するため、実行が終わるまで画面が止まります
そのほかの制約は、マニュアルの「既知の制約」に記載しています。
今後の予定
- v0.2.0:工程、ジョブ、工具の管理
- v0.3.0:つなぎの移動と NC の出力
管理機能まで揃うのを待たずに公開したのは、実際に使った方の意見を設計に反映するためです。試していただいた感想や不具合の報告は、GitHub Issues でお待ちしています。開発への参加についてはContributors募集のページをご覧ください。