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

話を以前の記事に遡りますが、FreeCADで部品の組立を行う際に便利なワークベンチの紹介をしたことがあります。
特に
そこで今回はAssembly4ワークベンチを使った簡単なアニメーション作成の手順を簡単なモデルを使って解説していきます。
FreeCADにAssembly4ワークベンチをインストールする
まずはFreeCADにAssembly4ワークベンチを導入していきます。
導入はアドオンマネージャから行い、
[ツール] > [Addon Manager]ワークベンチの項目から、
「Assembly4」
インストール後にFreeCADを再起動するとAssembly4ワークベンチが利用できるようになります。
Assembly4ワークベンチの使い方の基本
適当なFreeCADプロジェクトを新規作成し、Partワークベンチでサッと長板と円柱をマージさせただけのソリッドを作成してみます。

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

ツールボックスから
[New Assembly]PartsAssembly
この時点ではAssemblyオブジェクトの中身は何もないため、部品を一つ一つ手順を追って組み立てていく必要があります。
変数(variables)の定義
Assembly4によるパーツの可動範囲の与える際に、
変数(variables)まずは簡単な軸回転の動作を行わせるための角度の変数を定義してみます。
ツールボックスから
[Add Variable][Add Variable]
変数の定義には最低限として、変数名(Name)と初期値(Value)の入力が必要です。
ここでは以下のように定義しましょう。
軸回転の変数 Name: theta_0 Value: 0
パラメーターを入力したら
[OK]追加した変数はツリービューの中の
Assembly
Assemblyスケッチの作成
Assemmbly4では、可動範囲を空間に作成するために「スケッチ」を必要とします。
ということで、まずスケッチを一つ新規作成してみます。
ツリービューより、
PartsAssembly[New Sketch][Create new Sketch][OK]
作成直後はスケッチの設定がまっさらの状態なので、スケッチのアタッチ先のオブジェクトを指定します。

3Dビューからだと原点(Origin)オブジェクトが掴みにくいので、アタッチメント設定の
[選択...][コンボビュー] > [モデル]タグ > [LCS_Origin][タスク]タブまた、アタッチメントメントモードは(相対的な)
オブジェクトのXY平面[OK]
スケッチでボーンオブジェクトを編集する
それではスケッチにパーツを動かすのに必要なワイヤー形状を準備し、そこに変数を割り入れていきます。
先程作成したスケッチをツリービューからダブルクリックしてSketcherワークベンチで作業していきます。
適当な長さの線分の端点を原点に合わせ、ついでに角度拘束をつけてるだけのスケッチを作成します。

次に角度拘束の上でダブルクリックし、角度の入力フィールドの端にある
数式エディタ
数式エディターVariablestheta_0[OK]これでスケッチの角度拘束に
Variables.theta_0
ローカル座標系の設定
スケッチにローカル座標系を作成します。
[New Coordinate System][Create new LCS]
アタッチメント設定が表示されるので、スケッチで描いた直線の端点、直線の順にアタッチメント、O-X-Yモードを指定しましょう。

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

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

するとボディに
BaseFeatureこれで、部品の実体はソリッドですが、Assembly4の認識できるボディへと変換することができました。
早速、Assemblyオブジェクトにこのパーツを登録させてみましょう。
ツールメニューから
[Insert Part][Insert a Part]
先程作ったボディが登録可能となっているので、
[Select Part to be inserted][Insert]コンボビューのタスクタブに
[Place linked Part]Parent AssemblyLCS_1
設定を確定すると、Assemblyオブジェクトに登録したパーツにローカル座標系がアタッチされていることが分かります。

なお、Assemblyに登録したいパーツが複数ある場合には、この一連の作業を繰り返してすべてのパーツを登録していきます。
Assemblyでアニメーションの作成
Assemblyワークベンチを利用する大きな目的は、パーツの可動動作・領域の確認と、パーツごとに干渉しないかどうかをアニメーションを作成してチェックすることにあります。
では先程のAssemblyオブジェクトを使って、簡単なアニメーションを作成してみます。
ツールボックスから
[Animate Assembly][Animate Assembly]
Variableの項目から、アニメーションさせたいパラメーター(ここでは
theta_00 ~ 360[Run]
ここでは回転運動が開始されていることが分かります。
パーツの回転軸が少しズレているようなので、回転軸の位置を修正します。
動作位置の修正を行うには、まずAssemblyオブジェクトの中の位置を動かしたいリンク付きボディのプロパティから、
[Assembly] > [Attachment Offset]
するとリンクボディの配置のオフセット設定ができるので、所望の回転軸位置になるように移動させます。

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

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

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