タイトルの付け方が難しかったのですが、Grasshopper(ver0.9.0076時点)上でモデリングする中で円弧が円弧でなくなる時が内部処理の問題なのかわかりませんが存在しています。
その再現をするために下図のようなものを用意しました。
任意の円弧をオフセットして端点を直線で繋いだ円弧状の閉じたポリラインです。
これを内側にオフセットしてダブルラインとし、下図の様にソリッドボリュームを作ります。
何の問題もないように感じます。
次は、下図の様にRegion Differenceで元の線を削ってから、同様に内側にオフセットしてダブルラインを同様に作り、
下図の様に同様にソリッドボリュームを作ってみると、内側の面にisoカーブが多くなっている事に気付きます。
ソリッドボリュームの元になっている円弧線のプロパティを確認してみると、下図の様にだ円弧と書かれている事がわかります。
事実上、円弧であるはずのものが内部的に楕円弧として認識されているのです。
円弧はオフセットしても円弧を保ちますが、楕円はオフセットしても当然楕円にはならず、Rhino上では下図の様にNURBS曲線という扱いになり、制御点も細かくなってしまいます。
制御点の細かな曲線を利用したモデリング(例えばExtrudeやSweep等々)は余計に処理時間が掛かってしまう事があります。
今回の場合は、Region Differenceを利用した事で起きた事例でしたが、今回の様に事実上の円弧線なのに気付かずに作業をしているうちにいつのまにか円弧ではなくなってしまっている事が場合により起きてしまう事がありますので注意が必要です、という一例でした。
制御点の異なる曲線に対して、どのように対処されているのでしょうか?
オフセットした曲線は元の曲線と制御点の数が変化することがあると思います。
気づかない内に、オフセットした曲線が多くの制御点を含む複雑なNurbsで表現され、
オフセットするときは注意しないといけいないと感じるときがあります。
こちらの事例の場合、元の楕円とオフセットした楕円(Nurbs曲線)の制御点の数が異なると思います。後々「ロフト」や「スウィープ」で面を作成するなど、データを扱いやすくするために、上述した2つの曲線の制御点の数は同じにすべきだと思うのですが、どういった手法で対処していますでしょうか?
私はよく、オフセットした曲線に「Rebuild Crv」で無理やり制御点の数を合わせたりするんですが、リビルドしたことで原型と形状が変わることがあり、あまりいい方法ではないと思っています。
何か他に、よい方法があればぜひ教えて頂きたいです。
よろしくお願いします。
RhinocerosやGrasshopperの場合、普通のNurbs曲線であればオフセットしたNurbs曲線の制御点は変化し、大抵の場合、点の数は多くなってしまいます。これはこのソフトを使っている上では止む負えない事だと感じます。
それを回避したい場合は、制御点をオフセットする考え方を持つOffset Looseを利用しますが、これはこれで厳密な寸法で曲線自体をオフセットしてくれる訳ではありません。
厳密に寸法を押さえたいような時期の仕事になれば利用できる場は通常のOffsetに比べると極端に少ないです。
今回の場合、あくまで円弧を題材にしています。
円弧はオフセットしても円弧を保ち、勿論制御点数も変わりません。
円弧は一部を切り取っても円弧であることは常識的に明白ですが、
今回はその一部を切り取る操作をした際に“なぜか”円弧を保てなくなる(円弧なのにプロパティ上、楕円で認識される)内部的な問題を検証しました。
今回に限って言うと、そこに気付いているなら、もう一度切った後の楕円扱いになっちゃった円弧の、例えば円弧上の3点を使ってももう一度円弧を作り直すとかすれば、今回の場合はオフセットした線の制御点が増える事はないでしょう。
普通の楕円をオフセットすれば制御点の数が変わるのはRhinocerosを利用している限り、ある程度は仕方のない話です。(他のソフトではまた別だと思いますが。)
良い方法があれば自分も知りたいくらいです(笑)
個人的なセオリーとしては、Nurbs曲線が登場するようなフリーフォーム的に操作する建築スタディは初期のコンセプトデザイン段階ものがほとんどなので、そこはRebulidを使うなり、Offset Looseを使うなりで、軽さ重視で凌ぐ事が多いです。
しかしフェーズが基本設計、実施設計と進むにしたがって、そうも言ってられなくなります。図面に情報を反映していく上でNurbs曲線は説明が難解ですので、何かしらの幾何学情報に落とし込んで、寸法記入が出来る情報に変換していく事が望ましいと思います。
あくまで個人的な仕事上の方法論を基に強いて結論を求めると、初期はデザインを損なっていない程度には曲線の制御点が多少どうなろうが何でも良いけど、設計の深度が深くなるのに合わせてNurbs曲線を寸法で表現できるものに合理的に描き換えていく(rationalize)、ということになるかもしれません。
とは言え、ケースバイケースですね(笑)
「offset loose」というコンポーネントがあるんですね。初めて知りました。
確かに、元の曲線が円弧である場合は、点から曲線を再定義しても問題ないですね。
>>Nurbs曲線を寸法で表現できるものに合理的に描き換えていく(rationalize)
実務で行われるモデリングでは、この作業が必要になることがあるということですね。非常に興味深いです。モデリングには、扱いにくい情報を扱いやすく整理・変換していく作業も必要であるように感じました。
コメントをするにはログインしてください。