ホーム / Gadget / OS / Android / AndroidのSTEPビューアを進化させたら、穴径から加工工程・推奨工具まで表示できるようになった

AndroidのSTEPビューアを進化させたら、穴径から加工工程・推奨工具まで表示できるようになった

先日、AndroidスマートフォンでSTEPファイルを表示・比較できるアプリ「STEP DIFF VIEWER」をベータ公開しました。

前回の記事では、

  • AndroidスマートフォンでSTEPファイルを表示
  • 加工前(Before)と加工後(After)のモデルを表示
  • 2つのモデルを重ね合わせて形状の違いを確認
  • 断面表示

といった機能を紹介しました。

目指していたのは、高価で高機能なCAD/CAMソフトの代替ではありません。

「PCでCADを立ち上げるほどではないけれど、手元ですぐSTEPファイルを確認したい」

そんなときに使える小さなツールです。

ところが、開発を続けているうちに一つ疑問が出てきました。

STEPファイルから3D形状を読み取れるのであれば、単に「見る」だけで終わらせる必要はないのではないか。

そこで今回は、STEP DIFF VIEWERに「形状解析」機能を追加しました。

STEP DIFF VIEW (ベータ版)
対応OS:Android 16 / 17(その他のバージョンは未検証)
動作確認端末:Pixel 10 Pro Fold / Pixel 11 Pro Fold / Xiaomi Poco F7Pro
対応形式:STEP(.step / .stp)
料金:無料(ベータ版)
URL:👉 [github]


STEPファイルから形状を解析する

今回追加した形状解析では、STEPファイルを読み込むと、モデルの形状から次のような情報を取得します。

  • 外形寸法
  • 概算体積
  • 穴径
  • 穴深さ
  • 貫通穴
  • 座ぐり・段付き穴

検出した穴には3Dモデル上にラベルを表示します。

例えば「φ10」「φ20」といった径をモデル上で確認できるので、スマートフォンでSTEPファイルを開いて、そのまま主要な穴形状を確認できます。

単に3Dモデルを眺めるだけだったアプリから、少しずつ「形状を読み取るアプリ」に変わってきました。

穴を認識するだけではなく、加工順も推定する

今回さらに実験したのが、加工工程の推定です。

例えば段付き穴の場合、完成形状だけを見ると複数の径を持っています。

そこで検出した径や深さ、形状の関係から、

「まずこの径を加工し、その後こちらを加工する」

といった穴加工の依存関係を判定し、推奨加工順として表示するようにしました。

また、それぞれの工程について推奨工具も表示します。

3Dモデル上の穴ラベル、または工程一覧をタップすると、対象となる加工箇所を強調表示し、対応する工具を確認できます。

つまり現在は、

STEPファイルを読み込む

形状を解析する

穴・内径形状を検出する

加工順を推定する

推奨工具を表示する

というところまで動くようになっています。

最初に作ったときは「スマホでSTEPを見られれば便利だろう」という程度だったので、自分でもだいぶ違うアプリになってきたと感じています。

ただし、まだCAMではない

ここは重要なので明記しておきます。

現時点のSTEP DIFF VIEWERが行っているのは、STEP形状から取得できる幾何情報を使った推定です。

材質、工作機械、ワークの保持方法、切削条件、実際のCAMツールパスなどは考慮していません。

また、現在対応している加工工程の推定は、主に穴・内径側の切削加工です。

外径旋削、端面加工、外径仕上げなどについては、今後対応を検討しています。

したがって、表示される工程や工具はあくまで参考情報です。

実際の製造工程を決定するためのCAMではなく、

「STEP形状から、どこまで加工情報を自動的に読み取れるか」

を試している段階だと考えてください。

次にやってみたいのは「連番STEP」の解析

そして、ここからもう一段面白いことができそうだと考えています。

製造工程によっては、

素材

第1工程

第2工程

第3工程

完成形状

というように、加工工程ごとのSTEPファイルが存在する場合があります。

例えば、

001.step
002.step
003.step
004.step
005.step

といった複数のSTEPファイルをまとめて読み込ませます。

すると、

001 → 002で何が削られたのか

