「エッジってラインのこと?」
「ワイヤ?とはなんのこと?」
「シェルとかコンパウンド?なんて普段つかってないけど・・」
というように、なんとなくわかってるけどその用語の定義をしっかりとは知らないFreeCADワードってありますよね?それぞれワードをイラストにしてまとめて記事にしてみました。
- 頂点 Vertex
- エッジ Edge
- ワイヤ Wire
- フェイス Face
- ソリッド Solid
- コンパウンド Compound
という順番に各要素は複雑になっていきます。
この記事は
FreeCAD Documentaitionから以下を引用して作りました。ぜひ一度リンク先をブラウザの翻訳機能を有効にしてご覧になってください。
”Everything starts with Vertices. With one or two vertices, you form an Edge (full circles have only one vertex).With one or more Edges, you form a Wire. With one or more closed Wires, you form a Face (the additional Wires become "holes" in the Face). With one or more Faces, you form a Shell. When a Shell is fully closed (watertight), you can form a Solid from it. And finally, you can join any number of Shapes of any types together, which is then called a Compound.”意訳:すべては頂点から始まり、1つまたは2つ以上の頂点を伴ってエッジを形成します。1つまたは2つ以上のエッジによってワイヤが形成されます。そして、閉じられたワイヤによってフェイスができます。フェイスが合わさることでシェルを形成します。そして、シェルの中身が隙間なく詰まったときそれはソリッドと呼ばれるものになります。そして最後は、沢山のシェイプやさまざまなオブジェクトを一緒に1つに合わせるとでコンパウンドになります。
1 頂点、エッジとは ( vertex, edge )
vertex(ヴァーテクス) = 頂点
edge(エッヂ) = エッジ
edge(エッヂ) = エッジ
FreeCADのオブジェクトはすべて頂点ヴァーテクスvertexから開始されている。2つの頂点間を結んだ線のことはエッヂedgeと呼ぶようになる。
※Documentaionでは頂点の複数形が vertexes, vertices と併記されており意味に違いがあるのか?よくわかりません。
Draftワークベンチで描いたライン Line(線)も Sketcher で描いた線分も、マウスオーバーして選択してみるとPythonコンソールに エッヂ(Edge)を選択しました と英語で表示されることが確認される。
立方体や直方体、他色々立体の境界線も Edge エッヂ と呼ばれ扱われるので混乱しやすい。Lineライン、Wireワイヤ、Edgeエッヂはそれぞれ区別されるが、WireのEdgeを選択するとか、LineのEdgeを選択するというのはありうるし、成り立つ。
2 ワイヤとは ( wire )
wire = ワイヤ
1つ以上のライン・エッヂをつなげたものは wireワイヤ と呼ばれるものになる。wireの最初と最後の頂点同士を連結し閉じた状態にすると、Closed wire クローズドワイヤ = 閉じられたワイヤになる。閉じられたワイヤは、フェイス(面)にすることができる。
Sketcherで作図した連続線はただちにワイヤとなるわけではなく、ただ連結された1本の線みたいな扱い。すべてのエッヂを選択した状態でDraftワークベンチのアップグレードを行ってはじめてWireになる。
3 フェイスとは ( face )
face = フェイス
閉じられたワイヤ(ClosedWireクローズドワイヤ)はface(面)にすることができる。
閉じられたワイヤを選択してDraftワークベンチにてUpgrade(アップグレード=↑ボタン)をするとフェイスを作成できる。逆に、フェイスを選択してDowngrade(ダウングレード=↓ボタン)するとwireに戻すことができる。
閉じられたワイヤの囲われたエリアが面(face)になる。閉じられていないと面化することはできない。
4 シェルとは ( shell )
shell = シェル
faceのあつまり。中身がスカスカで↓で紹介するソリッドとは別物。Faceを複数選択してコンパウンドにすることもできるがShellとは別物。
5 ソリッドとは ( solid )
solid = ソリッド
シェルの中身が埋まり隙間なく詰まったものをsolidソリッドと呼ぶ。シェルとは区別される。シェルのソリッド化はかんたんにできる。Partワークベンチで作成するプリミティブ立体はすべてソリッドである。
FreeCADやFusion360、Solidworksといった3D CADソフトウェアは、ソリッドを作成するための3DCGソフトウェアであり、パラメトリック※な立体を作成することを最終目標としている。
※パラメトリック = コンボボックスで色々パラメータを後から色々いじれること、各オブジェクトへ因果関係を関連させて残せること
3Dソリッドモデリングとは、数式解決できる立体を創作するということであり、
数式で解決できる = 無限に解像度を持てるということ(らしい。←よくわかっていない)。
無限に解像度を持てる= 例えば極限に小さい穴を創出したとしても、その穴を表す数式は割り切れるので正確な極小穴を設けることができるということ(データ上・理論的には)。
6 コンパウンドとは ( compound )
いろいろなシェイプ、オブジェクト、エッジ、頂点、ソリッドなどを一つのまとまりにしたものことをCompoundコンパウンドという。ブーリアン演算の和集合とは異なる。エラーがおきなければどのようなもの同士でもコンパウンド化できる。
Compound について辞書的な意味を検索してみても3次元作図においてはあまり役に立たず、とりあえず色々をまとめて1つのものにしてしまうという感じの理解でOK。
Part ワークベンチ ツールバー>コンパウンド で実行できる。結果をツリービューで確認するとコンパウンドグループ(まとまり)になっているのがわかる。
いろいろオブジェクトを1つにまとめて扱いたいとき、というとあまり用途が想像できないかもしれないが、ブーリアン和集合にはしたくないときや和集合に失敗するときなどなどにCompound は非常に便利な使い方がある。正しい使用法ではないかもしれないが。
SketcherがあるならDraftワークベンチいらなくね?問題
FreeCADを私のように知識0の状態からスタートした初心者の場合、だいたいSketcherから立体を作成するとことになると思います。Webチュートリアルでそういう内容が多すぎる。そうすると「Draftワークベンチってなんのためにあるの?」
「SketcerあるんだしDraftいらんくね?」
となりますよね?ざっくりなんですが、Sketcherは2D図面(ワーキングプレーン)依存であり、Draftは座標依存であるという点で違いがあります。
Draftワークベンチで作られるオブジェクトは、FreeCADにおいてもっとも基礎的な要素となります。本記事で紹介した Vertex, Edge, Wire, FaceなどはすべてDraftオブジェクト。Draftオブジェクトは、原点座標を基準に3D空間に自由に作図できる。
対して、Sketcherワークベンチで作図を行う場合、まずワーキングプレーンをアタッチするところから始まっており、アタッチ先を基準にして作図を行うことになる。
再計算が起こるか否かのちがい
Sketcherワーキングプレーンのアタッチ先候補に挙げられるのは、XY・YZ・XZ平面やそのほか、ソリッドの面・頂点、他などである。
例えば、Sketcherワーキングプレーンをソリッドのどこかにアタッチしたとする。もし、そのソリッドへ何かしら変更が加えられた場合再計算が行われる。アタッチした頂点・面・線が無くなってしまうような大きな変更だった場合は再計算に失敗するときがある。そうするとツリービューで赤いビックリマークが表示され、ワーキングプレーンのアタッチの修正が必要になり、遡っての作業・修正が余儀なくされる。
あらためてまとめると以下
Draft作図 = 原点座標(0、0、0)参照
Sketcher作図 = ワーキングプレーン参照
Draftオブジェクトは、ワーキングプレーン参照から起こる再計算・やりなおしの問題は発生しない。なぜならDraftオブジェクトはいつでも原点座標を参照しており、その基準となっている原点座標軸が動くことは無いからです。Draftのスナップも同様であり、スナップも結局原点座標軸を参照しているのです。
「じゃ、Draft作図 最強じゃないか」
と思われるかもしれませんが問題があります。そうそれはDraftワークベンチの使用感がめちゃくちゃ悪い😟こと。2D平面作図はどう考えたってSketcherのほうがやりやすい。
DraftワークベンチのキモはDraftワーキングプレーン(原点座標参照)とスナップを使いこなすことなんですが、いかせん直感的でなくていつまでたっても慣れない。開発者の方にはもうしわけないが機能改善もとむ。もしくは正しい使用法みたいなチュートリアルを誰か示して・・・😖
Sketcher図面をそのままDraftオブジェクトに変換することはできる(パラメトリックな依存関係はなくなる)し、その逆のDraftオブジェクトをSketcher図面に変換することも可能なので、状況に合わせて使い分けられたし・・・、というのがいいかもしれません。
経験則ですが、参照元のオブジェクトが後から動いたり変更があっても再計算の問題が起こらないDraftオブジェクトは、以下のような用途に使えるというのがおわかりいただけると思います。
- 複数のSketcherや立体にまたがるような線、基準線
- 複数のオブジェクトの基準となるような補助線
反対にある程度作業が進んで、後から色々変更や修正を加えるような場合はパラメトリックな依存関係を残せるSketcher作図を利用したほうがいいかもしれません。
WikiでPythonスクリプトの基礎を学べます
Manual:Creating and manipulating geometry では、Pythonコンソールへのコマンド打ち込みで立体作図の方法が書かれている。
こちらWikiの内容は、円弧と直線を用いて楕円というか、コロッケを上から見たような立体を作成するチュートリアルで、読めばマクロ自作の基礎を学ぶことができる。
Pythonコマンド郡を1つにまとめればマクロが作成でき、定型作業の自動化を狙えるようになります。どうぞ上記リンクを参照なさってFreeCADをお深めくださいm(_
_)m
FreeCADの要素の意味や、Draftワークベンチの存在意義がわかりやすくまとめられていて、大変参考になりました。どうもありがとうございます。
返信削除コメントありがとうございます!お力になれていたら幸いです!
返信削除検索してたどり着きました。
返信削除初めの作画方式の違いの説明が非常にありがたい。
まともにこの辺の意味を解いているものがないうえに、動画見てても要領得ないものばかり。
おかげで、freecadの基本とオブジェクト操作の適用がどういう条件で行われるか理解しました。
CZさんコメントありがとうございます。
返信削除大変恐縮です。勉強中な身分ですゆえ、記事に間違いがないといいのですが・・・汗
最近のFreeCADのアップデートには目を見張るものがありますね!機能の進化と一緒にわかりやすいチュートリアル動画がほしい今日この頃です。