03 / STEP DATA

CADを開かずに、STEPから部品構成・配置を一覧化。

STEPデータを直接解析し、部品名・親子構成・使用箇所・位置や向きをCSV・JSONへ出力する処理を実装しました。部品情報の確認・転記や、後工程のシステムへデータを渡す作業に活用できるかを検証しています。

構成・配置の検証は、対応するSTEPの表現を限定した自作データが対象です。実際の部品表やシステム連携に使うには、出力元CADと必要な項目を確認し、名称・配置・単位が業務上の意味と一致するかを確かめます。

01

欲しい情報を、項目ごとに分ける

ご相談では、例えば次のような表を作成いたします。

欲しい項目 確認すること
部品名・識別子 ファイル内にある名称が、業務で使う部品名や品番に対応するか
構成・使用箇所 部品の定義と、組み付けられた箇所を区別できるか
配置 座標や向き、基準となる座標系を解釈できるか
単位 寸法や座標の単位を確認できるか
形状から計算したい量 必要な形状が読み取れ、計算結果を確かめられるか
材質・社内管理情報 必要な属性が含まれているか、別の台帳との照合が必要か

これは取得済みの機能一覧ではなく、対象ファイルに対して確認する項目です。

02

部品の種類・使用箇所・配置を分けて取り出す

STEPは、異なるCADの間で形状や製品情報を交換するファイル形式です。公開研究「Research Notes」では、その中のAP242という仕様に沿った限定的なデータを対象に、Pythonの解析器を実装しました。

ファイル内の識別番号と参照関係をたどり、部品の名称・親子構成を取得します。部品そのものの定義と、組立内の使用箇所を分け、位置・回転・入れ子の配置を計算。対応する長さの単位をミリメートルにそろえます。結果はCSV・JSONへ、読み取り元の記録とともに出力します。

動作確認では、読めない条件も含めた

組立の検証には、自作のSTEPファイル17件を使いました。90度回転、二段の組立、インチからの換算など、あらかじめ正しい結果を決めた例と、未対応・不正な例を組み合わせています。

処理の結果 件数と確認した条件
読み取り・計算を完了 5件。配置、部品の再利用、単位換算など
保留して理由を記録 6件。未対応の配置方法、単位の欠落、処理上限など
不正として拒否 6件。参照の不整合、組立の循環など

17件すべてが、事前に決めた扱いと一致しました。「17件中5件しか読めなかった」という性能評価ではなく、不正・未対応のデータを混ぜた動作確認です。

同じボルトを3か所で使う例では、部品の定義は一つのまま、三つの使用箇所と配置を保持しました。二段の組立では親の90度回転を子にも反映し、インチの配置では換算後の25.4mmの移動を確認しています。

この結果は、自作した形状と対応を限定したAP242表現に対するものです。任意のSTEP、一般的な材質・社内属性、形状の干渉や元の設計履歴まで読み取れることは実証していません。

部品表への転記などに使う場合は、実際の出力元CADとサンプルで、名称・使用数・配置・単位が業務上の意味と一致するかを確認する進め方をご提案いたします。

組立・配置の検証と制約(GitHub) / 17件の結果CSV / 機能別の対応範囲

03

公開された部品のSTEPで、形状の読み取りも検証

名称や配置の読み取りとは別に、形状そのものを調べる処理も検証しました。対象は、CadQuery・build123d・u-bloxが公開している6件のSTEPです。ブラケットやねじ、電子部品モジュールを含み、5種類の形状を扱っています。SAMモジュールは、同じモデルを異なる2形式で確認しました。

外部の公開STEPを読み込んだ例

ブラケット・ねじ・電子部品で確認する

NEMA-17ブラケット

build123dの公開モデル

取り付け穴と中央の開口を持つ、L字形のNEMA-17用ブラケット。公開STEPから描画。

形状の構成 1ソリッド・42面

M6皿ねじ

build123dの公開モデル

皿頭とねじ山を持つM6ねじ。公開STEPから描画。

形状の構成 1ソリッド・28面

EMMY-W1モジュール

u-bloxの公開モデル

複数の立体で構成されたEMMY-W1電子部品モジュール。立体の区別用に色を付けて公開STEPから描画。

形状の構成 54ソリッド・399面

