過去に書き溜めたFreeCAD使用方法等についてのメモをそのまま転記。
内容が古い、間違っている、表現が不適切、画像がない、等の問題点がある。
追々他のページに整理したりする予定。
- モデリング■■■■■
- Part Designワークベンチ
- 230626 スケッチを書いて押し出す方法
- 230626 マルチボディーのパーツが作成可能っぽい
- 230704 マルチボディをSTEP出力してSolidworksで開くとアセンブリとなっている
- 230626 マルチボディ部品のボディを移動、回転させる方法 (変換)
- 230814 マルチボディ部品のボディを移動、回転させる方法 (Placement)
- 230815 参照平面、参照線をつくる方法
- 230815 Part designワークベンチではボディに属していないオブジェクトは編集できない。
- 230822 [Part design]のロールバックする方法 [チップ設定]
- 230817 [Part design]のロールバックする方法 [フィーチャーの表示/非表示]
- 230822 フィーチャー追加時に面の分割を防止するには「Refaine」を「true」にする
- 230830 ローカル座標作成の資料
- 240522 シェル(空洞化)の方法
- 240619 フィーチャーの順序を変更する方法
- 240619 エラーの出にくいモデル作成方法
- 250325 PartDesignボディの「BaseFeature」とは?
- 250326 PartDesignのボディと他のソリッドを組み合わせたモデリング例(ブーリアン)
- Partワークベンチのモデリング
- サーフェスモデリング
- サーフェス・その他
- サーフェスの作成
- 面のブレンド・穴埋め
- サーフェスのトリム・分割
- サーフェスのコンパウンド・ソリッド変換
- サーフェス・その他
- その他
- Part Designワークベンチ
- アセンブリ■■■■■
- アセンブリ[Assembly3ワークベンチ]■■■■■
- アセンブリ[Assembly4ワークベンチ]■■■■■
- アセンブリ[Assemblyワークベンチ] (Ver.1.0)■■■■■
- 240911 Assemblyワークベンチ試用
- 240913 アセンブリファイル内にBodyを作成した後に別ファイルにする方法
- 250325 アセンブリに別ファイルのパーツを挿入する方法(コンポーネントを挿入)
- 260501 Altドラッグで別ファイルのパーツを挿入(リンク作成)できる
- 250325 サーフェスをアセンブリに組み込むときはPart
- 260416 パーツの配置は「固定」拘束だと問題が起きにくい。
- 260506 アセンブリに挿入したアセンブリ(外部ファイル)のパーツ削除でエラーが出る
- 260506 親アセンブリに挿入した子アセンブリの編集について
- 260507 アセンブリに挿入されたリンク元のファイルを確認する方法
- 260507 リンクされた外部ファイルを別のファイルに置き換える方法
- 260507 アセンブリ内の外部ファイルのリンク(パーツ、アセンブリ)を別ウィンドウで開く方法
- スケッチ関連■■■■■
- 230626 [スケッチ]構築ジオメトリ (作図線, 補助線)
- 230712 [スケッチ]駆動拘束と参照拘束 (Solidwroksの従動)
- 230712 スケッチ平面をオフセットしたい場合「スケッチャー」ワークベンチなら可能
- 230815 スケッチ編集時にオブジェクトを非表示にしない方法
- 230830 スケッチを遡って編集すると、後工程の「外部ジオメトリ」がくずれがち
- 230901 スケッチの面を変更する方法
- 241016 スケッチの面を変更する方法2 (スケッチをアタッチ)
- 250326 スケッチの面を反転、オフセット、回転する方法
- 240227 スケッチを配置できる場所
- 240402 スケッチ時に断面表示にして見やすくする方法 – セクション表示
- 241003 寸法、拘束を非表示にする方法
- 241003 スケッチの線や構築線を非表示にする方法
- 241003 通常、外部、構築ジオメトリの表示順序のコントロール方法
- 250407 スケッチ平面と交差する形状を投影する方法
- 250408 外部ジオメトリを直接押し出しなどに利用する方法 (Ver1.0以前)
- 260416 別パーツのスケッチや形状を外部投影する方法
- 260416 外部投影で作ったスケッチのリンクを解除する方法
- 260421 DXFファイルをインポートする方法
- 設計について■■■■■
- その他■■■■■
- 230626 別の部品ファイルをインポートしてマルチボディにする方法
- 230626 非表示にするにはツリー上でSpace
- 230704 面ごとにSTL保存する方法
- 230815 長さや角度を測定
- 230822 穴と穴の中心間距離を測定する方法 [manipulatorワークベンチ]
- 230816 [調査中]ワークベンチの種類
- 230816 コンテナ「Part」、「Body」、「Group」について
- 230816 公式ドキュメント
- 230819 ボディを別ファイルに保存する方法
- 230822 アセンブリの干渉チェックはできない?
- 230823 DraftワークベンチをSolidworksの3Dスケッチや、構想設計の2D図作成に使えない?
- 230831 エラーのでにくいフィーチャー作成方法の参考資料
- 230901 フィーチャーの依存関係を可視化する方法
- 230901 Pythonスクリプトを利用してオブジェクトを生成する
- 240221 「ファスナー(Fasteners)」ワークベンチ ネジ類の使用
- 240226 ボディの透明度を変更する方法
- 240304 STLをSTEP(ソリッド)に変換する方法
- 240402 ワークベンチ切り替えを楽にできるアドオン「Tab Bar」
- 240919 現状のFreeCAD(1.0RC1)で不足している機能等、気付いた点の備忘録
- 241016 直線以外の形状をスケッチに投影して押し出し等に利用する方法
- 250325 画像を3D上に配置する方法。
- 250407 ビューを任意の面に垂直にする方法
- 260416 パーツに外部参照を付けるな。パーツの面で拘束を付けるな。
- 260421 ナビゲーション設定
- リンク関係■■■■■
モデリング■■■■■
Part Designワークベンチ
230626 スケッチを書いて押し出す方法
ワークベンチを「Part Design」にする
ワークベンチを「Part」は使う必要がないので無視でOK
スケッチを作成
スケッチする平面を選択
描画用のツールはツールバーのアイコン、またはメニュー「Sketch」→「スケッチャージオメトリ」より選択。(慣れないうちはこちらの方が名前が書いてあるのでわかりやすいかも)
メニュー「Sketch」→「スケッチャー拘束」
寸法も拘束に含まれている
押し出しなどのコマンドは「加算フィーチャー」「減算フィーチャー」などに分類されている。
押出は「パッド」、押し出しカットは「ポケット」を使用する.

