C#ATIA

↑タイトル詐欺 主にFusion360API 偶にCATIA V5 VBA(絶賛ネタ切れ中)

ザックリリバースエンジニアリングモデリング1

個人的にスカルプト機能を活かしたい理由の一つが、リバースエンジニアリング
モデリングです。幸い、有り難い事に専用ソフトとまでは行かないものの、
Fusion360にはそこそこの機能が備わっています。

コマンドの機能等、小原さんのブログで詳しく機能を紹介してくれています。
Fusion360-メッシュから断面スケッチしてソリッドボディ作成の流れ : Home3Ddo 家で気軽に3Dを楽しめる時代へ
正直な所、他で紹介されているサイト見当たりません・・・。

例に出されているデータは恐らくCADデータから作成されたSTLデータ
だろうと思われる為、非常に綺麗です。
3Dスキャン等で得られるデータは、あのように綺麗な状態ではありませんよね。
平面のように見える部分はボコボコですし、円弧に見える部分も中心の
取得は出来ない状態です。

図面からモデリングを行う場合は基準のボスや穴や壁を中心として
始めると思うのですが、3Dスキャンデータの場合はそれらを取得する
ことも困難です。この辺の取っ掛かりとなる方法を模索してみました。

3Dスキャンデータを作り上げる事自体も困難なのが本音ですが、そこは
割愛。お手頃そうなこちらのデータをお借りすることにします。
3D CAD Model Collection | GrabCAD Community Library

※あくまで我流な考えを基にした手法です。専門家の方がご覧になり
誤った部分がありましたら、ご指摘頂けると非常に助かります。



○インポート
小原さんの所で丁寧な説明がされています。スキャンデータを移動するか?
どうかも、正直好みの分かれるところですが、Fusion360では座標系が
作成出来ないため、移動し大体の向きなども合わせてみます。
(普段CATIAや他ソフトでは、インポートのまま作業します)
f:id:kandennti:20190213140630p:plain
ダイアログのビューキューブで画面方向を整え、マニュピュレータ-の角度を
弄りながら、「中心」「地面に移動」を押しつつ・・・のような作業を繰り返し
大体の位置・向きを合わせます。・・この作業、Fusion360だと楽だな。

○メッシュの処理
インポートした状態のメッシュを見てみると、至る所に不完全な穴があります。
f:id:kandennti:20190213140641p:plain
こんなの普通で、むしろ良く取れているほうです。僕だったら途中で諦めて
もっとボロボロです。
これらを処理する為の機能は備わっていますが、個人的にはそれらの処理はしません。
あくまで我流な考えなのですが、再メッシュは特に行いません。変形が大きく
元の形状からかけ離れる場合が多い為です。但し、操作が困難な程重いデータの場合は
「削減」コマンドは使います。後は緑部分のごみは削除します。
(サンプルとして、リアルな感じで有りがたいです)
3Dプリンタに流したい とかであれば穴埋め・スムージングはすべきです。

○基準の作成と移動
今回の模索している部分がここです。何処を基準にするか?は自由なのですが
一応願望として
f:id:kandennti:20190213140822p:plain
XY基準:大きい穴の中心
X軸:2つの穴の中心を結んだ赤いライン
Z方向:緑で囲んだ領域の平面の向き
Z位置:PLと思われる真ん中っぽい青いライン
を狙ってみます。
「2部品をくっ付けた部分から平面を取得して良いのか?」とも感じますが
ザックリやります。他に大きな平面を取得できそうな場所も無さそうなので。

まずは、XY基準です。
一旦「メッシュ」の作業から抜けます。スケッチが利用出来ない為です。

この辺からは小原さんのブログの動画をご覧になられると良いのですが、
XY編面を元にスケッチを作り、「メッシュ断面を作成」でラインを取得
します。(無駄なスケッチが出来るのは何とか成らないのかな?)
f:id:kandennti:20190213140845p:plain

「メッシュ断面を作成」のラインは、スケッチのラインとしては利用出来ない為、
「曲線をメッシュ断面にフィット」を使います。先程作成したスケッチに
再度入り作業します。
f:id:kandennti:20190213140857p:plain
「フィットさせる曲線のタイプ」を今回は、円か円弧にし穴っぽいラインを
選択すれば円・円弧が出来ます。本来ヘロヘロの曲線のはずなのですが
(恐らく最小二乗法)円弧を算出してくれるこの機能は助かります。
f:id:kandennti:20190213140920p:plain
2穴の中心を結ぶラインと水平線を作成し、角度を調べておきます。

一旦スケッチを抜け、移動します。
f:id:kandennti:20190213140910p:plain
残念なことに「メッシュ断面を作成」のラインは移動しません。
実行した時のみ様です。スケッチ要素を移動すれば良いのですが
まぁお好みで。
続いて先程調べておいた角度も直しておきます。

続いて、Z軸です。
実はメッシュ作業スペースに入ると「3点を通過する平面」でメッシュの
表面を選択出来ます。ですが・・・
f:id:kandennti:20190213140934p:plain
赤い四角3ヶ所を指定して出来たのが矢印の平面です。全然見当違いな
ものが出来上がります。詳しい経緯はわかりませんが、ポリゴンの法線
3ヶ所から出来上がるのかも知れません。とにかく使い物になりません。

他にメッシュか絡められそうなのはスカルプトの「プル」です。
スカルプトに入り平面を作成します。
f:id:kandennti:20190213140944p:plain
分割数はお好みで構いませんが、特に必要無い為最低限にしました。
(同じ色では見にくいため、メッシュは緑にしてます)

移動でも良いのですが、調整する為「フォームの編集」で近くまで
持って行き、頂点が狙った部分近くになるように変形させます。
f:id:kandennti:20190213141003p:plain

先程の頂点をメッシュに向ってプル!
f:id:kandennti:20190213141014p:plain
プルタイプは「サーフェス点」が良いと思います。

プルした点を元にすれば、「3点を通過する平面」でまともな
平面が作成出来ます。
f:id:kandennti:20190213141028p:plain
正直、こんな3点では不安なのですが、複数点から平面を作成する機能が
無い為、点の位置を変えて再度平面を作成し、「中立面」を利用するのも
良いかもしれません。
f:id:kandennti:20190213141038p:plain
但し、完璧を求めても無理です。よく見るとこの2部品は段が出来てます。
あくまでザックリ行きましょう。
f:id:kandennti:20190213141048p:plain

先程出来上がった平面をXZ・YZ平面で交差させて角度を調べ、
メッシュを回転させます。
f:id:kandennti:20190213141058p:plain
「0.11°なんてどうでもいいや」と思う方は、しなくても良いですが。

今回は平面っぽいメッシュから平面を作りましたが、
2つの異なるメッシュ断面から円弧を作成し、中心を結んだラインを
Z軸としても良いでしょうし、
f:id:kandennti:20190213141111p:plain

傾斜した部分から2平面を作成し、中間面を製作したりしても良いかと
思います。結局答えは無いので、自分の気持ちとの戦いです。
f:id:kandennti:20190213141122p:plain

残りはZ位置となる高さですが、上下対称的になりそうなこのあたりを
ばっさり切りたいので、平面を作成し
f:id:kandennti:20190213141145p:plain
Z移動量を調べて移動させます。
f:id:kandennti:20190213141157p:plain


全くモデリングが進んでいないのに、この作業量は面倒ですよね?
残念ながら、こんな感じの作業を複数回行った方が精度良くなります。
その為、確認も兼ねて2回以上はやった方が良いですよ。

・・・この続き書けるかな?(自信無し)