ソリッドは、閉じた立体を表すCAD上の単位です。図は検証に使ったSTEPから描画しました。各モデルを枠に合わせて拡大・縮小しており、図どうしの縮尺は異なります。色は形状の識別用で、元の色や材質を表しません。
出典:build123d contributors(Apache-2.0)、u-blox。元データ・ライセンス・描画方法

6件とも形状を読み込み、STEPへ再出力して読み直した後も、体積・表面積・外接範囲(形状を囲む箱の寸法・位置)が定めた許容差に収まることを確認しました。面・稜線などの個数も一致しました。

ただし、読み込めたことと、すべての面を詳しく確認できたことは別です。面の向き・曲率や、面の境界曲線を調べた範囲も記録しています。

モデル(ファイル数) 詳細解析で確認した範囲
立方体と円柱(1件) 全9面を解析。今回の検査条件では不一致なし。
ブラケット(1件) 全42面を解析。今回の検査条件では不一致なし。
M6皿ねじ(1件) 全28面を解析。今回の検査条件では不一致なし。
SAMモジュール(2件) STEPの仕様が異なるAP203・AP214の2形式で各98面を解析。厳しい境界曲線の検査では、各57面に不一致が残りました。
EMMY-W1(1件) 399面のうち256面を解析。設定した処理上限により、残る143面の詳細解析は未実施です。

SAMの不一致は、面の境界を表す2種類の曲線を比べた検査で検出したものです。形状計算ライブラリによる立体全体の有効性の判定は通っており、元モデルが使用不能という意味ではありません。

業務への適用では、こうした結果を使い、体積などを一覧にする処理と、追加確認が必要なファイルを分ける仕組みをご提案いたします。出力元CADが変わっても同じ結果になるかは、実際のファイルで確認が必要です。

技術担当の方へ:再出力の確認条件と対応範囲
  • 同じ形状計算ライブラリOpen CASCADE(OCCT)で書き出し・再読み込みを行いました。別のCADとの互換性や、形状の全点での一致を保証する検証ではありません。
  • 体積・表面積の許容差は、各単位で絶対値0.000001と元の値の0.0001%の大きい方。外接範囲は0.0001mm以内とし、面・稜線・頂点などの個数も照合しました。
  • 各面の検査は、選んだ位置や境界上の点を調べる方法です。全位置の形状精度を証明したものではありません。
  • この6件では、AP203・AP214の製品構成などの意味解釈と、編集用の形状構成の復元は未対応です。名称・材質・寸法公差などがすべて取得できた結果ではありません。
  • 再出力の対象は形状です。元の色・部品名・製品構成・材質・注記・組立拘束を引き継ぐ検証は含みません。

公開STEPの検証条件と限界(GitHub) / 6件の結果CSV

04

「見つからない情報」を、そのまま扱える仕組みにする

部品名が空欄、必要な属性が含まれない、読み取り対象外の構成がある。こうした場合に、別の情報を推測で埋めてしまうと、あとから判断の根拠が分からなくなります。

業務用ツールでは、取得できた値と、取得できなかった項目を分けて出力する設計をご提案いたします。

  • どのファイルから取得したか。
  • どの項目を取得できたか。
  • 空欄なのか、対象外なのか、確認が必要なのか。
  • 別の台帳や元のCAD情報と照合する必要があるか。

一覧を作ることに加え、確認が必要な箇所を見つけられることを重視しております。

05

一つの転記作業から、自動化を考える

例えば「複数のSTEPを開き、必要な情報をExcelへ入力している」のであれば、最初に次を確認いたします。

  1. 現在使っているExcelの列と、転記する情報を整理する。
  2. 出力元や形状が異なるサンプルを選ぶ。
  3. 必要な情報の取得可否と、読み取り結果を確認する。
  4. 取得できる項目と要確認項目を一覧にする。
  5. 一括処理する範囲と、人が確認する手順を決める。

最初から多くの情報を集めるより、実際に時間がかかっている転記項目から確認すると、開発する内容を絞れます。

06

欲しい一覧の形を、お聞かせください

使用しているCAD、STEPの出力方法、現在の転記先が分かると、確認を進めやすくなります。サンプルを共有する前に、対象項目だけを整理するご相談も承ります。

STEPから取り出したい情報を相談する

CAD・設計自動化の内容を見る

関連:CADを開かずに、新旧STEPの変更箇所を比較。

技術担当の方へ:STEP・形状処理の公開研究