【FreeCAD使い方講座】Assembly4ワークベンチを使った機構アニメーション作成の基礎
※ 当ページには【広告/PR】を含む場合があります。
2024/06/22

話を以前の記事に遡りますが、FreeCADで部品の組立を行う際に便利なワークベンチの紹介をしたことがあります。
特に
そこで今回はAssembly4ワークベンチを使った簡単なアニメーション作成の手順を簡単なモデルを使って解説していきます。
FreeCADにAssembly4ワークベンチをインストールする
まずはFreeCADにAssembly4ワークベンチを導入していきます。
導入はアドオンマネージャから行い、
[ツール] > [Addon Manager]
ワークベンチの項目から、
「Assembly4」
852x538

インストール後にFreeCADを再起動するとAssembly4ワークベンチが利用できるようになります。
Assembly4ワークベンチの使い方の基本
適当なFreeCADプロジェクトを新規作成し、Partワークベンチでサッと長板と円柱をマージさせただけのソリッドを作成してみます。
735x520

ここからAssembly4ワークベンチに切り替えて作業します。
635x155

ツールボックスから
[New Assembly]
Parts
Assembly
147x249

この時点ではAssemblyオブジェクトの中身は何もないため、部品を一つ一つ手順を追って組み立てていく必要があります。
変数(variables)の定義
Assembly4によるパーツの可動範囲の与える際に、
変数(variables)
まずは簡単な軸回転の動作を行わせるための角度の変数を定義してみます。
ツールボックスから
[Add Variable]
[Add Variable]
479x273

変数の定義には最低限として、変数名(Name)と初期値(Value)の入力が必要です。
ここでは以下のように定義しましょう。
Name: theta_0
Value: 0
パラメーターを入力したら
[OK]
追加した変数はツリービューの中の
Assembly
263x354

Assemblyスケッチの作成
Assemmbly4では、可動範囲を空間に作成するために「スケッチ」を必要とします。
ということで、まずスケッチを一つ新規作成してみます。
ツリービューより、
Parts
Assembly
[New Sketch]
[Create new Sketch]
[OK]
601x239

作成直後はスケッチの設定がまっさらの状態なので、スケッチのアタッチ先のオブジェクトを指定します。
738x612

3Dビューからだと原点(Origin)オブジェクトが掴みにくいので、アタッチメント設定の
[選択...]
[コンボビュー] > [モデル]タグ > [LCS_Origin]
[タスク]タブ
また、アタッチメントメントモードは(相対的な)
オブジェクトのXY平面
[OK]
445x578

スケッチでボーンオブジェクトを編集する
それではスケッチにパーツを動かすのに必要なワイヤー形状を準備し、そこに変数を割り入れていきます。
先程作成したスケッチをツリービューからダブルクリックしてSketcherワークベンチで作業していきます。
適当な長さの線分の端点を原点に合わせ、ついでに角度拘束をつけてるだけのスケッチを作成します。
945x563

次に角度拘束の上でダブルクリックし、角度の入力フィールドの端にある
数式エディタ
740x584

数式エディター
Variables
theta_0
[OK]
これでスケッチの角度拘束に
Variables.theta_0
960x390

ローカル座標系の設定
スケッチにローカル座標系を作成します。
[New Coordinate System]
[Create new LCS]
432x389

アタッチメント設定が表示されるので、スケッチで描いた直線の端点、直線の順にアタッチメント、O-X-Yモードを指定しましょう。
1326x769

パーツをAssemblyオブジェクトへ登録する
Assembly4ではプロジェクトの「Assembly」オブジェクトに紐づく「Parts」グループ以下に部品モデルを配置することによって、先程の設定したボーンオブジェクトとパーツを連動させて動かすことができます。
注意すべきはPartsグループに配置する部品要素は何でも良いわけではないという点です。
例えば下のようにソリッドを入れてもそのまま使えそうですが、Assembly4にはパーツとして認識されません。
436x263

ソリッドはローカル座標系情報を内部で持たないため、動きを定義できないためです。
つまり、Partsグループには必ずローカル座標系を埋め込むことのできる
ということで、この場合、ソリッドをボディに変換する作業を挟みます。
Partsグループを選択しつつ、メニューボックスから
[New Body]
[Create a new Body]
[OK]
413x459

次にツリービュー上で、ボディ化したいソリッドをマウスで選択し、そのまま空のボディにドラックアンドドロップします。
742x725

するとボディに
BaseFeature
これで、部品の実体はソリッドですが、Assembly4の認識できるボディへと変換することができました。
早速、Assemblyオブジェクトにこのパーツを登録させてみましょう。
ツールメニューから
[Insert Part]
[Insert a Part]
421x452

先程作ったボディが登録可能となっているので、
[Select Part to be inserted]
[Insert]
コンボビューのタスクタブに
[Place linked Part]
Parent Assembly
LCS_1
365x350

設定を確定すると、Assemblyオブジェクトに登録したパーツにローカル座標系がアタッチされていることが分かります。
654x456

なお、Assemblyに登録したいパーツが複数ある場合には、この一連の作業を繰り返してすべてのパーツを登録していきます。
Assemblyでアニメーションの作成
Assemblyワークベンチを利用する大きな目的は、パーツの可動動作・領域の確認と、パーツごとに干渉しないかどうかをアニメーションを作成してチェックすることにあります。
では先程のAssemblyオブジェクトを使って、簡単なアニメーションを作成してみます。
ツールボックスから
[Animate Assembly]
[Animate Assembly]
484x558

Variableの項目から、アニメーションさせたいパラメーター(ここでは
theta_0
0 ~ 360
[Run]
409x280

ここでは回転運動が開始されていることが分かります。
パーツの回転軸が少しズレているようなので、回転軸の位置を修正します。
動作位置の修正を行うには、まずAssemblyオブジェクトの中の位置を動かしたいリンク付きボディのプロパティから、
[Assembly] > [Attachment Offset]
789x330

するとリンクボディの配置のオフセット設定ができるので、所望の回転軸位置になるように移動させます。
869x639

再度アニメーションでチェックすると回転軸が狙った位置に来ていることが確認できます。
372x286

FreeCADのOpenCVで動画として保存する
アニメーションを動画として残したい場合、
[Animate Assembly] > [Save]
注意が必要なのは、Linuxユーザーなど、FreeCADを公式から提供されているインストーラー以外からインストールした場合に、FreeCAD内部の組み込みPythonにOpenCVが除外されている場合があります。
FlatPakからインストールしたり、FreeCADのベータをソースコードビルドしたりして利用すると、
480x379

FreeCAD内部の動画保存ができないようなので、その際には外部の画面録画系アプリケーションを利用して動画化するとよいでしょう。
まとめ
以上、今回はFreeCADで組み立て部品の機構アニメーションを設定するためのAssembly4ワークベンチの使い方の基礎を一通り解説していきました。
Assembly4を利用するとFreeCADでも素朴なパラメトリック動作であれば動かすことが可能ですが、よほど複数なアニメーションを作成する必要がある場合、Blenderなどの高機能レンダラーを使うと良いでしょう。