230626 マルチボディーのパーツが作成可能っぽい
下図の”P2_230626″, “P1_230626″というのがファイル(拡張子.FCStdで保存している)。
1つのツリー(コンボビュー)上に複数ファイルを展開出来るっぽい。
パーツ「P2_230626」の中に「Body」、「Body001」と2つのボディを作成している
太字になっているのがアクティブなオブジェクト。
1つの「ボディ」が2つ以上に分離している形状は作成できない。
ミラーやパターンで宙に浮いた部分があると失敗する。
230704 マルチボディをSTEP出力してSolidworksで開くとアセンブリとなっている
FreeCADで作成
Solidworksで開いたところ
230626 マルチボディ部品のボディを移動、回転させる方法 (変換)
ツリーの動かしたいボディを右クリック→「変換」
矢印が出て移動や回転が出来る
230814 マルチボディ部品のボディを移動、回転させる方法 (Placement)
ツリーでボディを選択 → 下のプロパティの「Placement」に現在の座標や角度が表示される → 数値を変更して移動、回転できる。
230815 参照平面、参照線をつくる方法
「Part Design」ワークベンチの下記アイコンでデータム点、データム線、データ無平面、ローカル座標系を作成できる。
230815 Part designワークベンチではボディに属していないオブジェクトは編集できない。
Partワークベンチで作成したものはボディに属していないのでPart designワークベンチで編集できない。
230822 [Part design]のロールバックする方法 [チップ設定]
フィーチャーを右クリック→「チップ設定」すると、Solidworksで言うロールバックできる。
チップ設定状態でスケッチやフィーチャーを追加すると、チップ設定の後に追加できる。
「Mirrorede」にチップ設定した状態
最後のフィーチャーにチップ設定した通常の状態
230817 [Part design]のロールバックする方法 [フィーチャーの表示/非表示]
[Part design]ワークベンチの履歴において、Solidworksの「ロールバック」(過去のフィーチャーに遡る)をする方法
過去のフィーチャーをツリーで選択してSpaceキーで表示する。
見た目だけ確認したいときに使う。ツリーの途中にフィーチャーを追加したい場合は「チップ設定を使う」
例
最終のフィーチャー(Pocket002)を表示した場合
過去のフィーチャー(Pad)を表示した場合
230822 フィーチャー追加時に面の分割を防止するには「Refaine」を「true」にする
Refine : false (ミラーフィーチャーで面が分割されている)
Refine : true (面が分割されていない)
230830 ローカル座標作成の資料
いろいろ試してみた。
[リンク]
(会社PC) [C:\Users\(ユーザー名)\OneDrive\ドキュメント\230830_FreeCAD_ローカル座標系(LCS)作成について調査資料\FreeCAD_ローカル座標系(LCS)作成について調査資料_230830.xlsx](file:///C:/Users/(ユーザー名)/OneDrive/ドキュメント/230830_FreeCAD_ローカル座標系(LCS)作成について調査資料/FreeCAD_ローカル座標系(LCS)作成について調査資料_230830.xlsx)
[ファイル名]
FreeCAD_ローカル座標系(LCS)作成について調査資料_230830.xlsx
[保存場所]
C:\Users\(ユーザー名)\OneDrive\ドキュメント\230830_FreeCAD_ローカル座標系(LCS)作成について調査資料
240522 シェル(空洞化)の方法
「Part Design」ワークベンチ → 「厚み」
名前が「厚み」なのでちょっとわかりにくかった。
240619 フィーチャーの順序を変更する方法
移動したいフィーチャーを(複数可)選択して右クリック→「オブジェクトを他のオブジェクトの後へ移動」
移動先のフィーチャーを選択。選択したフィーチャーの後に移動する。
依存関係が矛盾しないようにモデルを作成しておく必要がある。
D&Dで移動させようとすると、ボディーの外にフィーチャーが出たりして、うまくいかない。
240619 エラーの出にくいモデル作成方法
パッドで押し出した面に直接スケッチをするのは良い方法ではない。
フィーチャーツリーを遡って編集した結果、面の数が変わったりすると、スケッチした面(サポートと呼ぶ)が変わってしまう。
トポロジの命名の問題というFreeCAD固有の問題によるもの。
全体の形状を決めるマスタースケッチを作成し、以降のスケッチはボディの基準平面や、基準平面からオフセットしたデータム平面にするのが推奨されている。
フィレットはモデルの最後に入れる。
すこしでもモデルをいじると、すぐにフィレットをするエッジが変わってしまう。
関連
240619 フィーチャーの順序を変更する方法
230901 フィーチャーの依存関係を可視化する方法
250325 PartDesignボディの「BaseFeature」とは?
参考: https://wiki.freecad.org/PartDesign_Body/en
PartDesignのボディが一つだけ持つことができるベース形状のこと。
Partワークベンチで作成したプリミティブやソリッドを選択してボディを作成すると、その形状がBaseFeatureとしてボディのツリーの最初に読み込まれる。
BaseFeatureは元の形状にリンクされている。
ツリー上のボティの外のソリッドをD&DしてもBase Featureを作成できる。
(ボディにBase Featureがない場合のみ)
ツリーでボディを選択し、「データ」タブの「Base Feature」の右の「…」をクリックすることで、新たにBase Featureを設定したり、変更したりできる。
250326 PartDesignのボディと他のソリッドを組み合わせたモデリング例(ブーリアン)
無理にPartDesignのみでモデリングを完結させようとせず、Partで作ったプリミティブなどと組み合わせることでより柔軟なモデリングが可能になる。
Partで作成したプリミティブをPart Designで編集し、さらにPartで作成したプリミティブを引っ付ける例
Partワークベンチで円柱を作成
Part Designワークベンチに切り替え、円柱を選択して「ボティーを作成」。
円柱がBaseFeatureとしてボディに取り込まれた状態となる。
Part Designで編集(四角穴を開けた)

Partワークベンチで立方体を作成。(ボディの外にできる)
配置は少し調整している。
ボディと立方体を選択しPartDesignワークベンチの「ブーリアン演算」
ボディに「Boolean」というフィーチャーが出来、形状がひっつく。

「Boolean」フィーチャーには立方体を引っ付けたという履歴が残っている。
出来たボディは引き続き編集できる。
PartDesignではくPartワークベンチの「ブーリアン演算」を使う場合
ツリーに「Fusion」ができる。ボディはそこに取り込まれる。
引き続きPartDesignで編集したい場合は、Fusionを選択してPartdesignの「ボディーを作成」すると、BaseFeatureとしてFusionがとりこまれた形になる。
Partワークベンチのモデリング
250326 Partワークベンチのプリミティブを利用したモデリング例
Partワークベンチの「立方体」をクリックして作成。
出来た立方体をツリーで選択しLengthを30 mmにして形状を変更。

続いて円柱を作成。
出来た円柱をツリーで選択してRadius, Heightを適当に変更。
ツリーの円柱を右クリック→変換
好きなところに移動させる。

ブーリアン演算で立方体と円柱を引っ付ける。


ツリーには「Fusion」フィーチャーが出来た。
立方体、円柱の履歴は残っていて、立方体や円柱のサイズや位置は後から変更可能。
250331 ビューの方向に押し出す方法(厳密ではない)
スケッチなどで書いた図形をビューに対して奥(今見えている方向)に押し出す方法。
サーフェスモデリング
サーフェス・その他
250403 サーフェスモデリングの考え方
関連ノート
Blender > モデリングの考え方(Rhinoceros)
サーフェスのモデリングでは以下のような操作が使用される。
押し出し、回転、ロフト、スイープ、フィレット、ネットワークサーフェス、パッチ、ブレンド、トリム、結合
サーフェスは基本的に四辺で構成されている。
複雑な形状が必要な場合、四角で作った後に必要形状にトリムするのがよい。
参考リンク(Rhinocerosの例)
サーフェスモデリングの利点とソリッドCADとの併用
https://www.wakayama-kg.jp/org/docs/3d-open-lab_tips_2.pdf
四角のサーフェスで大きな面を作成 → トリミング
周囲の面を接続した状態で作成
または切り離された面を作成してブレンドで接続
残った穴はFillingで埋める
250415 補助サーフェスという考え方
参考 https://cad-kenkyujo.com/tutorial/doom
ドーム状の形状を作成するとして、ドームの1/4をまず作成する。
1/4形状が接する3辺を押し出して「補助サーフェス」とする。
この補助サーフェスに正接となるようにサーフェスを貼る。
残りの3面をミラーコピーや回転コピーして完成。
補助サーフェスを作成しない場合、うまく面が繋がらない。
車のボディの左半分を作ってミラーコピーする状況でもこのテクニックが使えそう。
サーフェスの作成
230904 サーフェスの色々な作成方法まとめ
サーフェスは色々な方法で作成できる
1. 任意形状の平坦なサーフェス
Draftワークベンチで矩形などを作図
プロパティ「Make Face」が「true」ならサーフェスとなる。
2. プリミティブ
Partワークベンチでプリミティブを配置→Draftワークベンチでダウングレード→不要な面を削除
ソリッドをダウングレードすると面ごとに分割される
3. 押出
スケッチで書いた線をPartワークベンチで押出
閉じた図形を押し出すとソリッドになるが、線はサーフェスとなる。
Part Designワークベンチはソリッド以外の作成はできないので使えない。
4. 回転
スケッチで書いた線をPartワークベンチで回転
↓
5. Filling
スケッチで書いた閉じた図形をSurfaceワークベンチでFilling
任意形状の面を作成したいときに。
(例)
スケッチを2つ使って閉じた図形を書く。
Fillingした結果。
少し隙間が空いても大丈夫っぽい。(↓右下の線が繋がってない)
エッジを追加して形状をコントロールする事もできる


6. スイープ
2つのスケッチやドラフトの線を利用してPartワークベンチのスイープ

7. ロフト
スケッチやドラフトで書いた線をPartワークベンチでロフトする

ドラフトで書いた線をロフトした例

スケッチをロフトした例

↓
線分の数や直線/円弧が混在していても可能っぽい。

↓

8. ロフト 2
Surfaceワークベンチの「Sections」を使用(ロフトに近い)
複数の線を繋いだサーフェスを作成できる。ただし複合的なラインは処理できないようだ。
スケッチやドラフトの線だけじゃなく、サーフェスのエッジも利用できる。
スケッチやドラフトで複数の線を書く
エッジを一つづつ選択して繋ぐような感じになり、手前の「く」の字型のラインは2つのエッジの扱いになり、まとめて選択することはできない。
サーフェスのエッジを利用する方法。(Partワークベンチのロフトはこれができない)
↓
9. 2~4本のエッジから面を作成
Surfaceワークベンチの「Fill boundary curves」(2~4本のエッジから面を作成)
「ニ」「コ」「ロ」の字型の2~4本のエッジから面を作成できる
スケッチやドラフトの線だけじゃなく、サーフェスのエッジも利用できる。


関連ノート: 250327 Fill boundary curvesでねじれた面の直し方
10. フィレット
フィレットした例
以下のような複数サーフェスにフィレットする場合
まず余分をトリムし、ブーリアンで結合する。(コンパウンドでまとめるだけではダメ)
結合されたオブジェクトを選択してフィレットコマンドを実行すると最初の画像のようになる。
250327 Fill boundary curvesでねじれた面の直し方
Surfaceワークベンチの「Fill boundary curves」(2~4本のエッジから面を作成する機能)で面がねじれることがある。

設定画面の選択したエッジをダブルクリックすると、の左の丸い矢印のアイコンが反転してねじれが解消する。
うまく機能しないこともある。
250404 CurvesワークベンチのSweep2railsの使い方
線を4本準備する。
下図の選択した(緑の)線はスケッチで描いた。
下図の選択下(みどりの)線は、スケッチの線と端点が一致するようにCurvesワークベンチのFreehand_BSplineで描いた。
スイープ経路となるFreehand_BSplineの2本を選択してPartワークベンチの「線織面を作成」

作成された面とスケッチを選択
CurvesワークベンチのSweep2Railsを実行。
すぐに面は出来ず、点々の集合になる。
CurvesワークベンチのApporoximateを実行。
面が作成される。
今回の線を使って他の方法で面を作成したときの例
波々の辺と対面の辺を選んでSurfaceワークベンチのSections
→もちろん望んだ形状ではない。
4辺を選んでSurfaceワークベンチのFilling
→失敗する
4辺を選んでSurfaceワークベンチのFill boundary curves
→失敗する
面のブレンド・穴埋め
250326 2つの面を滑らかに繋ぐ方法 (BlendSurface)
外部ワークベンチ「Curves」が必要。
標準機能ではできない。
1~4のエッジと面を選択。
Curvesワークベンチの「BlendSurface」をクリック。
結果。
ツリーに出来た「Blend_Surface」を選択し、
データビューで面の連続性などの設定ができる。
ContinuityでG0, G1, G2等の設定ができる。
参考
| 記号 | 説明 |
|---|---|
| G0 | 位置連続 |
| G1 | 接線連続 |
| G2 | 曲率連続 |
0にしたらこうなる。
250327 BlendSurfaceについて補足
下図のように辺と面を選択して外部ワークベンチ「Curves」のBlendSurfaceを実行したとする。
①、②は選択した連続性で隣接の面と繋がっている。
しかし③は隣の面と繋がっていないので注意。
250326 BlendSurfaceで面の接続方向を反転させる方法
右上が意図と違う接続方法担っている。
ツリーでBlend_Surfaceを選択。
データタブを変更する。
Auto Scaleを「Manual」に、Scale1の数値の符号を反転させる
直った。
250327 サーフェスの穴を埋める「Filling」
下図のような穴を埋める例。
「Surface」ワークベンチのFillingを実行。
設定画面が開くので、Add Edgeを押して、穴の縁の4辺を選択。
設定画面のエッジをダブルクリックすると連続性の設定ができる(Continuity)
G0でエッジがある状態、G1は滑らか、G2はより滑らかにつながる。
G2にした例。変なしわができてきれいじゃない。G1のほうが見た目が良かった。
他の例
↓
250327 やや複雑な穴を埋めるテクニック

外部ワークベンチ「Curves」の BlendSurfaceでつなげるところをまず繋ぐ。
残りを「Surface」ワークベンチのFillingで埋める。
最初の穴の形状をFillingだけで埋めようとするとうまくいかないことがあった。
250327 やや複雑な穴を埋めるテクニック2
BlendSurface, BlendCurve, Fillingあたりを使えばなんとかなりそう。
BlendSurfaceは2つの辺しか選択できず、(選択していない)隣り合う辺との連続性を担保できないので注意。
Fillingはなるべく単純な形状にしてから実行しないと失敗する。

BlendCurveを作成
(BlendCurveを作成するために、事前に上側の面を分割している。
関連ノート 250326 サーフェスの面をサーフェスを使って分割する方法)
「Surface」ワークベンチのFillingで埋める。
外部ワークベンチ「Curves」の BlendSurface
「Surface」ワークベンチのFilling使用
「Surface」ワークベンチのFilling使用
250403 2つの閉じた形状同士を繋ぐ例
上と下をつなぎたい。エッジの数も異なる。
面との接続性を保ったまま一気に接続する機能が分からない(またはない?)
CurvesワークベンチのBlendSurfaceでまず繋ぐ。
残りを、SurfaceワークベンチのFillingで埋める。
面との接続をG1またはG2にする。
G2はなぜか面が汚くなりがち。
下側の円柱は、180°の円柱を2つ向かい合わせにしたもの。
360°の円柱一つだと、うまくいかない。
上と下の分割数はなるべく揃えたほうがうまくいきそう。
参考 250403 四角い面の分割数を増やす
サーフェスのトリム・分割
250407 スケッチを使ってサーフェスを分割する方法
円柱とスケッチを準備。(円柱はダウングレードしてサーフェス化)
Partワークベンチ→表面に投影を作成
「投影面を選択」をクリックして、円筒の面をクリック。
「ワイヤーを追加」をクリックしてスケッチの円弧をクリック。
方向は3次元のベクトルで表示されていて、X, Y, Zを押すとその方向、2回押すと逆方向、「現在のカメラ方向を取得する」を押すと3Dビューで見ている方向を指定できる。
Y軸方向に投影した例。
投影された線はツリー上で「Projection」となっていて、この時点では円筒の面とは別に存在している。
分割したい面とProjectionを選択し、「スライス分割」を実行。
面が「Slice.0」「Slice.1」に分割された。
分かりやすいように上側の面の透明度を上げた例。
他のソリッドやサーフェスのエッジや、CurvesワークベンチのFree hand BSplineなどを使っても分割可能。
その時は「ワイヤーを追加」ではなく「エッジを追加」をクリックしてから選択する。
230904 サーフェスでソリッドを分割する方法
ソリッドとサーフェスを準備
この例ではソリッドはPart Designワークベンチ、サーフェスはDraftワークベンチの矩形で作成している。サーフェスの作成方法はスケッチで四角を書いてSurfaceワークベンチのFillingしたり、スケッチで線を書いてPartワークベンチの押し出しをしたり作成方法は色々ある。
ソリッド→サーフェスの順に選択してPartワークベンチの「Slice apart」を選択すると分割され、「Slice.0」「Slice.1」と言うオブジェクトが生成された。

「Slice.0」「Slice.1」は「ボディ」ではないため、Part Designワークベンチで編集できない。
必要であればボディを作成して入れてやると続けて編集可能。
コンパウンドしたサーフェスでも分割できた


傘型のサーフェス(スケッチで斜めの線を書いてPartワークベンチで回転押し出しして作成)で分割した例


230904 サーフェスでソリッドを分割する方法(どうしてもうまく行かない時用)


上と下の2オブジェクトに分割されるのを期待したが、うまく行かない。
「Slice apart」の代わりに「Boolean fragments」を使用
見た目はあまり変わってないが、面ごとにばらばらになっている。
Draftワークベンチで「ダウングレード」すると面ごとにばらばらになる。
必要な面を選択してDraftワークベンチでアップグレードすればソリッド化できる。(アップグレード後の複数オブジェクトで共有する面は予めコピーしておく)
ただし、履歴が消えてしまう。
230904 サーフェスをトリムする方法 (簡単、低自由度)




パイプの反対側を残したい場合のやり方が不明。大きい方が残る?
230904 サーフェスをトリムする方法2 (面倒、高自由度)
複数サーフェスを準備し、選択
Partワークベンチ「Boolean fragments」
交差した面ごとに分割された状態になるが、この時点では個別の要素を削除したりはできない。
さっきのオブジェクトを選択してDraftワークベンチで「ダウングレード」
面が別のオブジェクトになるので、不要な面を削除する。
Partワークベンチのコンパウンドでまとめることができる
230904 サーフェスでサーフェスをカットする方法
2つのサーフェスを選択(この例では円筒を先に選択)
Partワークベンチ「Slice apart」
分割される。分割に使用した平面は消える。(非表示になる)
250326 サーフェスの面をソリッドを使って分割する方法


Ctrlを押しながらサーフェス → 立方体の順にクリックして複数選択する。
Partワークベンチ「Slice apart」を実行。
立方体で面が分割された
250326 サーフェスの面をサーフェスを使って分割する方法

Draftをで書いた矩形を配置
分割したいサーフェス → Draftの矩形の順にせんたくし、
Partワークベンチ「Slice apart」を実行。
分割された。
250327 サーフェスを視点方向でカット(トリム)する方法
外部ワークベンチ「Curves」を使用。
トリム対象のサーフェスと、トリムのツールとなるカーブを準備。
カーブはCurvesワークベンチのFreehand BSplineを使用して作成。
スケッチでもOK。他のサーフェスのエッジも利用可能。
サーフェスとカーブの接してなく、この視点たまたま重なっているだけ。
サーフェス、カーブの順に選択して「Trim face」
視点をずらすと、サーフェスとカーブは接していないことが分かる。
サーフェスをクリックした場所によりどちらが残るか決まる
カーブに対してサーフェスのクリック下側が残る。
カーブより下側のサーフェスの面をクリックして選択した場合
カーブより上側のサーフェスの面をクリックして選択した場合
クリックしたポイントは、データタブの「Picked Point」に記録されていて後から変更可能。
サーフェスのコンパウンド・ソリッド変換
230904 複数サーフェスを合体させるには「コンパウンド」作成
250324 サーフェスに厚みをつける方法


※ 厚みコマンドはソリッド以外には使えない
「オフセットを埋める」を選択すると閉じた形状になる
出来たオブジェクトはソリッドになる。

250324 複数のサーフェスをソリッドに変換する方法 (ソリッドに変換)
閉じた形状を準備する。
Partワークベンチでプリミティブの立方体を作成し、Draftワークベンチでダウングレードした。
6面を選択した状態でPartワークベンチ → コンパウンドを作成
バラバラだった面が一つにまとめられた。
コンパウンドを選択した状態でメニュー「パート」→「ソリッドに変換」
ソリッドが作成された。元のコンパウンドは残る。
注意 作成されたソリッドは履歴を持たない。
作成されたソリッド(Compound (Solid))は履歴を持っておらず、元のコンパウンドの形状を変更しても追従しない。
作成したソリッドからbodyを作成してPartDesignワークベンチで編集する場合、元のコンパウンド(サーフェス)に遡って編集したい場合がある。
その場合は、改めてコンパウンドからソリッドに変換し、bodyに作成されているBaseFeatureのリンク先を新たなソリッドに入れ替えるとよい。
多くの場合エラーが出るので、その場合あり一つずつ修正が必要。
250327 Curvesワークベンチに履歴付きでソリッド化できる機能がある?要調査。
250325 複数のサーフェスをソリッドに変換する方法 (シェル)
250324 複数のサーフェスをソリッドに変換する方法 (ソリッドに変換)
↑この方法のコンパウンドを作成する代わりに、
Draftワークベンチのアップグレードでシェルを作成することができる。
シェルはPartDesignボディのベースフィーチャーとして利用でき、ソリッドとして編集が可能。
しかしシェルにした時点で履歴が全部消えるのであまり使えない。
250324 サーフェスなどをソリッド化したオブジェクトをPart Designワークベンチで編集する方法
ソリッドを選択した状態でPart Designワークベンチの「ボディを作成」を押すと外部のソリッドが「BaseFeature」としてリンクされた状態のボディができる。
後は通常通り編集可能。

エッジが揃ってない閉じたサーフェス群をソリッドかする方法
下図のように、複数サーフェスで構成されていて閉じた形状であるが、各サーフェスのエッジの位置が一致していない状態をソリッドかしたい。
他のCADでは「サーフェスの編み合わせ」や「ステッチ」と呼ばれる機能。
はみ出た不要部分を削除する必要がある。Solidworksだとすべての面を選択して一発で終わるが、FreeCADだと1面ずつはみ出た面をスライスする必要がある。
まず①ボンネットのサーフェスから処理する。
下図の①~⑤の順番にCtrlを押しながら選択する。
PartワークベンチのSlice Apartを実行。
最初に選択した面が、それ以外の面によりスライスされる。
結果
中央の選択した(綠色の)面の周囲は不要。
ツリーから非表示にする。
Sliceに使用した面も非表示になるので、ツリーで再表示させる。
同様の操作を他の面に対して実行する。(非常に面倒くさい)
ツリーが非常にややこしくなるので、わかりやすく名前を変えたりして頑張る。
最終的に↓こうなる。

こうなれば、すべての面を選択してコンパウンド作成、ソリッド作成でOK。
見えてないが、底面、背面があり閉じた形状となっている。
サーフェス・その他
250326 2つのエッジを滑らかに繋ぐ方法
SurfaceワークベンチとCurvesワークベンチにそれぞれ「Blend Curver」がある。
Curvesワークベンチのほうが高機能な気がするのでこちらを使用する。

Surfaceワークベンチのでねじれた場合の修正方法
元のエッジの方向によってはねじれる。
First EdgeまたはSecond EdgeのStart Sizeを「-1.00」など負数にしたら直る。

Curvesワークベンチのパラメータ
ねじれた場合はScale1またはScale2を負数にしたら直る。
Parameter1(2)は、カーブの端点の位置を、元のエッジ上の場所で表したもの。
0mmで端っこ。反対の端にするには、1000 mmなど極端に大きい数値をいれると自動的に最大値が入力される。
250327 任意の2点を繋ぐカーブを作成する方法
外部ワークベンチ「Curves」のFreehand BSplineを使う。
3Dビューで適当な2点を選んでFreehand BSplineを実行。
2点が直線で接続される。
後はFreehand BSpline特有の編集方法で点を追加したり形状を調整できる。
250402 3D空間上に線を引いてアタリを作成する方法
Curvesワークベンチ → Freehand BSplineツールをクリック
3D空間上にスプラインができるので、ハンドルを掴んで好きな形状にできる。
3D上に描いた例。
一本ずつの線は独立していて、互いに拘束はない。(スナップをつけることはできる)
3面図の画像を表示しておいて、それに合わせてtopビュー、sideビューにしてスプラインを編集、みたいなことができる。

250403 四角い面の分割数を増やす

Curvesワークベンチ → Segment surface
結果。
分割数はプロパティから変更できる。
四角い面ならこれも大丈夫。
↓
三角の面だと失敗する。
↓
このツールをソリッドに使用すると、新たにサーフェスが作成される。
250404 面の上に分割したカーブを作成する方法




立体の面が分割されたのではなく、面の上にカーブが作成されただけの状態。
スイープの経路などに利用できる。
データタブで分割数などを変更できる。
250328 Curvesワークベンチ参考情報
Curvesワークベンチは強力なツールだが、説明があまりない。
公式ドキュメント(FreeCAD wiki)
内容が不十分。
https://wiki.freecad.org/Curves_Workbench
FreeCAD で曲面を作成する – パート 8(動画)
マウスをモデリングする例
https://www.classcentral.com/course/youtube-introduction-to-freecad-part-8-curved-surfaces-430100
FreeCAD 曲線ワークベンチ(動画)
https://www.classcentral.com/course/youtube-freecad-curves-workbench-90509
カーモデリングの例(動画)
[Freecad] Car Modelling – Rear Body Part 8
FreeCAD 3D Car Modeling Chevrolet Corvette
Curvesワークベンチ機能まとめ 260326
メニュー→「Curves」

Freehand BSpline
3D空間上にマウスドラッグで形状変更できる曲線を追加する。
Mixed curve
平面と側面にそれぞれ2Dスケッチを書き、選択してMixed Curveを実行すると、3次元のカーブが作成される。
長さが違っていたら、短い方にあわせられる。
Curve extend
カーブが延長される
↓
Join curve
Split curve
カーブを分割する(点が増える)
分割数はデータパネルで変更できる。
Discretize
カーブを選択して実行するとなんか点がいっぱい増える
Apporoximate
中間に点があるカーブを選択して実行すると、点が減る。
Interpolate
中間に点があるカーブを選択して実行すると、形状を近似した点のないカーブを生成する。
中間の点が1つなど、少ない場合は形が結構変わってしまう。
Blend curve
2つのカーブを滑らかにつなぐようなカーブを生成する。
連続性はC0, G1~G4を選択できる。


メニュー→「Surfaces」














BlendSurface
2つの面のエッジを滑らかにつなぐサーフェスを生成する。







その他
240318 スプレッドシートで寸法などを管理する方法
スプレッドシートで寸法などを一元管理できる。
Solidworksの関係式や設計テーブルに近い機能と思われる。
参考:
https://wiki.freecad.org/Expressions

六角棒レンチのサイズ違いをスプレッドシートで作成した例。
「一覧表」に各サイズの寸法を入力しておく。
B2~B4の黄色いセルが実際に寸法として参照されるセル。(エイリアスが設定されている)
一覧表から黄色いセルに必要な数値をコピーするとモデルの寸法も変更される。
240318 構成テーブル(Configuration Table/コンフィギュレーション)の使用

下記のように入力。2行目は開けておく。(Variant, 高さ, 幅, パターン1, パターン2などは任意の名前でよい)
セルB2を右クリック→「プロパティ」
出現したダイアログの「エイリアス」タブ→エイリアス名「Value_Height」を設定 (任意の名前でよい)
セルC2にも同様に、エイリアス名「Value_Width」を設定 (任意の名前でよい)
エイリアス設定したセルは黄色くなる。
A2~C4セルを選択→右クリック「構成表」
プロパティに「Body.Configuration」と入力(Configurationは任意の名前でよい)
セル範囲を、さっき選択した範囲に修正する。
この例だとA2 ~ C4。
囲った範囲が入力窓にそのまま反映されないようです。

スケッチを書き、幅の寸法をダブルクリック→「fx」と書かれた小さいボタンを押すと数式エディターが出る。
数式エディターに文字を入力すると候補が出るが、なぜか真っ黒で見えない(バグ?)
カーソルキーを操作するか、マウスのボタンを押しっぱなしにすると見える。(離すと確定する)
下のように入力。
数式が設定されると寸法がオレンジ色になる。
高さ方向の寸法も同様に入力する。
この時点で、ツリーの「Body」を選択→プロパティの「Configuration 」より設定したコンフィギュレーションが選択できる。

240318 構成テーブル(コンフィギュレーション)のアセンブリでの使用について
アセンブリに構成テーブルを設定した同一部品のボディを挿入し、一つはコンフィギュ1、もう一方はコンフィギュ2としたいとする。
しかし片方をコンフィギュ1にすると、もう一方も同じくコンフィギュ1になり、別のコンフィギュを同時に存在させられない。
解決策: Bodyではなくサブシェイプバインダーをアセンブリに挿入する。
ただし、そのままだとサブシェイプバインダーをアセンブリに複数挿入しても、一つのコンフィギュレーションを変更したら全て変化してしまう。
複数のコンフィギュレーションを挿入したい場合、コンフィギュレーションごとにサブシェイプバインダーを作成し、必要なコンフィギュレーションのサブシェイプバインダーをアセンブリに挿入する方法が考えられる。
サブシェイプバインダーは形状のみのリンクとなりツリー上の階層が平坦化されたものなので、形状作成時のフィーチャーは存在しない。原点や基準平面もないので、これらを使って合致をしたい場合は問題がある。
構成テーブルのサブシェイプバインダーを作る方法
何も選択していない状態でサブシェイプバインダーを作成。
Body内にサブシェイプバインダーが作成されたが、何にもリンクされていない空の状態。
Binderのプロパティの「Support」が空欄なので空と確認できる
BinderをBodyの外にドラッグ&ドロップして出す。
BodyをBinderにドラッグ&ドロップしてリンクさせる
Binderのプロパティの「Support」に「Body」が入り、リンクしたことが分かる。
Binderのプロパティの「Bind Copy On Change」→「Enabled」にする
これをしないと、Bodyのコンフィギュレーションを変更するサブシェイプバインダーのコンフィギュレーションも追従して変更され上に、サブシェイプバインダーではコンフィギュレーションを選択できない。
Binderのプロパティの「Configuration」項目が現れ選択可能になる
Binderを「パターン2」にした状態。(黄色透明がBinder)
バリアントリンクを使う方法 (非推奨)
アセンブリでリンクを作成して(PartsフォルダにD&Dしたらリンクになる)、「Link Copy On Change」がデフォルトの「Disabled」の場合は、一つのリンクや元ファイルのコンフィギュを変更すると全て追従して変化するが、「Enable」だと個別にコンフィギュを変更できる。ただし、これはコピーが作成されているようで、元ファイルの寸法を編集してもリンクに反映されない。
ツリー上の階層は残っていて原点や基準平面も利用できる。(バリアントリンク)
以下に「Link Copy On Change」についての説明あり
https://forum.freecad.org/viewtopic.php?f=17&t=42183&p=532130#p532130
コピーが作成されて、元部品への編集が反映されないのであまり利用価値がないように思う。
サブシェイプバインダーの見た目の変更方法
サブシェイプバインダーの半透明が嫌な場合は「ビュー」の「Use Binder Style」を「false」にすると元のボディと同じ見た目になる。
参考
https://forum.freecad.org/viewtopic.php?f=17&t=42183
https://wiki.freecad.org/Variant_Link
240404 構成テーブル(コンフィギュレーション)の使用例
| [保存場所] | C:\Users\(ユーザー名)\OneDrive\ドキュメント\240318_六角棒レンチスタンド\240402_部品(レンチ)ファイルに複数サイズのシェイプバインダーを作成した例 |
|---|---|
| [ファイル名] | AS_六角棒レンチスタンド_240402.FCStd |

六角レンチは外部ファイルをリンクとしてアセンブリファイルに配置している。
六角レンチのファイルに各サイズのシェイプバインダーを作成し、プロパティの「Bind Copy On Change」→「Enabled」にしてコンフィギュレーションを変更。
アセンブリファイルには、各サイズのシェイプバインダーのリンクを作成した。
元ファイルのBodyの例えば断面形状を変更すると、各サイズのシェイプバインダー、アセンブリ上のシェイプバインダーのリンクの形状も更新される。
240520 別の方法として、アセンブリファイルに空のシェイプバインダーを作成し、六角レンチのボディをリンクさせる方法も考えられる。
こちらのほうが、六角レンチのファイルのツリーがすっきりしていいかも。
こちらも、元ファイルの更新がシェイプバインダーに反映される。
| [保存場所] | C:\Users\(ユーザー名)\OneDrive\ドキュメント\240318_六角棒レンチスタンド\240520_アセンブリファイルに複数サイズのシェイプバインダーを作成した例 |
|---|---|
| [ファイル名] | AS_六角棒レンチスタンド_240520.FCStd |
やり方
Assembly3で作成したアセンブリファイルにサブシェイプバインダーを作成。(Partsフォルダの外にできると思うので、中にいれる。)
ツリーで、別ファイルの部品(六角レンチ)のボディをサブシェイプバインダーにD&Dでリンクさせる。
サブシェイプバインダーのプロパティの「Bind Copy On Change」→「Enabled」にしてコンフィギュレーションを変更する。
アセンブリ■■■■■
230626 アセンブリについての参考情報
A2PLUSとAssembly4がある
Assembly4
FreeCAD : Assembly4入門
https://take-web.com/cad/2022/12/freecad_animation
FreeCAD アセンブリ|部品の組み方を初心者向けに解説
https://cosmosdesign2021.com/fc019assembly
アセンブリへパーツファイルの配置を「プロジェクトの統合」で行っているが、「Insert Part」で行うべきと思う。プロジェクトの統合はSolidworksで言う「仮想化」となり、別ファイルではなくASファイルにコピーが内包されてしまう。
[MONOist] FreeCADでアセンブリってどうやるの? 2つのアプローチを検証してみた
https://monoist.itmedia.co.jp/mn/articles/2007/06/news015.html
T111 FreeCAD アセンブリ Assembly4
https://enginfo.jp/t111-freecad-アセンブリ-assembly4
FreeCAD Assembly4 でパーツを動かす方法
https://heavymoon.org/2022/12/10/freecad-assembly4-でパーツを動かす方法
公式Wiki
https://wiki.freecad.org/Assembly4_Workbench
公式ドキュメント(Github)
https://github.com/Zolko-123/FreeCAD_Assembly4
公式ドキュメント・マニュアル
https://github.com/Zolko-123/FreeCAD_Assembly4/blob/master/INSTRUCTIONS.md
公式ドキュメント・チュートリアル
https://github.com/Zolko-123/FreeCAD_Examples/blob/master/Asm4_Tutorial1/README.md
公式ドキュメント・チュートリアル アニメーション
https://github.com/Zolko-123/FreeCAD_Examples/blob/master/Asm4_Tutorial2/README.md
チュートリアル
https://help-freecad-jpg87.fr/02_ass_ind.php
A2PLUS
FreeCAD : A2PLUSの使い方調べる
https://take-web.com/cad/2023/04/a2plus_howto
FreeCAD Tips 2 アセンブリでパーツが動かせないとき。懐かしいあの方法で解決できる。【A2pと半球拘束】
https://leaves2min.blogspot.com/2022/02/freecadA2p.resolveBylever.formoveunderconstrains.html
公式Wiki
https://wiki.freecad.org/A2plus_Workbench
公式ドキュメント(Github)
https://github.com/kbwbe/A2plus
230626 Assembly3についての参考情報(リンク)
230812 複数ファイルをリンクさせて簡易アセンブリを作る方法
参考 https://www.xsim.info/articles/FreeCAD/HowTo/Assemble-multiple-files-into-a-single-file.html
外部のファイルにリンクしたモデル(ボディ)を配置する。
外部のファイルの形状を変更したら反映される。
Solidworksのアセンブリの感覚に近い。しかし合致で移動等はできない。
サブアセンブリにする場合、サブアセンブリに「Part」を作成し、その中にリンクしたボディを入れる。
親アセンブリでサブアセンブリのPartのリンクを作成することでサブアセンブリ化が可能。
Partを作成しないと、ファイルのトップ(ファイル自体)のリンクを作成することが出来ないので、ボディ個別のリンクしか作成できない。
230905 メニュー「表示」→「ツリービューアクション」→「ビューの同期」のチェックを外さないとうまく行かない。

チェックを入れていると、リンク元のファイルにリンクが作られてしまう。
230815 OLD
サブアセンブリも不可。
例えば「Top-Assy」、「Sub-Assy」と言うファイルを作り、「Top-Assy」に「Sub-Assy」のリンクを作成しようとしても、「Sub-Assy」自体のリンクは作成できない。
リンクできるのはボディだけなので、「Sub-Assy」内のリンクされたボディを個別にリンクすることしかできない。
→Partを用いれば可能
関連ノート
230814 別ファイルのボディを参照状態で取り込む (リンク)
230905 ツリービューが「シングルドキュメント」時のリンクの作成方法
「マルチドキュメント」だとツリーがゴチャついて見にくい。
「シングルドキュメント」はSolidworksの表示に近い
リンクを作成したいファイル(リンク先)とリンクされるファイル(リンク元)を開いておく
リンク先で「リンクを作成」
空のリンクが作成されるので選択して「データ」タブ→「プロパティ」→「Linked Object」の「…」をクリック
出現したダイアログでリンク元のオブジェクトを選択(ファイル自体は選択できない、下図はボディを選択)→OK
作成されたリンクの名前は自動で変更されず「Link」のままなので必要なら手動で修正する。
備考: シングルドキュメントの設定方法
メニュー「表示」→「ツリービューアクション」→「シングルドキュメント」
230814 A2Plusを試す
気づいたこと
アセンブリ状態で(他の部品を参照しながら)部品の編集ができない。
ツリーはAssembly4よりシンプルになる。
形状による合致が可能。
外部ファイルをパーツとして使うことができる。
座標系同士を合致させたり、パーツの原点や正面を合致(拘束)させたりはできない?
拘束の使い勝手はSolidworksに近い。
拘束をスペースキーで非表示にすると、Solidworksでの「抑制」状態となり、一時的に無効にできる。
サブアセンブリが作成可能。パーツを読み込むのと同じ手順で読み込める。
しかしサブアセンブリ内のパーツやボディは親アセンブリからツリー上で見えない。
親アセンブリを開いた状態でサブアセンブリの拘束を編集してパーツの位置を変える、とかも出来ない。
コマンド説明
パーツファイルを読み込む
パーツファイルを別ウィンドウで編集できる
編集したパーツファイルを反映させる(これを押さないと反映されない)
パーツを移動させる。拘束のついた他の部品は「解決」しないと自動で追従しない。
Solidworksでは拘束された方向には動かないが、このコマンドはとりあえずどの方向にも動かせる。移動後に「解決」すると拘束により位置が再計算され、正しい位置に戻る。

3Dビュー上でマウスドラッグで拘束に基づいてパーツを動かせる。
拘束されている方向には動かず、Solidworksに近い感触。

「解決」する。パーツを移動させたあと、拘束が矛盾ないように再計算する
240221 同じパーツやアセンブリを複数配置(インスタンス作成)する方法
下図は4つのSpacerがあるが、一番上のは外部ファイルへリンクされている。(アイコンにリンクを表す「>」が付いている)
下の3つは、上のSpacerのリンクを作成している。
方法
外部ファイルへリンクされたパーツ(アセンブリ)が1つだけの状態からスタート。
ツリー上のパーツを右クリック→「リンクアクション」→「リンクを作成」
「Assembly」コンテナの外にリンクが作成されるので、「Parts」フォルダの中にD&D。
必要に応じて合致を付けて配置でOK。
230815 [調査中]マニュピュレーターワークベンチ
オブジェクトの移動をサポートする外部ワークベンチ
擬似的なアセンブリが可能。(拘束はなく、単純にその位置に配置できる、と言う意味)
https://geek.tacoskingdom.com/blog/79
リンクしたボディにはうまく動作しない?
外部ファイルをリンクしてこれで位置合わせしたら、いい感じにアセンブリ出来そうだったのだが・・・
230905 移動に利用できる要素、利用できない要素
ボディの面や頂点、X, Y, Z-axisは利用できた。
スケッチの線や頂点も利用できた。
ローカル座標系、データム点、テータム平面は利用できないっぽい。
230816 [調査中]Part→アタッチメントで部品配置できる?
使い方が不明だが、オブジェクトを移動できるようだ
参考
https://www.xsim.info/articles/FreeCAD/tools/Part_Attachment.html
230905 Draftワークベンチの「移動」「回転」で部品を配置する

Draftワークベンチの「移動」はオブジェクトの頂点を合わせるような移動が可能。
複数オブジェクトを選択してまとめて移動したり、パーツコンテナに複数オブジェクトが入った状態でまとめて移動したりできる。
辺や面を合わせるようなことはできない。
データム点も利用できない。
スケッチの頂点は利用できる。
簡易的なアセンブリには使えるかもしれない。
230329 オブジェクトの座標を直接数値指定する方法
オブジェクト(パーツやボディ)をツリーで選択し「データ」タブの「Position」や「角度」で指定できる。
「角度」は「軸」を展開してxyzに数字が入っている軸の方向に指定の角度回転する。
複数の軸に数値が入っている場合、数字の割合によって回転する方向が変わると思うが、詳細不明。
パーツの中にボディが入っている場合、それぞれ合算される。
かんたんなものであればアセンブリ系のワークベンチを使わずに簡易アセンブリができる。
240402 部品の置き換え(リンク先の変更)する方法
アセンブリにおいて、外部ファイルにリンクされている部品を別ファイルの部品に置き換える(差し替える)方法。
①ツリーで置き換えたいBody等を選択 → ②データタブ → ③「Linked Object」の「…」をクリック → ④あらかじめ開いておいた置き換え後のファイルのBodyなどを選択 → ⑤「OK」
置き換え後の様子
アセンブリ[Assembly3ワークベンチ]■■■■■
230626 Assembly3についての参考情報(リンク)
公式Wiki
https://wiki.freecad.org/Assembly3_Workbench
作者公式ドキュメント(Github)
https://github.com/realthunder/FreeCAD_assembly3
wiki
https://github.com/realthunder/FreeCAD_assembly3/wiki
アセンブリのチュートリアル
Assembly3を対象としたものでなく古いが、作者がまず読むことをおすすめしている
https://web.archive.org/web/20191130140733/https://www.freecadweb.org/wiki/Assembly_Basic_Tutorial
230822 Assembly3を試す
◯ 形状による合致が可能。
◯ A2Plusと違い、アセンブリ状態でのパーツ編集が可能。
◯ 各ボディの基準面を利用した合致が可能(Solidworksと似た感覚で使える)
◯ 外部ファイルの形状を利用したモデリング可能(パネルのスイッチの位置に穴を開けるみたいな。サブシェイプバインダーを利用)
✕ 会社PCで何故かAssembly3ワークベンチのインストールがうまく行かない(py-slvsがどうのこうの)→解決済み(240219 Assembly3のインストールについて)
ちょっと触った感触では、なかなか良さそう。
240219 Assembly3のインストールについて
ワークベンチ自体はアドオンマネージャーから簡単にインストールできるが、追加のプログラム「py-slvs」が必要になる。
py-slvsはSolveSpaceというCADのソルバーを利用するためのもの?Assembly3と同じ作者の作のようだが、Assembly3に同梱されていない。
Assembly3の起動時にpy-slvsがないと出るダイアログがでる。
通常は「はい」をクリックすればOKだが、会社のPCでは、黒い画面が一瞬出たあとなぜか下記ダイアログがでて失敗する。
アセンブリを作成してもツリー上のアイコンがグレーアウトして赤いマークがでている。
正常時は↓こうなる。
最初のダイアログのsolvespaceがリンクになっていたのでクリックしたら下記URLに飛んだ
https://pypi.org/project/py-slvs
↓これをダウンロードしてみたが、SolveSpaceのCAD本体だった。
solvespace.exe
py-slvsがリンクになっていたのでクリックしたら下記URLに飛んだ
https://pypi.org/project/py-slvs
↓これをダウンロードしてみた。Pythonののパッケージらしい。
py_slvs-1.0.6-cp38-cp38-win_amd64.whl
最初これ↓で試したがうまくいかなかった。
py_slvs-1.0.6-cp311-cp311-win_amd64.whl
cp38はPython3.8のことで、cp311はPython3.11に対応するらしい。
FreeCAD内蔵のPythonのバージョンと合わせる必要がある可能性がある。
Pythonコンソールでバージョンが確認できる。
whlはPythonのパッケージをローカルでインストールするためのファイルらしい。
各環境でビルド済みのファイルが提供されている。
実態はzipファイルなので、拡張子をzipに変更して展開。
下記2つのフォルダがある。
– py_slvs
– py_slvs-1.0.6.dist-info
2つのフォルダを下記にコピー
C:\Program Files\FreeCAD 0.21\bin
この状態でFreeCADのAssembly3ワークベンチを開くと例のダイアログは出なくなり一応機能することが確認できた。
その他試したが無駄だったこと。
Python3.12をインストールしてコマンドプロンプトでpipを実行
「Failed to install py-slves」のエラーダイアログが出た後のFreeCADのレポートビュー
レポートビューで確認できたpip↓をコマンドプロンプトで試してみる。
pip install –user –disable-pip-version-check py-slvs
CMDでPythonスクリプトのパスに移動 (C:\Users\(ユーザー名)\AppData\Local\Programs\Python\Python312\Scripts)
pipコマンドを実行
エラーが出てうまくいかない。
管理者として実行
240220 Assembly3の使い方
パーツとして外部ファイルをリンクする方法
アセンブリ用ファイルを作成し保存
Assembly3ワークベンチでアセンブリを作成
パーツファイルを開く
ツリーの表示はマルチドキュメントにして、アセンブリとパーツのファイルが療法表示された状態にする。
パーツのボディをアセンブリファイルの「Assembly」フォルダ(または「Parts」フォルダ)にD&D。(パーツのファイルではなくボディをD&Dすることに注意)
ボディへのリンクがAssemblyフォルダ内のPartsフォルダに作成される。
240221 Assembly3合致のコツ
過剰な拘束はすぐにエラーを吐く。
拘束の数はなるべく減らし、競合しないようにする必要がある。
例えば固定された基板に対してパネルに合致を付けた例。
3つのPlaneAlignmentにオフセットを付けているが、各面が直角じゃなくなるとエラーを吐くかもしれない。


次の2つの拘束にするとエラーが起きにくいかもしれない。

240221 Assembly3 アセンブリファイル内で作成したパーツやボディを別ファイルにする方法
Solidworksで言うところの仮想部品を外部ファイル化する方法。
まずアセンブリファイルでパーツやボディを作るには、アセンブリを開いた状態で「パーツを作成」、「ボディーを作成」ボタンを押す。
アセンブリフォルダの外に作成されるので、PartsフォルダにD&D。
形状を作成したりする。(この時点でPartsフォルダ内にパーツ(ボディ)の実体があることになる)
外部ファイル化したくなったタイミングで、ファイルを新規作成し、名前をつけて保存(この時点では中身は空)
ツリーの表示を「マルチドキュメント」にし、新規作成ファイルにアセンブリ上のパーツやボディをD&D。
アセンブリ上からは一旦パーツ(ボディ)は消えるので、再度外部ファイルのパーツ(ボディ)をアセンブリのPartsフォルダにD&D。
Partsフォルダにパーツ(ボディ)のリンクが作成される。
240221 Assembly3 Elementsの参照が切れたときは手動で修正可能
Assembly3はジオメトリに直接合致を設定するのではなく、「Elements」が自動的に作成されてElementsに合致が設定される。らしい。
モデルをいじったりしているとElementsフォルダ内のアイコンに赤いビックリマークが出てエラーとなることがある。
ツリー上のElementsをクリックしたときに3Dビュー上にハイライトされる要素(面や辺、点)に対応するモデルの要素を選択し、ツリー上で選択されたボディやフィーチャーを該当のElements上にD&Dすると参照を再設定できる。
パーツを他のものに置き換えるときも、既存の合致やElementsを削除して再設定するのではなく、この方法で置き換えるとよい。
参考 https://github.com/realthunder/FreeCAD_assembly3/wiki/Replacing-Part
240226 サブアセンブリの作成方法
下記2つの方法が考えられる
1. 別に作成したアセンブリをツリー上でPartsフォルダにD&Dする
2. アセンブリ内にサブアセンブリを作成し、外部ファイル化する
2の方法について説明
アセンブリ上に「Create Assembly」で新規にサブアセンブリを作成。
サブアセンブリの「Parts」フォルダにサブAssy化したいパーツをD&D
この時点でサブアセンブリは、上位アセンブリファイルに内包された状態(SWで言う仮想化状態。)
外部ファイル化するには、新規ファイル作成して名前をつけて保存。
ツリーをマルチドキュメント表示にして新規のファイルにD&D
元のAssyからサブAssyが消えるので、再度D&Dして戻す。
エレメンツの参照が切れた場合は、修正する。(既存の合致を修正するか、削除して新たに合致をつける)
240321 よく使う合致まとめ
合致の種類が多くてよく分からないので、使用頻度が高いものをまとめる
参考: https://wiki.freecad.org/Assembly3_Workbench#Elements

ロック: オブジェクトの面を選択して固定する。
点やエッジを選択した場合は、回転を拘束できないので注意。

平面整列: Solidworksの「一致」に近い。オフセットを設定した場合はSWの「距離」に近い。

平面一致: 面が一致(又はオフセット)し、中心も一致する。
アセンブリ[Assembly4ワークベンチ]■■■■■
230814 Assembly4を試す
気づいたこと
Assyファイル(親ファイル)にパーツとなる別ファイルのボディを「プロジェクトの統合」で取り込むと、別ファイルとの参照関係(リンク)はなくなる。
別ファイルのボディを「リンクを作成」で取り込むと参照関係(リンク)を保て、Solidworksのアセンブリ、パーツに近い感覚となる。
関連ノート
230814 別ファイルのボディを参照状態で取り込む (リンク)
Assyファイル(親ファイル)の「Parts」フォルダにパーツのボディを取り込み「Assembly」フォルダに配置するが、「Assembly」内のボディは「Parts」フォルダのボディにリンクされている。
どちらのフォルダのボディからもフィーチャーの編集は可能。一方を編集したら他方にも反映される。
アセンブリ状態を見ながらの編集については、「Assembly」内のパーツのフィーチャーを編集すると自身を含めてボディがすべて非表示になる。手動でツリーからボディを選んでスペースキーで表示させることは可能。(でも面倒)
形状による合致で部品の位置決めができない。
各パーツに座標系を作成して、座標系同士を一致させる方法となる。オフセットは可能だが、90度単位でしか回転が出来ない?
サブアセンブリの作成も可能。「Parts」フォルダにサブアセンブリのリンクを作成し、Insert Part
でアセンブリフォルダにリンクを作成する。
合致に不満があるが、それなりに使えそうな手応えを感じた。
ただし非常に手間がかかりそう
Assembly4の部品の配置は、Fusion360の「ジョイント」に近い気がする。
230817 Assembly4で作成する「Assembly」は本質的には標準機能の「Part」と同じ
参考 https://github.com/Zolko-123/FreeCAD_Assembly4/blob/master/INSTRUCTIONS.md
230822 合致で参照されているパーツ(親パーツ)から参照しているパーツ(小パーツ)のシェイプバインダーは作成できない?
Edit Placement of a Partで削除したら作成できた。
よく使うコマンド
アセンブリの作成
パーツをアセンブリフォルダに配置
部品位置の編集
230821 Assembly4のワークフロー(検討中)
Assembly4ワークベンチでボディを作成すると良い。原点位置に最初からローカル座標が設定されていて便利。
ボディ作成時に名前もつけれる。
アセンブリ上で新規部品としてボディを作成→PartsフォルダにD&D→アセンブリ上に配置→新規ファイル作成→ボディを新ファイルにD&Dして名前をつけて保存→アセンブリ上のリンクが切れるので、再設定
とか?
アセンブリ上にレイアウト用のボディを作るとか?
そのボディにスケッチで各部品の形状をざっくり書いて検討、位置設定用のローカル座標(LCS)を作成して各部品を配置する。
230822 アセンブリに部品を追加する場合
アセンブリ上でAssembly4ワークベンチの「New body」(Assembly内には直接入らず、Partsフォルダに入る)
他の部品形状を参照する場合、シェイプバインダを作成。
最初のスケッチの形状、サイズをシェイプバインダを参照して決める。(この時点では原点位置は気にしない)
スケッチの形状、サイズが確定し、位置に拘束がついてない状態にし、原点位置が希望の位置になるよう、スケッチに拘束をつける。(シェイプバインダは一旦削除する)
押し出しなどで立体化。
新規ファイル作成して保存し、ボディをD&Dして別ファイル化。
アセンブリに戻り、Insert Partでアセンブリに挿入。(配置用のLCSは作成しておく)
参照用として必要があれば、再度他パーツのシェイプバインダを作成。アセンブリ上で「同期」すると、アセンブリの配置でのシェイプバインダを得られる。
230830 Layoutボディを使う方法
部品の形状、レイアウト(配置)の検討用のボディ「Layout」を作成。
部品の形状をスケッチでざっくり書いて検討する。
スケッチの頂点に座標系(LCS)を作成→部品の原点にするため
ファイルを新規作成し、ボディを作成して保存(形状はまだない)
アセンブリにそのボディをインサート→Layoutのスケッチで定義したLCSにアタッチ。
アセンブリ上のボディより、Layoutのスケッチのサブシェイプバインダーを作成。(場所が正しくない場合「同期」する。)
部品のファイルを開いてLayoutのスケッチのサブシェイプバインダーを元に形状を作成する。
230905 アセンブリに部品を追加する場合2 (アセンブリファイル内にパーツ作成)
個別の部品ファイルにするのは後にして、とりあえずアセンブリファイル内にパーツを作成していくときの方法(Solidworksの「仮想化」状態)
アセンブリ上でAssembly4ワークベンチの「New body」(またはNew Part)(Assembly内には直接入らず、Partsフォルダに入る)
Insert Partでアセンブリに挿入。(配置用のLCSは先に作成しておく)
他の部品形状を参照する場合、シェイプバインダを作成して形状作成。
Body(Part)を別ファイルに保存する場合
新規ファイル作成&保存→アセンブリのPartsフォルダ内のBody(Part)をD&Dして新ファイルに移動。
アセンブリファイルのAssemblyコンテナ内に配置したBody(Part)のリンクが切れていたら、「データ」タブ→プロパティ「Linked Object」(おそらく値が空欄になっている)の右の「…」をクリックし、目的のBody(Part)を選択。
アセンブリ[Assemblyワークベンチ] (Ver.1.0)■■■■■
240911 Assemblyワークベンチ試用
FreeCAD 1.0より標準搭載のAssemblyワークベンチを試す。
試用Ver. FreeCAD 1.0.0RC1
全体的に使用感がSolidWorksに近づいていると感じる。
Assemblyコンテナがアクティブのとき、内包しているパーツをマウスドラッグで移動出来る。
アセンブリとパーツの基準平面同士をジョイントすることは出来ない。データム平面同士をジョイントすることは出来る。
パーツ同士の基準平面をジョイントすることができた
assemblyないのパーツの最低一つは固定する必要がある。固定しないと他のジョイントをつけられない。
Assemblyにリンクを作成し、外部ファイルの部品をリンクさせられる。
Assembly上で部品の編集が可能。しかし新規のスケッチを作成すると選択している平面にすんなりアタッチできない。
240913 アセンブリファイル内にBodyを作成した後に別ファイルにする方法
アセンブリファイル内にBodyを作成した後に別ファイルにした場合、ジョイントが消えるので再度設定する必要がある?
別ファイルにした方法は下記と同じ。
240221 Assembly3 アセンブリファイル内で作成したパーツやボディを別ファイルにする方法

ただし、外部ファイル化したファイルを再度挿入するときは「コンポーネントを挿入」を使う。
250325 アセンブリに別ファイルのパーツを挿入する方法(コンポーネントを挿入)
アセンブリの準備
新規ファイル作成 → Assemblyワークベンチ → アセンブリを作成
ファイルを名前をつけて保存する。(保存しないと別ファイルのパーツを挿入できない)
コンポーネントを挿入
挿入したいBodyを選択する。
ツールの名前は「コンポーネントを挿入」だが、実際はリンクを作成している。
260501 Altドラッグで別ファイルのパーツを挿入(リンク作成)できる
アセンブリに別ファイルを挿入する時はコンポーネント挿入でできるが、
挿入したいパーツのファイルを開いて、ツリーをマルチドキュメントにし、目的のパーツをALTを押しながらドラッグ&ドロップするとリンク作成出来る。
250325 サーフェスをアセンブリに組み込むときはPart
260416 パーツの配置は「固定」拘束だと問題が起きにくい。
- パーツの面同士に拘束をつけて目的の位置に配置する
- 1で付けた拘束を削除し、固定拘束をつける
パーツの面同士で拘束すると、パーツを編集したら変な位置に勝手に移動することがある。トポロジ上の命名問題による。
この方法では、一旦はパーツの面同士で拘束を付けて目的の位置に配置するが、直ぐに削除して固定拘束に置き換えているため、意図しないパーツの移動が起きにくいと考えられる。
固定後に1mm移動させたい場合、以下の方法で可能。
- 固定拘束を削除
- パーツの「Placement(位置)」のXYZ方向の数値に1mm増減
- 再度固定拘束追加
アセンブリ平面とパーツ平面の「距離」拘束でも可
ただし正面、右側面、平面と3方向付けないといけないので面倒。
しかも目的の位置に配置後に距離拘束を付けようとすると、現在の距離を自動で入れてくれなくて距離が「0」となり、自分で数値を入れなければならないので面倒。
260506 アセンブリに挿入したアセンブリ(外部ファイル)のパーツ削除でエラーが出る
親アセンブリに挿入した子アセンブリ(外部ファイルをリンクとして読み込んでいる)を開き、パーツを削除する。
親アセンブリに戻って更新すると、ツリーの削除したパーツに赤い印がついてエラーとなっている。
この状態で子アセンブリにパーツを追加しても、親アセンブリではエラーが出たままで反映されない。
親アセンブリを開いた状態で、子アセンブリ内のパーツをすべて削除して更新すると解消する。
親アセンブリからは子アセンブリ内のパーツを実際に削除できないらしく、ツリー上で削除して更新すると最新の状態で復活する。
260506 親アセンブリに挿入した子アセンブリの編集について
親アセンブリに挿入した子アセンブリが外部ファイルのリンクか、そのファイルに内包されているかで挙動が変わる。
内包されている場合は右クリックして子アセンブリをアクティブにすることができ、子アセンブリ内のパーツの位置も動かせる。
外部ファイルのリンクの場合は右クリックしても「アクティブなオブジェクト」の項目がなく、子アセンブリ内のパーツの位置も動かすこともできない。
260507 アセンブリに挿入されたリンク元のファイルを確認する方法
確認したいパーツ(のリンク)を選択し、「データ」タブの「Linked Object」の項目上でマウスホバーすると表示される。
相対パスになっているようだ。
260507 リンクされた外部ファイルを別のファイルに置き換える方法
- 置き換えたいファイルを開く
- データタブの「Linked Object」の右の「…」をクリック

- リンク先選択のダイアログで置き換えたいパーツを選択。(ファイルではなくパーツを選択する)

260507 アセンブリ内の外部ファイルのリンク(パーツ、アセンブリ)を別ウィンドウで開く方法
- 開きたいリンクをツリー上で選択

- データタブの「Linked Object」の右のリンク先の文字列をクリックすると別ウィンドウで開く。

ツリー上でリンクをダブルクリックで開ける時もあれば、なぜか開けないときもある。
スケッチ関連■■■■■
230626 [スケッチ]構築ジオメトリ (作図線, 補助線)
作図線, 補助線などの機能は「構築ジオメトリ」で可能
230712 [スケッチ]駆動拘束と参照拘束 (Solidwroksの従動)
スケッチの寸法は駆動拘束と参照拘束の切り替えが可能。
「参照拘束」はSolidwroksの「従動」に相当し、寸法は他の拘束で決まるが、目視で寸法を確認したいときに入れることができる。
230712 スケッチ平面をオフセットしたい場合「スケッチャー」ワークベンチなら可能
パートデザインワークベンチでは原点を通る平面か、ソリッドの平面しかスケッチできない。
230815 スケッチ編集時にオブジェクトを非表示にしない方法
ツリーでスケッチをダブルクリックして編集するとき、3D形状が非表示になることがある。
設定→「スケッチャー」→「スケッチに依存している全てのオブジェクトを非表示」のチェックを外すと、非表示にならなくなる。
230830 スケッチを遡って編集すると、後工程の「外部ジオメトリ」がくずれがち
1 スケッチを書いて押出
2 側面に2つ目のスケッチを作成し、外部ジオメトリ作成
3 最初のスケッチに戻り、線を分割
4 2つ目のスケッチが外部ジオメトリが崩れている。
エッジや面の名前で管理しているのかもしれない。
遡って編集すると、自動で割り振られる名前が変わり、望ましくない結果となる。
230901 スケッチの面を変更する方法
フューチャーを遡って編集したりすると、スケッチされる面がおかしなところに行くことがある。(トポロジ上の命名エラー)
修正する方法。
スケッチをツリーで選択 → 「データ」の「Map Mode」の「FlatFace」と書いてるとこをクリックすると右に「…」が出るのでクリック。
下の画像で「平面」となっているところをクリックすると「選択」になるので、3Dビュー上で新たな面をクリックして選択する。
参考 https://wiki.freecad.org/Topological_naming_problem
241016 スケッチの面を変更する方法2 (スケッチをアタッチ)
XY平面にアタッチされているスケッチをXZ平面に変更する例
XZ平面を選択した状態でメニュー「Sketch」→「スケッチをアタッチ」


変更した状態
250326 スケッチの面を反転、オフセット、回転する方法
XZ平面(正面)などで反対(裏面)からスケッチしたい場合がある。
まずスケッチを作成する。(または作成済みスケッチがあるとする)
スケッチの編集を抜け、ツリーでスケッチを選択。
「データ」タブ→「Attachement」→「MapMode」右の「…」をクリック。
「タスク」の表示が切り替わり「面を反転」にチェックを入れればOK
他に、XYZ方向にオフセットしたりXYZ軸周りに回転させたりできる。
スケッチ平面から見たローカル座標での指定となる。
240227 スケッチを配置できる場所
ツリー上のスケッチの場所として以下のいずれにも配置できる
– ファイル直下 (下図の「Sketch001」)
– Part内 (下図の「Sketch003」)
– Part内のBody内 (下図の「Sketch」)
– Body内 (下図の「Sketch」)

依存関係に矛盾がなければD&Dで移動できる。
240402 スケッチ時に断面表示にして見やすくする方法 – セクション表示

セクション表示
スケッチ面より手前にある他のスケッチやソリッドが邪魔なとき、セクション表示にすると作業しやすい。
ソリッドが不透明の場合スケッチが見えない時があるが、そんなときにも有効。
通常表示時
セクション表示時
241003 寸法、拘束を非表示にする方法
寸法、拘束が邪魔で線が見にくいとき「仮想スペースの切り替え」を押すと非表示になる。
より詳しく説明すると、通常スペース(正式な名前は不明)と仮想スペースという2つの表示が存在する。
通常の寸法や拘束は通常スペースに存在するが、「仮想スペースの切り替え」ボタンを押すと、表示が仮想スペースに切り替わり、見えなくなる。
寸法や拘束を選択した状態で「仮想スペースの切り替え」ボタンを押すと、表示の切り替えではなく選択肢たものを仮想スペース(又は通常スペース)に送ることができる。
241003 スケッチの線や構築線を非表示にする方法
タスクビューの「要素」のチェックを外すと個別に非表示に出来る。
ただし外部ジオメトリは非表示に出来ないようだ。
241003 通常、外部、構築ジオメトリの表示順序のコントロール方法
「レンダリング順を設定」ボタンを押すと通常、外部、構築ジオメトリがあり、この順で描かれる。
下の画像では通常ジオメトリと外部ジオメトリが重なっていれば、通常ジオメトリが優先的に描画される。
ドラッグで順序の入れ替えが可能。
250407 スケッチ平面と交差する形状を投影する方法
斜めのスケッチ平面に、円筒が交わる輪郭(断面)を投影する例
スケッチを描いて、データム平面を2つ作成

下図で表した平面に断面となる直線をスケッチ。
円筒はPartDesignボディだが、このスケッチはボディの外に作成する。
サーフェスに投影を実行。
「投影面を選択」で円筒面を選択。
「ワイヤーを追加」でスケッチした線を選択。
スケッチしたデータム平面を選択→右クリク→選択範囲に配置で、ビューを平面に垂直にする→現在のカメラ方向を取得するをクリック。
最終的にほしいのと同じラインがプロジェクションされたが、まだボディの外にある。
ボディをアクティブにし、プロジェクションを選択→サブシェイプバインダーを作成。
下図の平面でスケッチ作成し、「外部ジオメトリ作成」でサブシェイプバインダーを作成すると投影された断面を得られる。
しかしこの「外部ジオメトリ作成」で得た線は押出などには利用できない。
合致を付けたりするのは可能。
所感
Solidworksならエンティティ変換→交線カーブですぐにできる作業。
FreeCADはやたらと手数がかかる。
250408 外部ジオメトリを直接押し出しなどに利用する方法 (Ver1.0以前)
外部ジオメトリは通常は直接押し出しなどに利用できず、外部ジオメトリを使って新たに作成する通常ジオメトリに合致を付けたり寸法を入れたりするのに使う。
※260416 Ver.1.0移行では外部ジオメトリを直接押し出しに利用できるようになった。
円筒面の上面にスケッチし、長方形を外部ジオメトリにした状態。
要素には直線4本の外部ジオメトリがある。
「ジオメトリをB-スプラインに変換」をクリック。
外部ジオメトリの直線がB-スプラインに変換された。
押し出し(パッド)するとこのようになる。
外部ジオメトリの形状をそのまま利用することができた。
外部ジオメトリと同じ形状で押し出したい時、直線や円弧ならなんとかなぞって同じ形状を作成できるが、Bスプラインや複雑な形状だと不可能。
この方法なら可能となる。
260416 別パーツのスケッチや形状を外部投影する方法
手順
- ボディ内に外のパーツやボディを参照したサブシェイプバインダーを作成
- ボディ内にスケッチを作成し、サブシェイプバインダーに外部投影する
解説
外部投影(外部ジオメトリ)は基本的に同一ボディ内でのみ機能し、アセンブリ内の他のパーツやボディの形状やスケッチは投影出来ない。
スケッチから見たサブシェイプバインダーは同一ボディにあるため、外部投影ができる。
260416 外部投影で作ったスケッチのリンクを解除する方法
手順
- スケッチに外部投影で作成した線をコピー、貼り付け
同じ位置、同じ形状でリンクのない線がコピーされる - 外部投影の線を削除
「要素」欄の紫の線、(ExternalEdge)と付いているのが外部参照なので、これを選択して削除するのが早い
- コピーした線に拘束を追加
コピーした線は水平垂直をはじめ全ての拘束がついてない状態。
線同士も繋がってないので押し出しにそのままでは使えないため、端点に一致拘束を追加する必要あり。
拘束は面倒なら固定拘束をつける。
背景
例えば別パーツやアセンブリのマスタースケッチを参照したサブシェイプバインダーを作成し、スケッチでサブシェイプバインダーに対して外部投影を行う場合がある。
SolidWorksの場合、パーツ間では極力外部参照を付けないように運用している。
後々、外部参照の関係が分からなくなり混乱するので。
FreeCadのサブシェイプバインダーは外部パーツにリンクされた状態、SWでいうところの外部参照ありの状態である。
さらにスケッチの外部投影はサブシェイプバインダーにリンクされていて、外部のパーツやスケッチが変更されると追従することになり、管理が困難になる。
外部投影のリンクを直接削除する機能はないと思う。
260421 DXFファイルをインポートする方法
確認FreeCAD Ver 1.1
DXFファイルを利用してモデリングしたりする方法
事前準備(設定)
設定 → インポート/エクスポート → DXF
「旧来のインポート機能を使用」にチェック
こうしないとなぜかインポートしても空白になった。
インポート実行
新規ドキュメントを開く(開いておかないとインポートできない)
メニュー「ファイル」 → 「インポート」 → ファイルを選択
スケッチに変換
読み込むと↓こういう状態。
必要な「Line」をツリーで選択し、Draftワークベンチで「アップグレード」してWireに変換する
Wireを選択して「ドラフトからスケッチへ」を実行
生成されたスケッチ以外は削除してよい。
後は作成したスケッチをBodyに入れたら押し出したり出来る。
設計について■■■■■
230712 各面ごとに2Dスケッチをして構想設計は可能か?
現時点の結論: Solidworksの3Dスケッチのような機能はなく、複数の面(正面、平面等)に別々に2Dスケッチを描く必要がある。
しかも他のスケッチをうまく参照することが出来ない。
スケッチ同士に拘束を付けることは諦めればなんとかなるかも。
幸い、先に作成したスケッチを編集中でも後に作成したスケッチを見ることはできる
ただし、その後のソリッド化はどうする?
スケッチを作成したのと別ボディからだと、構想のスケッチに外部参照をつけられない?
230712 スケッチをBodyの外にD&Dすると前後関係がなくなる?
平面、正面、右側面ごとにスケッチを書いて検討、みたいなことができるかも?
他のスケッチを「外部ジオメトリー」で外部参照して取り込むこともできる。参照元のスケッチを変更するときちんと追従する。
→お互いを外部参照することはやっぱり出来ない
230712 先に作成したスケッチを編集中も、後のスケッチを表示可能(外部参照不可)
「Sketch_01」、「Sketch_02」があり、「Sketch_01」を編集状態にした時点では「Sketch_02」は非表示となる。
コンボビューで「Sketch_02」を選択してSpaceキーで表示させることが可能。
ただし後に作成したスケッチに外部参照(外部ジオメトリ)を付けることはできないし、選択することも出来ない。見えるだけ。
その他■■■■■
230626 別の部品ファイルをインポートしてマルチボディにする方法
メニュー「ファイル」→「プロジェクトの統合」→ファイルを選択
元ファイルとのリンクはない。
関連ノート
230814 別ファイルのボディを参照状態で取り込む (リンク)
230626 非表示にするにはツリー上でSpace
平面やボディ等の表示/非表示切り替えが出来る
230704 面ごとにSTL保存する方法
用途
OpenFOAMの解析用モデル作成などで、面ごとに分割した3Dモデルが必要になることがある。
注意点
SolidworksでSTL保存したファイルを開くと編集できない。
STEP保存してからFreeCADで開くとよい
フェイスバインダーを使う方法
Draftワークベンチに移動
作成したモデルの取り出したい面を選択(緑になる)(Ctrl+クリックで複数選択)
「フェイスバインダー」をクリック
ツリーに元のbodyと別に「Facebinder」が作成される。(下の例ではPadを非表示にしているが、残っている)
「Facebinder」をダブルクリックすると編集でき、面の追加、削除ができる。
Facebinderは複数作成できるので必要な数作成可能。
ツリーで保存したいFacebinderを選択してメニュー「ファイル」→「エクスポート」でSTL保存する。
必要な面ごとにSTLを保存する
ダウングレードする方法
Draftワークベンチに移動
モデルを選択して「ダウングレード」
面がバラバラになる。元の形状は消える。
必要な面を選択して(複数選択可能)STLにエクスポートする。
面をグループ化しておけば

230815 長さや角度を測定
ワークベンチによって若干異なるっぽい。
Assembly4のが有用と思われる。
全てのワークベンチにある水色の物差しアイコンのツールが唯一ボディの基準平面を選択できる。
「Assembly4」ワークベンチ

,



直線距離のほか、「Show Components」にチェックを入れておくとX, Y, Z方向の距離も出る。
ボディの基準面などは選択できない?
240221 オプションの説明

Rの測定、辺の長さ

距離測定

角度測定

エッジや面、円の中心を選択

選択した2つの要素の最短距離を測定できる?
「Part Design」ワークベンチ

,

クリアのアイコンを押すまで3Dビュー上に寸法が残る。
円の中心をどうやってピックするのか分からない。
ボディの基準平面、基準線は選択できない
2点間の直線距離のほか、直交方向も測定可能。
コンボビューの「直接寸法の切り替え」、「直行寸法の切り替え」で表示をON/OFFできる。
寸法を消すときは、コンボビューの「すべての寸法をクリア」またはツールバーの「全てクリア」をクリック。
すべてのワークベンチ

思ったように測れない。
ボディの基準面も選択できる。
測定した結果がツリー上に残り、削除しないとずっと残る。

ツリー上の測定結果を選択したときのプロパティのP1, P2は選択点の座標と思われる。
手計算すれば直交方向の距離は分かる。(めんどくさい)
3Dビュー上から測定結果の数値をクリックすることでも選択できる。
「Manipulator」ワークベンチ (240221)
キャリパーツール
使い方がいまいちよくわからない
230822 穴と穴の中心間距離を測定する方法 [manipulatorワークベンチ]
manipulatorワークベンチの「Caliper tool」を使用する。
Part designワークベンチやAssembly4ワークベンチの測定ツールでは穴や軸の中心間距離の測定方法が分からなかった。(→Assembly4でのやり方が分かった「230815 長さや角度を測定」240221)
230816 [調査中]ワークベンチの種類
Part
プリミティブやブーリアンで形状を作成する。
DraftやSketcherで描いた2D形状を押し出しも可能。
FreeCADの中核だが履歴はない。
サーフェスの作成も可能
Part design
スケッチを押し出したりして形状を作成する。
Part designでは「Body」コンテナを作成し、この中にスケッチや押し出しなどのフィーチャーが入る。
BodyはPart design特有のもので、Partワークベンチでは使用されない。
Bodyは他のワークベンチ(Part等)での編集は非推奨とされている。
履歴がある。
ソリッドのみ作成可能(サーフェスは作成できない)
Sketcher
Part designワークベンチなどで使用する2Dスケッチを作成する。
拘束をつけながら描画するので、Solidworksのスケッチに近い。
Sketch ←→ Draft相互変換可能
Draft
2D要素の作成。
Sketcherは拘束をつけて形状を定義するが、こちらは拘束がなく、最初から決まった形状を描いていく感じ?
Me10など従来の2DCAD的な感じ?
外部形状の投影も可能っぽい(使い方いまいち不明)
Sketch ←→ Draft相互変換可能
スケッチは一つの平面上に書いていくが、Draftは平面上に書かず、3D空間上に線などの要素を追加していく。(Solidworksの3Dスケッチに若干近い)
要素の一つ一つはツリーに追加される。
Surface
サーフェスの作成。
コマンドが少ない。
Partでもサーフェスの作成ができるので、両方使っていく感じか。
230816 コンテナ「Part」、「Body」、「Group」について
「Part」
一つのパーツを表し、アセンブリ時などに利用するらしい。
Partがなくても形状(Body)の作成は可能。
Bodyよりも上位のコンテナ。
複数のBodyを内包できる。(マルチボディ)
Partに入った要素の位置関係は固定され、Partを移動すると中身もまとめて移動する。
ツリー上でドラッグ&ドロップで中身を入れたり出したりできる。
「Body」
Part designワークベンチで用いる。
一つのBodyはひとつながりの形状でないといけない。
Partコンテナに入れられるが、PartがなくBody単体で存在してもOK。
PartとBodyそれぞれが座標を持つが、Partに入ったBodyの位置はPartに対する相対座標。PartとBodyの座標を合算したものがBodyの絶対座標になると思われる。
「Group」
複数の要素をまとめる単純なフォルダのようなもの。
中身の要素の位置関係は無関係。
PartやBodyと違いGroupは座標を持たない。
230816 公式ドキュメント
FreeCADマニュアル
https://wiki.freecad.org/Manual:Introduction
各ワークベンチとコマンドの説明
https://wiki.freecad.org/Manual:All_workbenches_at_a_glance
LEGOブロックのモデリング例
https://wiki.freecad.org/Manual:Modeling_for_product_design
各外部ワークベンチはGithubにドキュメントがあったりする。
230819 ボディを別ファイルに保存する方法
ファイル(ファイル1)に複数ボディを作成し、一つを別ファイルにしたい場合。
ボディを保存するファイル(ファイル2)を新規作成し、名前をつけて保存。
ツリー上のボディをファイル1からファイル2へドラッグ&ドロップ。
230822 アセンブリの干渉チェックはできない?
230823 DraftワークベンチをSolidworksの3Dスケッチや、構想設計の2D図作成に使えない?
3D空間上に線等を配置することができる。
スナップを駆使して中心線などを描くことができる。
グループ化が可能。グループの階層化も可能。
グループごと移動したり表示/非表示可能
グループを一つのパーツとして表現すればなんかできそう。
230831 エラーのでにくいフィーチャー作成方法の参考資料
230901 フィーチャーの依存関係を可視化する方法
事前準備として「Graphviz」のインストールが必要
下記よりWindowsの64bitインストーラー版をインストールすればOK。
https://graphviz.org/download
インストール時にパスを通すか聞かれるが、通さなくてもいい。
FreeCADから呼び出し時にインストールフォルダの指定が必要。
FreeCADでPartDesignワークベンチで作成した部品を開き、メニュー「ツール」→「依存関係グラフ」で別ウィンドウで開く。
視覚化されるだけで、編集はできない。
依存関係グラフの例
「トポロジ上の命名問題」のため、フィーチャーを他のフィーチャーにあまり依存させないほうがよい。(フィーチャーを遡って編集するとエラーが出やすい。)
上の画像は良い例ではない。
フィーチャーによってできた面と同一面に原点からのオフセットでデータム平面を作り、そこにスケッチしてフィーチャーを作成することで依存が連鎖しないモデルを作成できる。
Solidworksのツリーでフィーチャーをクリックすると依存関係の矢印が出るが、機能としてはそれに似ている
参考 Solidworksの依存関係の表示
230901 Pythonスクリプトを利用してオブジェクトを生成する
Pythonスクリプトを書く場所
ツールバーあたりを右クリック→「Python コンソール」にチェック
Pythonコンソールに下記ページのサンプルスクリプトを貼り付けるとボールベアリングのオブジェクトが生成される。
https://wiki.freecad.org/Scripted_Parts:_Ball_Bearing_-_Part_1
Code
## Ball-bearing script
## 11.08.2016 by r-frank (BPLRFE/LearnFreeCAD on Youtube)
## based on ball bearing script by JMG
## (http://linuxforanengineer.blogspot.de/2013/08/free-cad-bearing-script.html)
#
#needed for inserting primitives
import Part
#needed for calculating the positions of the balls
import math
#needed for translation of torus
from FreeCAD import Base
#
#VALUES#
#(radius of shaft/inner radius of inner ring)
R1=15.0
#(outer radius of inner ring)
R2=25.0
#(inner radius of outer ring)
R3=30.0
#(outer radius of outer ring)
R4=40.0
#(thickness of bearing)
TH=15.0
#(number of balls)
NBall=10
#(radius of ball)
RBall=5.0
#(rounding radius for fillets)
RR=1
#first coordinate of center of ball
CBall=((R3-R2)/2)+R2
#second coordinate of center of ball
PBall=TH/2
#
#Create new document
App.newDocument("Unnamed")
App.setActiveDocument("Unnamed")
App.ActiveDocument=App.getDocument("Unnamed")
Gui.ActiveDocument=Gui.getDocument("Unnamed")
#
#Inner Ring#
B1=Part.makeCylinder(R1,TH)
B2=Part.makeCylinder(R2,TH)
IR=B2.cut(B1)
#get edges and apply fillets
Bedges=IR.Edges
IRF=IR.makeFillet(RR,Bedges)
#create groove and show shape
T1=Part.makeTorus(CBall,RBall)
T1.translate(Base.Vector(0,0,TH/2))
InnerRing=IRF.cut(T1)
Part.show(InnerRing)
#
#Outer Ring#
B3=Part.makeCylinder(R3,TH)
B4=Part.makeCylinder(R4,TH)
OR=B4.cut(B3)
#get edges and apply fillets
Bedges=OR.Edges
ORF=OR.makeFillet(RR,Bedges)
#create groove and show shape
T2=Part.makeTorus(CBall,RBall)
T2.translate(Base.Vector(0,0,TH/2))
OuterRing=ORF.cut(T2)
Part.show(OuterRing)
#
#Balls#
for i in range(NBall):
Ball=Part.makeSphere(RBall)
Alpha=(i*2*math.pi)/NBall
BV=(CBall*math.cos(Alpha),CBall*math.sin(Alpha),TH/2)
Ball.translate(BV)
Part.show(Ball)
#
#Make it pretty#
App.activeDocument().recompute()
Gui.activeDocument().activeView().viewAxometric()
Gui.SendMsgToActiveView("ViewFit")
240221 「ファスナー(Fasteners)」ワークベンチ ネジ類の使用
ネジ・ナットなどはファスナーワークベンチを利用すれば挿入できる。
ただし規格がISOだったりで、JISではない。
なべ小ねじやナットなどのアイコンが並んでいる
必要なものをクリック → 挿入される
挿入されたアイテムを3Dビューまたはツリーで選択してプロパティよりサイズ変更可能
240226 ボディの透明度を変更する方法
ボディを選択し、「ビュー」タブの「Transparency」を変更する。
0で不透明、100で透明になるが、エッジの表示は消えない。
240304 STLをSTEP(ソリッド)に変換する方法
「Part」ワークベンチ→メニュー「パーツ」→「メッシュから形状を作成」
「縫い合わせのトレランス」→「0.10」
「シェイプビルダー」→「シェルからソリッドへ」(かなり時間がかかる)
余分な面が減ってちょっとスッキリした
STEPでエクスポートしたらサイズがめちゃくちゃ大きくなった。
(元のSTLが約6MB → STEP302MB)
この操作でツリーはこうなる。
一番上は元のメッシュデータ、2番目が「メッシュから形状を作成」してできたデータ、3番目が「シェルからソリッドへ」でできたソリッドデータ
「」→「」→「」
参考 https://sukinakotode-ikiteiku.com/mecha010
240402 ワークベンチ切り替えを楽にできるアドオン「Tab Bar」
アドオンマネージャーでインストールできる。
ノーマルではワークベンチのリストを開いて必要なものをクリックするという2アクション必要だが、こちらはワークベンチのアイコンが常に見える状態になるため1アクションで可能。

表示アイコンや並びをカスタマイズ可能。
少しだけSolidworksに近い感覚で使える。
240919 現状のFreeCAD(1.0RC1)で不足している機能等、気付いた点の備忘録
Solidworksのエンティティ変換が弱い
スケッチで他の形状の輪郭を投影する機能としてFreeCADには「外部ジオメトリを作成」があるが、同一ボディにあるソリッドのエッジやスケッチしか出来ない。
他のボディや、円筒の曲面等のエッジがない部分は投影出来ない。
面を選択して輪郭をまとめて投影出来ないので、いちいちクリックしないといけないのも手間がかかる。
投影した線は元形状にリンクされているが、リンクを切ったりできない?
投影した線を通常の線に変換したりも出来ない。
→ ジオメトリをBスプラインに変換すれば押出等に直接利用できそう。
スケッチで線を形状に一致させたり出来ない。
編集中スケッチ以外の要素を参照したいときは、同一ボディ内であっても「外部ジオメトリを作成」を利用するしかない。
スケッチでテキストを扱えない。
文字を彫り込んだりしたいとき、ドラフトツールのテキストなどを利用するしかなく、面倒。
241016 直線以外の形状をスケッチに投影して押し出し等に利用する方法
※現在調査中のためベストな方法とは限らない
下図のように立方体に円柱がめり込んでいて、交差している形状がほしいとする。(Partワークベンチで作成している)
立方体と円柱を選択肢てPartワークベンチの「セクション」を押す
2つの立体が交差したラインが得られる。
Part Designワークベンチでボディを作成、先程のセクションを選択してサブシェイプバインダーを作成
適当な面でスケッチを開始
サブシェイプバインダーの必要なラインを選択して「外部ジオメトリを作成」
作成された外部ジオメトリを選択して「ジオメトリをB-スプラインに変換」
余分な線をトリミングする。
(赤い一点破線が外部ジオメトリ、白い線がB-スプライン→押出に利用できる)
スケッチを押し出して完成
250325 画像を3D上に配置する方法。
手書き等の参考画像を元にモデリングする用途に使える。
メニュー「ファイル」→「インポート」→ 画像を選択する。
ツリーに画像が現れ。XY平面上に配置される。
位置、サイズ、透明度を変更する方法
ツリーの画像をダブルクリックすると設定画面がでる。
扱い方は見れば分かる。
250407 ビューを任意の面に垂直にする方法
ビューを垂直にしたい面を選択して右クリック → 選択範囲に配置
260416 パーツに外部参照を付けるな。パーツの面で拘束を付けるな。
自分なりのルール、運用指針みたいなもの。
パーツ内のスケッチに外部のパーツ等の外部参照(外部投影、外部ジオメトリ)を付けてはいけない。
後々参照関係が訳わからなくなったり、意図しない形状変更が起きてパーツが崩壊したりする。
パーツの面同士で拘束を付けると、パーツの編集により、拘束で使いたい面とは違う面に置き換わってしまい、アセンブリが崩壊する。
固定拘束、またはアセンブリの基準平面とパーツの基準平面同士で拘束を付けたほうが安全。
パーツとパーツの基準平面同士はまだマシだが、可能なら避けたほうがよい。
複数パーツで拘束が数珠つなぎになると、意図しない移動が起きたりする。
パーツが100個あって、一つ移動したら追従して欲しい等、明確な目的がある場合は別。
260421 ナビゲーション設定
3Dビューポートの移動(ナビゲーション)で個人的に使いやすいと思う設定
SolidWorksとだいたい同じ間隔で使える。
マウス設定: Solidworks
軌道スタイル: トラックボール(クラシック)
回転モード: オブジェクトの中央
カーソルの位置にズーム: 有効
ズームを反転: 有効
設定補足説明
軌道スタイル
- トラックボール → カーソルがウィンドウの端で中ボタンドラッグを始めると、見えている方向はそのままで画面が時計周り、反時計回りに回転するような動きになる。この動きをするソフトは結構多いが、苦手。回転させる時にカーソル位置を意識しないといけないので。
- トラックボール(クラシック) → Solidworksに近い。中ボタンドラッグ時のカーソル位置をあまり意識しなくてすむ。
回転モード
- カーソル位置にドラッグ → 中ボタンクリック時のカーソル位置が回転中心になる。カーソルがオブジェクトの上じゃなくてもそこが回転中心になる。
- オブジェクトの中央 → 中ボタンクリック時のカーソル位置が回転中心になるが、カーソルがオブジェクトの上にいない時はオブジェクトの中央が回転中心となる。
- ウィンドウ中央 → カーソル位置にかかわらず画面の中央が回転中心となる。中心の奥行きがオブジェクトとズレていることも多く、回転させるとオブジェクトが画面外に消えてしまうこともあり、使いにくい。
リンク関係■■■■■
230814 別ファイルのボディを参照状態で取り込む (リンク)
取り込む別ファイルを入れる「親ファイル」と取り込まれる別ファイル「子ファイル」を開く→親ファイルをアクティブ(太字)にし、子ファイルのボディを右クリック → 「Link actions」 → 「リンクを作成」
関連ノート
230812 複数ファイルをリンクさせてアセンブリを作る方法
230626 別の部品ファイルをインポートしてマルチボディにする方法
230815 [調査中]外部形状を投影できる?(SWのエンテティ変換)
Sketcherワークベンチの「外部ジオメトリ」は同じボディの形状しか投影できない。
他の方法を探す。
参考になりそうなもの
https://forum.freecad.org/viewtopic.php?t=45364

230815 Partワークベンチ「表面に投影を作成」

一応他のボディの形状を投影することが出来た。
投影してできたものは独立したオブジェクトになるので、ブーリアンでひっつけたりするとよい。
投影先に面が必要?
230818 Partワークベンチのシェイプビルダーは使える?

エッジからワイヤーへを使う?(ワイヤーとは何?)
230818 Partワークベンチの断面は使える?

作成されたオブジェクトをDraftワークベンチの「ダウングレード」で線に変換
「ドラフトからスケッチへ」に変換でスケッチに変換
ツリー上でボディにドラッグ&ドロップして押し出しが出来た。
実際に試した例
Assembly4ワークベンチで作成したアセンブリに対して断面を作成できた。

230818 Draftワークベンチの「2Dビュー形状」は?
XY平面上しか投影できない?
使い方がよく分からない。
230819 ケースのコネクタ一に穴を開ける 非常に有用と思われる情報(Assembly3)
https://github.com/realthunder/FreeCAD_assembly3/issues/25
https://github.com/realthunder/FreeCAD_assembly3/issues/39
サブシェイプバインダー?

230819 Part designワークベンチ「サブシェイプバインダー」が使えそう
PCBの形状のサブシェイプバインダーを作成して、ケースのボディに移動、スケッチでシェイプバインダーの外部エンティティ作成し、隙間1mmでケース外形を描いた例
E:\OneDrive\ドキュメント\230811_FreeCAD_ASSY-TEST\230817_PCB_Assembly4\AS_TOP_230817.FCStd
2300819 [調査中]シェイプバインダーの位置は移動できる?
プロパティのPlacementの数値をいじっても動かない(元に戻る)
「変換」でも動かせない。
ボディにシェイプバインダーを入れてボディーごと動かすことはできるが、ボディからシェイプバインダーを出すと元の位置に戻ってしまった。
ボディの原点に対する相対位置としてシェイプバインダーは配置されているようだ
230820 Placementでやっぱり動かせた。
Placementの項目はシェイプバインダーになく、サブシェイプバインダーにのみ存在した。

元部品とのリンクを切るには「Bind Mode」を「Detached」にする。

230819 シェイプバインダーの位置を更新するには「同期」する
シェイプバインダー作成のもとになったパーツを移動した場合、シェイプバインダーは自動で追従しない。
シェイプバインダーをツリーで右クリックして「同期」すると移動する。
230901 アセンブリのファイル間の依存関係を可視化する方法
メニュー「ツール」→「依存関係グラフ」で別ウィンドウで開く。
230908 サブシェイプバインダーのリンクを切る方法
「ボディ2」に「円柱」のサブシェイプバインダー「Binder」が作成された状態
ツリーでサブシェイプバインダーを選択し、「Bind Mode」が「Synchronized」となっているのを「Detached」に変更。
「Support」の「Body (円柱)」が空欄になり、リンクが切れる。
依存関係グラフを見ても「Binder」のリンクが切れたのを確認できる。
230908 サブシェイプバインダーの位置を元オブジェクトに追従させない方法
サブシェイプバインダーの「Relative」を「false」にする。
元オブジェクトを「変換」などで移動させても位置が追従しなくなる。
元オブジェクトの形状の変更には追従する。
230908 サブシェイプバインダー・元オブジェクトの形状、位置を一時的に追従させない方法
サブシェイプバインダーの「Bind Mode」を「Frozen」にする。
元オブジェクトを移動、形状の変更しても追従しなくなる。
ツリーでサブシェイプバインダーを右クリック→「同期」すれば手動で追従させることができる。

コメント