002 → 003で何が削られたのか

を順番に解析できます。

これは、今のSTEP DIFF VIEWERが持っている「Before / Diff / After」という考え方を、そのまま複数工程に拡張したものです。

単体の完成形状だけから加工方法を推測するのではなく、

加工前と加工後の形状変化から「何を加工したのか」を推定する。

こちらの方が、加工工程を判断する材料としては面白そうです。

例えば、

素材

端面加工

外径加工

穴加工

内径加工

仕上げ

という工程があった場合、それぞれのSTEP間で変化した形状を解析します。

そして、

形状差分

加工フィーチャーの判定

加工工程の推定

推奨工具の提示

までつなげられないかと考えています。

「形を見る」から「加工を読む」へ

最初にSTEP DIFF VIEWERを作った目的は、とても単純でした。

スマートフォンでSTEPファイルを見たい。

そこから2つのSTEPを重ねて、

形状の違いを見たい。

さらに今回、

STEPの形状そのものを解析したい。

というところまで進みました。

そして次に考えているのが、

複数のSTEPの変化から加工工程を読み取りたい。

という方向です。

整理すると、

STEP Viewer

STEP Diff Viewer

Shape Analyzer

Process Analyzer

という進化になります。

こうなってくると「STEP DIFF VIEWER」という名前すら、そのうち実態と合わなくなるかもしれません。

AIはその先でもいい

最近は何でもAIを組み込みたくなりますが、このアプリについては、今のところAIを入れること自体を目的にはしていません。

STEPには、面、円筒、径、深さ、位置関係など、もともと多くの幾何情報があります。

まずはそれをきちんと解析して、

「どんな形状なのか」

「どこが変化したのか」

「どんな加工が行われた可能性があるのか」

を構造化する。

その上で将来的にAIを使うのであれば、

「この部品はどんな順番で加工するのか」

「なぜこの工具が候補になったのか」

「この工程を新人向けに説明して」

といった、人間とのインターフェース部分に使う方が面白いと考えています。

AIに全部考えさせるのではなく、

幾何解析で分かることは幾何解析で処理し、AIが得意な部分だけAIに任せる。

その方が製造業向けツールとしても筋が良さそうです。

Codexを使うと個人開発の速度がかなり変わる

今回の機能追加ではCodexもかなり使っています。

以前なら、

「穴を認識したい」
「段付き穴の関係を判定したい」
「3Dモデル上にラベルを出したい」
「加工工程と3D表示を連動させたい」

と考えても、個人開発では実装時間を考えて後回しにしていたと思います。

生成AIを開発に使うことで、アイデアを思いついてから実機で試すまでの時間がかなり短くなりました。

もちろん、AIに指示すれば何でも正しく作ってくれるわけではありません。

特にCADや加工のような領域では、

「何を作らせるか」
「その判定は本当に正しいのか」
「どこまでを参考情報として扱うべきか」

を人間側で考える必要があります。

ただ、個人でも専門的なアプリを試作して検証するハードルが大きく下がったことは確かです。

まだダウンロードは0件です

ちなみに、ベータ版を公開してみたものの、現時点ではダウンロード数はまだ0件です。

アプリを作れることと、使ってもらえることは別問題でした。

GitHubからAPKを直接インストールする方式なので、一般的なAndroidアプリと比べれば導入のハードルも高めです。

そもそも、

「AndroidスマートフォンでSTEPファイルを開きたい人」

という時点で、かなりニッチです。

さらに加工工程まで見たい人となると、相当にマニアックなアプリになってきました。

しかし個人開発なので、今のところそれでいいと思っています。

まずは自分自身が、

「これ、スマホでできたら面白いのでは?」

と思うところまで作ってみる。

そして実際に動かしてみる。

そこから本当に現場で使えるものなのかを考える。

この順番で、もう少し実験を続けてみます。

STEP DIFF VIEWERは現在ベータ版として公開しています。

実際のSTEPデータで試して、

「この形状は認識できなかった」
「こんな加工も判定できると便利」
「こういう工程で使えそう」

といったものがあれば、今後の開発材料にしていきたいと思います。