【集中講座】複数の曲線から一瞬で閉じた曲線を作る:CurveBooleanコマンド

はじめに

この記事は、「複雑に交差した曲線から、閉じた形を抽出したい」、あるいは「曲線を短くするトリム(Trim)と結合(Join)の繰り返し作業に疲れている」Rhinocerosで2Dの作図をよく行うユーザーを対象としています。

 簡単な手順で2D作図の効率を上げることができる[CurveBoolean(曲線ブール演算)]コマンドについて紹介致します。

トリムと結合の「落とし穴」:こんなときに苦労していませんか?

2Dの作図を行う際、複数の図形が重なり合った部分から、特定の閉じた曲線領域を抽出したいことが多々あります。

通常は、以下のような手順を踏んで実行できます:

  1. [Trim](トリム)コマンドを実行し、曲線内の不要な部分をクリックして順に消す。
  2. トリムし終えた曲線をすべて選択し直し、[Join](結合)コマンドで曲線同士を結合し閉じた曲線とする。

しかし、この方法には単純に手間がかかる以外にも、

  • 開いた端点同士が接している状態でないと結合できないため、曲線を結合できるように間違えずにトリムする必要がある
  • トリムすると元の曲線が無くなる

といったデメリットがあります。また入力する曲線が多ければ多いほど、一筆書きの要領でトリムする必要があるため、作業時にミスをしがちになります。

CurveBooleanなら「クリックするだけ」で解決

上記のような「トリム+結合」の苦労を解決できるのが[CurveBoolean]コマンドです。このコマンドを使用することで、交差する曲線群の中から「欲しい領域の内側をクリックするだけ」で、瞬時に閉じた境界線を抽出できます。

手順

  1. [CurveBoolean]コマンドを実行する。
  2. [曲線を選択 ]と表示されるので、使用したい曲線を選択してEnterキーを押す。
  3. [対象領域の内側をクリック]と表示されるので、抽出したい領域をクリックしていきEnterキーで決定する。

です。上記の例では一か所のみ取得していますが、続けてクリックしていくことで複数の領域を1つの閉じた曲線としても取り出すこともできます。

コマンドには下記のようなメリットがあります。

  • 非破壊的: 元の曲線を残したまま、新しい曲線を作れる(設定で削除も可能)。
  • 正確: トリム漏れや結合エラーの心配がない(必ず閉じた曲線を作成)。
  • 作業スピード: 10個の領域を個別にトリムするような作業でも、数クリックで終わります。

CurveBooleanのより便利なテクニック

より[CurveBoolean]コマンドを使いこなしたい方は、下記を参照ください。

開いている曲線の利用

閉じている曲線だけでなく、開いた曲線を入力しても領域を抽出できます。

また[領域を一体化]オプションが「はい」の時は、隣あう領域を結合した大きい曲線として抽出できます。「いいえ」の時は、領域ごとに曲線が作成されます。

浮いている曲線でもOK

現在の作業平面に対して投影後に曲線のブール演算を実行するため、空間上に浮いている曲線でも実行可能です。

外形線を一気に抽出

[すべての領域]オプションをクリックすることで、それぞれの箇所をクリックしたことにでき、重なり合った図形の最外径の輪郭をワンクリックで取り出すこともできます。

複数の領域を抽出して、オフセットする

オプションの[領域を一体化]を「いいえ」にし領域を抽出し、それらに[Offset]コマンドを実行することで指定した距離だけ離れた曲線も作成可能です。

複数の領域に対して、それぞれ面を作成

また作成するものを曲線ではなく、平面サーフェスとして作成することもできます。

オプションの[領域を一体化]を「いいえ」に、[出力]を「曲線」ではなく「サーフェス」に設定し、[すべての領域]をクリックすることでそれぞれの領域に平面サーフェスを作成可能です。

曲線内の線と円弧の単純化

[曲線を単純化]オプションを「はい」にすることで、抽出した曲線内の直線と円弧部分を単純化し制御点を減らすことができます。それにより、データを軽量化し扱いやすくできます。また円弧にすることで半径値を取得するのも容易になります。

上図は、10Rの円柱に投影した曲線を使用してブーリアン時に単純化して円弧にした例です。

まとめ

[CurveBoolean]は、いわば「2D曲線のバケツ塗りつぶしツール」のような感覚で閉じた形状を作成できる非常に強力なコマンドです。 「トリムして結合」という従来のワークフローを、「領域を選んで抽出」という新しいモデリング方法に変えることで、モデリングのスピードが向上できます。ぜひ興味がある方は、作業に取り入れてみてください。

【補足】Grasshopperについて

残念ながら、現在(2026年1月 Rhino8 SR27時点)でのGrasshopperの標準コンポーネントには、この[CurveBoolean]と同じ挙動(複数の曲線から閉じた領域を取得)をするものは存在しません。

内容が多くなってしまいますので、別途ページを分けて作成できたらと思います。