2018年4月4日

ポリゴンモデルをプロダクト系で使えるか?


ウチの会社は建築だけじゃなく、少しですがプロダクト系のモデリングもします。
基本的にビジュアライゼーション用のモデルなので、Mayaや3ds maxで作ったポリゴンモデルです。
一方、プロダクト系ではNURBSやSOLID(Brep)といった、製造系のCADと相性がいいモデル表現形式が使われます。ParasolidとかACISといったソリッドモデリングカーネルを使ったCAD製品が多いと思います。


稀に、ウチで作ったポリゴンモデルをIGESかSTEPに変換して欲しいと依頼されることがあります。
新製品の開発や、金型制作に活かしたいとのことなのですが...。


結論から言って、一般的には、ポリゴンモデルは使えないと思います。




金型

一般的に、ポリゴンメッシュを金型製作に使うなんて無謀です。
ポリゴンメッシュのジオメリは、'カクカクの立体' です。一見、滑らかな曲面に見えても、それはスムーズシェーディングがかかって、そう見えているだけです。3Dプリンティングならまだしも、工作機に渡して出力できるようなものではないと思います。


リバースエンジニアリング

’現物の3Dスキャンから点群データを取得し、三角形パッチを生成してポリゴンメッシュにする。
そこにNURBSサーフェースを張って機械系3DCADでも扱えるデータとして書き出す。’
このようなリバースエンジニアリングの手法の一部を用いれば、ポリゴンモデルを機械系3DCADでも使えるように出来ます。
ただし、扱いやすい構成のサーフェースパッチが自動で出来あがるわけではないので、その後がなかなか大変だと思います。
そもそも、CG屋が作ったポリゴンモデルなんて大した精度じゃないので、それを元に作ったモデルを、'使える' と言えるのかどうか...。


サブディビジョンモデリング

Autodesk SpeedFormをご存知でしょうか?
ローポリのサブディビジョンモデリングみたいにNURBS曲面を作ることが出来きます。
元々、RhinocerosのアドオンだったT-Splineを取り込んだものですが、非常に自由度の高い曲面モデリングが可能です。
このような製品の中には、ポリゴンメッシュを取り込んでNURBSやBREPに変換出来きるものがあります。
この工程を経れば金型製作などの製造工程へデータを互換出来るかもしれません。
ただし、これも前述の理由で、精度的にはどうなのか?というものです。


Mesh to T-Spline

そもそも、ポリゴンメッシュの状態によっては、ちゃんと変換できません。
たとえば、レンダリング用のハイポリモデルとか、三角形や多角形のポリゴンをたくさん含むとか、そういうメッシュの変換は無理だと思います。というか、ツールの仕様上、あまり意味が無いです。
まず、適度なローポリでないと、その後の修正がほとんど出来ません。
さらに、整ったエッジフローでないと、形状が大きく崩れてしまいます。
新製品開発に使おうと考えるなら、メッシュの構成はとても重要です。

Quad

大変相性のいい形状です。
つまり、タテ・ヨコの格子状に編まれたようなメッシュの状態です。

Tri

意図した形状にならない場合があります。

N-Gon

意図した形状にならない場合があります。



メッシュをT-Splineに変換したもの


パラメトリックじゃない

なんとか変換したとしても、パラメトリックでもない3次元曲面のモデルで、どうやって寸法変更等の修正に対応するのか?と考えると、悩んでしまうかもしれません。せいぜいスケールギズモで伸縮するくらいだと思います。


リトポロジー

そのままでは使えないということなら、メッシュを下絵に、3DCADのネイティブツールでトレースすることになります。
CG業界では 'リトポ' と呼びます。
形状にもよると思いますが、これはなかなか面倒な作業です。
それなら、最初からきっちり寸法拘束を付けならがらモデリングしたほうが、結局、早いのでは?と思ってしまいます。


BREPに変換すると、変なパッチになっている



以上の理由から、ポリゴンモデルがあるからと言って、単純にそれを設計・製造で使えるわけではないのです。

2018年3月9日

3ds max 2017

ここのところ、ずーと3ds max 2017で仕事をしていました。
おかげで、だいぶ慣れました。
プラグインのせいなのか、Mayaに比べて不安定なのがイラッとしますが、まあ悪くないです。色々便利なところもあります。
MayaのようにMELに頼らなくても出来ることが多いし、なんせ色々簡単です。

アプリとしては、何か、後付機能山盛りで、まとまってなくて美しくない感じがします。
ただ、強力なツールであることには違いありません。

CAD

比較的、CADとの相性がいいので設計向きなんでしょうね。
Revitファイルなんか驚くほど簡単に取り込めます。
日本語のレイヤ名も問題ないので、日本語の入ったCADデータの取り込みも煩わしくないです。
DWGも結構うまく取り込めます。ただ、今回ちょっと気になったのは、円弧を含むポリラインが崩れたりする点です。取り込み前に分解しておくといいですね。

MAXScript

いくら便利機能の多い3ds maxといえども、仕事となると、いろいろ特定の作業用のツールが欲しくなります。
今の3ds maxでは、スクリプティングにPythonも使えるわけですが、もっぱら、MAXScriptです。
ネットに大量にあるコードの断片のおかげでスクリプティングが捗ります。ホント助かりますね。

Iray Plugin

