グループの基本操作
ジオメトリグループ
グループを作成または変更する一般的な構文では、グループ名とエンティティの集合を指定します。
Group ["name"] Equals <list of entities>
Equals(代入) この操作は、指定したリストをグループの内容として設定します。すでにグループが存在する場合は、それまでの内容が上書きされます。グループ作成後はIDでも参照できます。ここで指定するエンティティは、ジオメトリエンティティ、メッシュエンティティ、またはその両方です。たとえば次のコマンドでは、
group "Exterior" equals surface 1 to 2, curve 3 to 5
指定した名前のグループを作成します(名前は大文字と小文字を区別します)。エンティティを受け取るコマンドには、グループも指定できます。例: mesh Exterior, list Exterior、または draw Exterior.
ジオメトリエンティティは名前でも指定できます。例:
group 'Interior' add surface with name 'bill' 'john' 'fred'
'bill'、'john'、'fred' という名前のサーフェスを Interior グループに入れます。
名前にはワイルドカード(*)も使用できます。名前に 'bob' を含むすべてのサーフェスを追加するには、次のコマンドを使用します。
group 'interior' equals surface with name '*bill*'
グループの内容を変更する操作には、エンティティの追加や削除など、さまざまなものがあります。新しい名前を指定すれば、これらの操作を使って空の状態からグループを作成することもできます。
Group ["name" | <id>] Add <entity list>
Group ["name" | <id>] Remove <entity list>
Group ["name" | <id>] Xor <entity list>
Group Booleans
既存グループの内容から集合演算で新しいグループを作ることもできます。形式は「Group A boolean B preposition C」です。これらの操作でも、既存グループの内容は上書きされます。 intersect コマンドは、両方のグループに共通する要素を含む新しいグループを作成します:A = B ∩ C。 unite コマンドは、どちらか一方のグループに存在するエンティティを集めます:A = B ∪ C。 subtract コマンドは、一方のグループにあり、もう一方にはないエンティティを集めます:A = C − B。
Group {<'name'>|<id>} Intersect Group <id> with Group <id>
Group {<'name'>|<id>} Unite Group <id> with Group <id>
Group {<'name'>|<id>} Subtract Group <id> from Group <id>
Group Copy and Transform
グループの内容はコピーして変換(たとえば移動)することも、コピーせずにそのまま変換することもできます。コピーされるのはグループ自体ではなく、その内容です。この操作が使えるのは、ジオメトリエンティティのグループ、または free mesh(自由メッシュ) のように関連ジオメトリを持たない要素のグループです。グループには、ジオメトリエンティティとほぼ同じ方法で自由メッシュエンティティを集められます。オプションの copy キーワードを指定すると、まずグループ内のエンティティがコピーされ、そのコピーに変換が適用されます。ジオメトリグループとメッシュグループでは動作が異なります。ジオメトリグループにメッシュ済みのジオメトリエンティティが含まれる場合、オプションの nomesh キーワードを指定しない限り、そのメッシュも一緒にコピー・変換されます。ボリュームの1つのサーフェスだけをコピーすることはできますが、親エンティティを伴わずにジオメトリエンティティだけを変換することはできないため、そのサーフェスだけを移動することはできません。また、マージされている相手エンティティはすべてグループに含まれている必要があります。一方、任意のジオメトリエンティティはコピーして変換できます。メッシュグループでは、ノードを変換すると、そのノードを含む要素も暗黙的に変換されます。 copy キーワードは、グループにメッシュエンティティが含まれる場合は無視されます。この種類のメッシュグループには自由メッシュエンティティだけを含められます。ジオメトリに関連付けられたメッシュをコピー・変換する場合は、ジオメトリグループを使用してください。以下では、既存のグループ名を常に「Group <id>」の代わりに使用できることに注意してください。
Group <id> [Copy [nomesh]] [Move <dx> <dy> <dz>]
Group <id> [Copy [nomesh]] [Move {x|y|z} <distance>...]
Group <id> [Copy [nomesh]] [Move <direction> [distance]]
Group <id> [Copy [nomesh]] [Reflect {x|y|z}]
Group <id> [Copy [nomesh]] [Reflect <x> <y> <z>]
Group <id> [Copy [nomesh]] [Rotate <angle> About {x|y|z}]
Group <id> [Copy [nomesh]] [Rotate <angle> About <x> <y> <z>]
Group <id> [Copy [nomesh]] [Rotate <angle> About Vertex <Vertex_id1> <Vertex_id2>]
Group <id> [Copy [nomesh]] [Scale <scale> | x <val> y <val> z <val>]
グループの削除
グループは次のコマンドで削除できます。
Delete Group <id range> [Propagate]
オプション propagate を指定すると、含まれているグループも再帰的に削除されます。つまり、グループAがグループBを含み、グループBがグループCを含む場合、 Delete Group A Propagate グループA、B、Cがすべて削除されます。
グループ内容の消去
グループ内のすべてのエンティティは、次の cleanout コマンド:
Group <group_id_range> Cleanout [Geometry|Mesh] [Propagate]
で削除できます。既定ではすべてのエンティティが削除されますが、ジオメトリまたはメッシュエンティティだけを対象にすることもできます。deleteと同様に、 propagate オプションを指定すると、指定したグループと、その中に含まれるすべてのグループを再帰的にcleanoutします。