【FreeCAD使い方講座】Assembly4ワークベンチを使った機構アニメーション作成の基礎


※ 当ページには【広告/PR】を含む場合があります。
2024/06/22
【FreeCAD初心者ガイド】Curvesワークベンチ・テクニック集①〜曲線エッジで囲われた領域に曲面を張る
【FreeCAD使い方講座】FreeCADでのオブジェクトのアタッチメント
蛸壺の中の工作室|Assembly4ワークベンチを使った機構アニメーションの作成



話を以前の記事に遡りますが、FreeCADで部品の組立を行う際に便利なワークベンチの紹介をしたことがあります。

合同会社タコスキングダム|蛸壺の技術ブログ
【FreeCAD初心者ガイド】FreeCADで部品の組立〜『Assembly4』と『A2plus』を導入する

FeeCADの高機能な部品組立系の拡張ワークベンチである『Assembly4』と『A2plus』の導入方法や機能の概要などを簡単に紹介




特に
「Assembly4」 ワークベンチを使えば、組み立てたパーツ同士の動的な位置関係を確認するための機構アニメーションを作成することが可能です。
そこで今回は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では、可動範囲を空間に作成するために「スケッチ」を必要とします。
ということで、まずスケッチを一つ新規作成してみます。
ツリービューより、
PartsAssembly を選択した状態で、ツールバーより [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] ダイアログで新しいローカル座標系(LCS)を適当な追加しましょう。
432x389
合同会社タコスキングダム|蛸壺の技術ブログ


アタッチメント設定が表示されるので、スケッチで描いた直線の端点、直線の順にアタッチメント、O-X-Yモードを指定しましょう。
1326x769
合同会社タコスキングダム|蛸壺の技術ブログ

パーツをAssemblyオブジェクトへ登録する



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


ソリッドはローカル座標系情報を内部で持たないため、動きを定義できないためです。
つまり、Partsグループには必ずローカル座標系を埋め込むことのできる
「Body」 を部品として配置する必要があります。
ということで、この場合、ソリッドをボディに変換する作業を挟みます。
Partsグループを選択しつつ、メニューボックスから
[New Body] アイコンをクリックし、 [Create a new Body] ダイアログで名前を決定し、 [OK] ボタンを押すと空のボディがPartsへ新規作成できます。
413x459
合同会社タコスキングダム|蛸壺の技術ブログ


次にツリービュー上で、ボディ化したいソリッドをマウスで選択し、そのまま空のボディにドラックアンドドロップします。
742x725
合同会社タコスキングダム|蛸壺の技術ブログ


するとボディに
BaseFeature が作られ、BodyからSolidへのリンクが置かれます。
これで、部品の実体はソリッドですが、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などの高機能レンダラーを使うと良いでしょう。

参考サイト

FreeCAD アニメーション リンク機構の動かし方を初心者向けに解説