今回の仕事ではレンダラーにIrayを使いました。
やっぱ、GPUレンダラーは早くて、簡単でキレイで最高です!
MentalRayなんてやってられません...。
とは言え、VCA様様です。
VCAは超強力な"モンスターGPUマシン"で、ノイズの無い美しいレンダリング画像が数分で出ます!



2018年1月6日

Revit : ファミリテンプレートの選択

ファミリを作るとき、大事なのがファミリテンプレートの選択です。
Revitのテンプレートは、ファミリの振る舞いを決めるとても重要なものです。
ここで注意しなければいけないのが、後から簡単に変えられないということです。
先日、このことでちょっと失敗したので、書いておきます。


ホスト

例えば壁基準のテンプレートを使えば、壁に吸い付き、壁の上を移動しながら位置決め出来るファミリが出来ます。
これを、壁を"ホスト"とするファミリといいます。
これはホストである壁が無いと配置できません。

天井基準の テンプレートから作ったファミリは、天井をホストとし、天井にだけ配置出来ます。
床基準のテンプレートから作ったファミリは、床をホストとし、床の上にだけ配置出来ます。
そして、ホストを持たないタイプのテンプレートを使えば、どこにでも配置出来る代わりに、面の上を動かして位置決めするなどといった、スマートな振る舞いが出来ません。


置換

プロジェクト上でファミリを置き換えたい時、プロパティのプルダウンメニューから置換先のファミリを選択する方法があります。
置換先のファミリがそのプロジェクトにすでに読み込まれてさえいれば、一番簡単で早い方法だと思います。

でもこの方法で置換出来ない場合があります。
それは、ホストの違うテンプレートで作られたファミリ同士の置換です。
また、ホストが同じでも、カテゴリが違う場合の置換もできません。

たとえば、家具を作るときはどのテンプレートを選択すべきか?
テーブルや椅子なら、大抵、床に置かれるわけだから、床基準でよくないか?とも思いますが、設計上は、さまざまなシチュエーションが考えられます。
床に置かない場合だってありえます。棚に椅子を飾って展示するインテリアショップだってあります。
ステップフロアーだったりすると、床基準のほうが配置しやすいかもしれません。( ※ステップフロアーを"床"で作った場合)

Revitの使い方次第なのですが、置換を多用するようなら、ファミリテンプレートを統一しておかないといけません。


テンプレートを変更したい場合

じゃあ、間違えてしまったので、後から変更したいという場合、どうしたらよいのか?
最初に書いたように、後からは簡単に修正できません。
カテゴリは修正できますが、ホストは変えられません。
プロパティで簡単に変更出来たらいいのですが、今のところそれは出来ません。

検索してみると、ジオメトリだけでも変換してしまおうとする例が見つかりましたが、ファミリパラメータは保持されないし、工程もちょっと面倒。基本的に変換はできないと思ったほうがいいです。

Revit APIを使えば、面基準のファミリに変換することはできるかもしれません。ただ、それだけです。今のところ、その他の変換はできません。

結局、

手動でコピペするのが一番早いようです。
たとえば、床基準のファミリを、ホスト無しの一般テンプレートにしたい場合は、
モデルを新規に作ったファミリファイルにコピペ、位置修正した後、パラメーターの修正、関連付けなどを手動でやる必要があります。




2017年11月12日

スクリプトを使って作業を効率化!



「 スクリプト(マクロ)を使って作業を効率化 !」
ネットでよく見かける文言ですが、実際、実務に取り入れている人はどれほどいるのでしょうか?


最近、新人教育的なことをやっているのですが、「日頃の作業で困っていることない?」って訊いても、何も返ってこない...。
何か作業していて、面倒だなぁとか、もっと簡単な方法ないかなぁ?とか思わないのだろうかと。


そんなに漫然と仕事しているのかとも思ってしまいますが、どうも、そういうことではないらしいです。
彼らは彼らなりに一生懸命仕事しているのです。
ただ、そんなことが出来るって、"知らない"だけらしいのです。


知らなければ、そんなもんだと思って作業するだけですよね。
スクリプトに限ったことではなく、日頃使っているソフトでも、知らない機能って使わないものです。


「こんなツールがあるよ」って、教えるより先に、基本的なカスタマイズの知識を教えたほうがよいかもと思い始めています。
多少でも知識があれば、出来るか出来ないかくらいには、気付けるようになるかもしれません。


気づけば、質問してくれるようになるかもしれませんよね。

2017年10月17日

formZ8.6 WIP

やっぱりv9は今年中には出ないですね...。
今頃8.6出るようじゃ。

2017年10月16日

Revit Macro : Purge ImportInstances

やっと出来ました。
分かってしまえば簡単なんですが、そこまでが大変。

ファミリをモデリングする時に取り込んだCADを一括削除するマクロです。






2017年10月2日

Revit Macro : マクロで最初に生成したオブジェクトを消すと、次からエラー

ヘルプのサンプルコードをコピペして柱状体を作ってみました。

最初は成功します。
ただし、一番最初に作ったオブジェクトを削除してしまうと、次からエラーになります。
2番目、3番目に作ったオブジェクトは削除しても大丈夫ですが、最初に作ったものはデリートしたらダメです。
なぜそうなるのか不明なんですが、どなたかわかる方いませんか?...。