end0tknr's kipple - web写経開発

太宰府天満宮の狛犬って、妙にカワイイ

FreeCAD Documentation - A2plus Workbench の deepl和訳

FreeCADでのパーツ組立(アセンブリ)には A2plus や Assembly4 のアドオンがあります。

インターネットで検索すると、 座標指定で組み立てる Assembly4 の情報の方が多いようですが、 A2plusの方が初心者には操作が簡単なようですので、今回はA2plus。

しかし、私にも理解できるレベルのA2plusに関する情報がなく 公式?の A2plus Workbench - FreeCAD Documentation も 日本語の情報はありません。

なので、deeplの助けを借り、公式ドキュメントである A2plus Workbench - FreeCAD Documentation を以下に和訳してみました。

目次

参考url

wiki.freecad.org

はじめに

A2plusは、FreeCADでさまざまなパーツを組み立てるための外部ワークベンチです。

このドキュメントは、A2plusバージョン0.4.56以降について説明しています。

インストール

A2plusワークベンチはFreeCADのアドオンです。 メニューにあるツール → Addon managerからアドオン・マネージャーで 簡単にインストールできます。 A2plusは活発に開発されており、頻繁に新機能が追加されます。 そのため、アドオン・マネージャーを使用し、定期的に更新する必要があります。 A2plusのコードはGitHubで管理・開発されていますので、 FreeCADのModディレクトリにコピーし手動インストールもできます。

スタート

まず、FreeCADのA2plusツールバーに切り替ます。 アセンブリ作成は最初にFreeCADで新規ファイルを作成し、保存する必要があります。 この際、アセンブリしたい部品と同じフォルダへの保存をお勧めします。

ツールバー ボタンまたは ボタンで 部品をアセンブリに追加できます。 ボタンは、 選択したファイル内のすべてのボディを1つの部品として追加します。 ボタンは、ファイルからどのパーツをインポートするかを選択できます。 こうすることで、例えばスケッチだけをインポートして、 そのスケッチを使ってパーツの位置を決定し、さらにパーツを組み立てることができます。

最初に追加されるパーツは、デフォルトで固定位置になります。 (後からパーツプロパティDatafixed Positionで変更もできます)。

既にアセンブリ内にあるパーツは、ツールバーボタン で複製できます。

アセンブリ内のパーツ編集はモデルツリーでパーツを選択し、 ツールバーボタン でできます。 この操作により、FreeCADの新しいタブで部品が開かれるか、 ファイルがすでに開かれている場合はそのタブに切り替わります。

アセンブリ内で変更された部品の更新にはツールバーボタン をクリックします。 ツールバーボタン は部品をインポートしますが、サブアセンブリ再帰的にインポートします。 FreeCADのツリービューで1つまたはいくつかの部品を選択すると、 A2plusは選択された部品のみを更新するように要求します。

インポートされた部品は外部依存を保持し、編集することができます。 しかし、ネジのように明確に定義された部品の場合、形状を編集できない方が便利です。 これは、選択した部品を元の部品の静的コピーに変換するツールバーボタン で可能です。

アセンブリを保存し、その後閉じるには、ツールバーボタン を使用します。

ツールバーボタン で、複数エッジや面などの選択方法を切り替えできます。 (シングルクリック選択、または、Ctrlキー+クリック選択)

組み立て

パーツの組み立ては、パーツ間に制約を追加することで行われます。 A2plusは、制約を加えると、可能であればその制約に従ってパーツを移動させます。

部品間に拘束を作成するには、 Ctrlキーを押しながら、2つの部品の辺または面をそれぞれ選択します。 次に、希望する拘束のツールバーボタンをクリックします。 Constraintsセクションで説明するダイアログがポップアップします。 制約は、影響を受ける部品に接続されたモデルツリーに追加されます。

部品間の複雑な制約では、A2plusは制約を解決できないかもしれません。 そのような場合の解決策については、「トラブルシューティング」を参照してください。

ラッキング

パーツの数が増えれば増えるほど、パーツを把握することが重要になります。 そこでA2plusでは、パーツを移動したり確認したりするためのツールを用意しています。

アセンブリ内でパーツを移動するには、モデル・ツリーでパーツを選択し、 ツールバー ボタンを使用します。 部品を好きな場所に配置したら、マウスを左クリックします。 移動した部品にすでに制約がある場合、ツールバーボタン を押すと、 アセンブリのすべての制約を解決するトリガーになるので、それに従って配置されます。

〇制約を表示するには、モデル・ツリーでコンストレイントを選択し、 ツールバー ボタンを使用します。 これにより、アセンブリ全体が透明になり、 コンストレイントを介して接続されている2つのオブジェクトがハイライトされます。 通常の表示に戻るには、アセンブリを左クリックします。

アセンブリの特定のパーツだけを表示するには、モデル・ツリーでそれらのパーツを選択し、 ツールバー ボタンを使います。 また、モデル・ツリーで特定のパーツを選択し、Spaceキーを押して表示/非表示を切り替えることもできます。

アセンブリ全体の透明度表示を切り替えるには、ツールバーのボタン

〇すべての部品は、FreeCADの通常の編集を使用して透明にすることができます。 しかし、FreeCADのバグにより、 アセンブリを再度開いたときに部品の透明度設定が失われることがあります。 回避策として、ツールバーボタン を使用して透明度設定を復元することができます。

制約

制約を作成する際、制約ツールバーボタンを押すと、次のダイアログが表示されます。

特定の制約では、制約の方向を変更できます。

Solveボタンで、 新しい制約がA2plusで解けるかを事前チェックできます。 解けない場合、「トラブルシューティング」をご覧ください。

制約は、可視性を変更することで無効にできます。 これは、ツリービューで制約を選択し、Spaceを押すことによって行われます。 これにより、DataSuppressedプロパティが切り替わり、 無効にされた制約は、アセンブリが解かれる際に考慮されません。

A2plusには以下のような制約があります。

Point on Point

各パーツの頂点(点)、円、球のいずれかを選択してください。 この際、円または球が選択された場合、その中心点が拘束に使用されます。 次にツールバー ボタンで、頂点を一致させるpointIdentity拘束を追加できます。

Point on Line

一方のパーツの頂点(点)、円形エッジ(中心点選択)、球面(中心点選択)を選択し、 もう一方のパーツのエッジを選択します。 次にツールバー ボタンで、pointOnLine制約を追加できまう。これで頂点を辺に置けます。

Point on Plane

一方のパーツの頂点(点)、円形エッジ(中心点選択)、球面(中心点選択)を選択し、 もう一方のパーツの平面を選択します。 次にツールバー ボタンで、pointOnPlane制約を追加できます。 拘束ダイアログでは、点と平面間のオフセット指定や、 オフセットの平面の両側での反転もできます。 オフセット=0の場合、頂点を平面に置きます。

Sphere on Sphere

両方のパーツの球面か頂点(点)を選択し、 ツールバー ボタンでsphereCenterIdent制約を追加できます。 これで球の中心、球と頂点の中心、または頂点を一致できます。

Circular Edge on Circular Edge

両方のパーツの円形エッジを選択し、ツールバー ボタンで、circularEdge制約を追加できます。 拘束ダイアログでは、エッジ間のオフセットや、 オフセットの反転、拘束方向、パーツ回転ロックを指定できます。 オフセット=0の場合、辺を同じ平面の同心に配置します。

Axis Coincident

両方のパーツの円筒面または直線エッジのいずれかを選択し、 ツールバー ボタンでaxisCoincident制約を追加できます。 拘束ダイアログでは、軸の方向や、部品の回転ロックを指定できます。 この拘束では軸または線を一致させます。

Axis Parallel

両方のパーツの円筒面または直線エッジのいずれかを選択し、 ツールバー ボタンで、axisParallel制約を追加できます。 拘束ダイアログでは軸の方向を指定できます。 この拘束は軸または線を平行にします。

Axis on Plane parallel

一方のパーツで円筒面または直線エッジを選択し、もう一方のパーツで平面を選択します。 その後、ツールバー ボタンで、axisPlaneParallel制約を追加できます。 この拘束は、軸または線を平面に平行にします。

Axis on Plane normal

一方のパーツの円筒面または直線エッジを選択し、もう一方のパーツの平面を選択します。 次にツールバー ボタンで、axisPlaneNormal制約を追加できます。 この拘束は、軸または線を平面の法線にします。

Axis on Plane angle

一方のパーツの円筒面または直線エッジを選択し、もう一方のパーツの平面を選択します。 次にツールバー ボタンで、axisPlaneAngle拘束を追加できます。 この拘束は最初に軸を平面に平行にし、 その後、現れる拘束設定ダイアログで軸の角度を調整できます。

Plane Parallel

両方のパーツの平面を選択し、ツールバー ボタンで、planesParallel制約を追加できます。 制約ダイアログでは、制約の方向を指定できます。 この拘束により平面を平行にできます。

Plane on Plane

両方のパーツの平面を選択し、ツールバー ボタンで、planeCoincident制約を追加できます。 拘束ダイアログでは、拘束方向と平面間オフセットを指定できます。 このオフセットは反転することもできますし、オフセット=0の場合、平面を一致できます。

Plane Angular

両方のパーツの平面を選択し、ツールバー ボタンで、angledPlanes制約を追加できます。 制約ダイアログでは、平面の間の角度を指定できます。 この拘束は、平面を平行にし、更に角度の指定も可能です。

Coincidence at Center of Mass

両方のパーツの閉じた辺か平面を選択し、 ツールバー ボタンでcenterOfMass制約を追加できます。 拘束ダイアログでは、辺または平面間のオフセットや、 オフセットの反転、拘束の方向、パーツ回転のロックを指定できます。 オフセット=0の場合、拘束は辺または平面を同じ平面に配置します。

サブアセンブリ

アセンブリは他のアセンブリを含むことができます。 ツールバーボタン から、アセンブリを含む「*.FCStd」ファイルを選択することで、 パーツと同様に追加されます。 このサブアセンブリは、ツールバーボタン で部品のように編集もできます。 上位のアセンブリで変更があった際、ツールバー・ボタン でサブアセンブリ再帰的に更新するようにしてください。

制約処理

選択範囲に可能な制約は、対応するボタンを有効にすることで、 ツールバーと制約ツールダイアログに表示されます。 制約ツールダイアログは、ツールバーボタン から開きます。 このダイアログは、アセンブリにいくつかの制約を素早く追加するために 開いておくことを意図しています。

既存の制約を編集するには、モデルツリーで制約を選択し、 ダブルクリックするか、ツールバーボタン を使用します。 これにより、制約プロパティダイアログが開きます。

モデルツリーで制約を選択し、 ツリー要素のプロパティ DataSuppressed を変更することで、 制約を一時的に抑制することができます。

制約を削除するには、モデル・ツリーで制約を選択して Del キーを押すか、 モデル・ツリーで制約のあるパーツを選択してツールバー ボタンを使用します。

すべての制約は、ツールバーボタン でいつでも解決できます。 ツールバーボタン がオンの場合、解決は、制約を編集するたびに自動的に行われます。

ツールバーボタン は、最も最近追加された制約に影響します。 それは、制約の方向を反転させます。

この ツールで、既存の制約を表示したり、検査したりすることができます。 クリックすると、ダイアログがポップアップします。 そして、ツリーで部品を選択して、この部品のすべての制約を得るために、 「Import from part」ボタンをクリックするか、ツリーで1つ以上の制約を選択して、 「Import from Tree」ボタンをクリックします。 その結果、制約に関するすべての情報が得られます。 Suppress列をクリックすると、1つの制約を抑制することができます。 より多くの機能については、他のダイアログ・ボタンのツールチップに従ってください。

パーツリスト

アセンブリのパーツリストを作成するには、 アセンブリのさまざまなパーツがA2plusで読み取れるパーツ情報を取得する必要があります。 これは、ツールバーボタン を使用して部品を編集することによって行われます。 開いたパーツでツールバーボタン を押すと、#PARTINFO#という名前のスプレッドシートが作成されます。

スプレッドシートの構成は以下の通りです。

グレーのフィールドに対し、最終的なパーツリストに必要な情報を入力してください。

アセンブリまたはサブアセンブリツールバーボタン を使用します。 すべてのサブアセンブリ再帰的に反復するかどうか尋ねられます。 Yesをクリックしてください。 これにより、#PARTSLIST#という名前の新しいスプレッドシートが作成されます。

PARTSLIST#という名前の新しいスプレッドシートが作成され、

PARTSINFO#スプレッドシートから取得した部品の情報がこのようなリストで表示されます:

位置(POS)は、モデルツリー内のパーツの外観に応じて自動的に設定されます。 最上位のパーツは POS 1 になります。

数量(QTY)はアセンブリから自動的に計算されます。 部品がアセンブリ内に2つある場合は、QTY 2になります。

部品情報を更新した場合、ツールバーボタン をもう一度押すと、 部品リストを更新することができます。

サブアセンブリの場合、ツールバーボタン を使用して 情報スプレッドシートを作成することもできます。 メイン・アセンブリのパーツ・リストを作成または更新する際、 すべてのサブ・アセンブリ再帰的に反復するかどうかの質問でNoをクリックすると、 この情報が使用されます。 この場合、異なるパーツはパーツリストには表示されず、サブアセンブリのみに表示されます。

特別な機能

組立構造

ツールバーボタン は、アセンブリの構造を持つ HTML ファイルを作成します。 次のような構造のファイルがデフォルトでアセンブリファイルのフォルダに作成されます。

自由度

このボタン は、アセンブリのすべてのパーツにその自由度を表示します。 さらに、すべての部品とその依存関係のリストを出力します。 リストはFreeCADのウィジェットReportビューに出力されます。 このウィジェットが表示されていない場合は、 FreeCADのツールバーエリアの何もないところで右クリックし、 表示されるコンテキストメニューから選択するか、 表示→パネル→レポートビューメニューで表示できます。

自由度ラベルは ボタンをもう一度クリックすることで削除できます。

パーツラベル

このボタン は、3Dビューのアセンブリのすべてのパーツにその名前をラベル付けします。 再度ボタン をクリックすると、パーツラベルを削除できます。

アセンブリ全体の形状

アセンブリ全体を1つの結合された形状にする必要がある場合があります。 この結合形状は、例えばメッシュワークベンチでの3Dプリントや TechDrawワークベンチでの図面に使用できます。 この結合形状は、ツールバー で作成できますが、デフォルトで形状は表示されません。 アセンブリに変更があった場合、同じボタンで形状を更新してください。

絶対パス相対パスに変換

メニューバーの「A2plus」→「Misc」→ 絶対パス相対パスへ変換」で、 インポートした部品の絶対パス相対パスに変換できます。

設定

a2plusの環境設定は、 FreeCADのメニュー編集→環境設定からA2plusのセクションにアクセスできます。 以下のオプションを設定できます。

デフォルトの解法

Use solving of partial systems

ソルバーは、プロパティDatafixed Positionがtrueに設定されたパートと、 それに拘束されたパートから始まります。他のすべてのパーツは計算されない。 解が見つかれば、次の拘束されたパートが計算に追加され、以下同様である。

「マグネット」ソルバーで、全パーツを一度に解く

ソルバーは、プロパティDatafixed Positionがtrueに設定されているパーツに対して、 すべてのパーツを一度に移動させようとする。 ほとんどの場合、解の計算に時間がかかることに注意してください。

強制固定位置

これは、アセンブリ内のすべてのパーツに対して、 プロパティDatafixed Positionをtrueに設定します。 すべてのパーツは常に作成された位置に固定されるため、実際には計算は行われません。

ソルバーのデフォルト動作

制約プロパティが変更された場合に自動的に解決する

ソルバーが自動的に起動します。 ツールバーボタン のオンと同じです。

インポートした部品を更新する際の動作

インポートした部品を更新する前に再計算する

サブアセンブリを含むアセンブリのすべての部品は、 スプレッドシートからの値を使用して再構築するためにFreeCADで開かれます。 この機能は完全にパラメトリックに構築するように設計されています。

注意:この機能は非常に実験的で、重要プロジェクトにはお勧めできません。

既知の問題

〇部品のトポロジー名参照が間違っていて、アセンブリが破壊されることがある。

〇参照部品ファイルが閉じられている状態で編集すると、 マスタースプレッドシートが壊れることがある。 これは FreeCAD をクラッシュさせる可能性があります。

インポートされた部品の再帰的更新を有効にする

すべてのサブアセンブリ再帰的に開いて更新する。

実験的なトポロジカル・ネーミングを使用

パーツをアセンブリにインポートする際、 アルゴリズムはインポートされた形状の各サブエレメントのトポロジカル名を生成します。 トポロジカル名はDatamux Infoに書き込まれます。 インポートされた部品を更新する必要がある場合、 これらのトポロジカル名は、制約のサブ要素を更新するために使用されます。 そのため、アセンブリはFreeCADの不安定なサブ要素番号に対してより堅牢になります。

注意:

これにより、ファイルサイズが大きくなり、部品のインポート時の計算時間が長くなります。 トポロジカルネーミングを使用する場合は、アセンブリを作成する前に有効にする必要があります。

パーツやサブアセンブリから面ごとの透明性を継承する

インポートしたパーツの色と透明度の設定を使用します。

注:この機能は非常に実験的なもので、重要なプロジェクトにはお勧めできません。

不可視図形をインポートしない

これにより、見えないデータム/コンストラクションシェイプが非表示になります。

注意:上位のサブアセンブリや他のサブアセンブリのデータム/コンストラクション形状に 制約を接続してはいけません。そうしないと、アセンブリが壊れてしまいます。

部品とサブアセンブリのインポートには、ソリッドユニオンを使用します。

インポートされたすべてのパーツは、直接ユニオンとしてまとめられます。 この機能は、FEMシミュレーションや3Dプリントで1つのソリッドしか使用できない場合に便利です。 後でアセンブリ全体の形状を作成することもできます。

ユーザーインターフェースの設定

ツールバーに制約を表示する

このオプションを使用しない場合、ツールバーのスペースを節約するために、 さまざまな制約のツールバーボタンは表示されません。 新しい制約は、制約ツールダイアログを使って設定できます。

OSのネイティブファイルマネージャーを使用する

このオプションを使用すると、アセンブリのファイルを選択するときに、 OSのファイルダイアログが表示されます。

ファイルの保管

インポートされた部品に相対パスを使用する

パートファイルへの相対ファイルパスを使用します。

インポート部品に絶対パスを使用する

パートファイルへの絶対ファイルパスを使用します。

すべてのファイルはこのプロジェクトフォルダにある

すべてのプロジェクトファイルは指定されたフォルダになければなりません。 このフォルダのサブフォルダにあっても問題ありません。

注意:フォルダ内にファイルが複数存在することは許されません(異なるサブフォルダなど)。

このオプションは、プロジェクトフォルダーをコピーするだけでよいので、 異なるマシンで作業する場合に便利です。

トラブルシューティング

A2plusが設定した制約を解くことができないという問題に直面すると思います。 これを解消するために、さまざまな戦略があります:

コンフリクトファインダーツールの使用

このツールは、競合する制約を見つけるまで、次々に制約を解決しようとするので、 複数の制約がある場合、これが最も安全な方法です。 そして、特定された制約を解決するために、他の戦略をとることができます。 このツールは、ツールバーボタンです。

制約の方向のチェック

制約が一貫して定義されているように見えても、解決できないことがあります。

例えば、2つの平面にplanesParallel制約が設定されているとします。 同じ平面にplaneCoincident制約を設定したい場合、A2plusはこれを解くことができません。 その場合、planesParallelとplanesCoincidentの制約方向は異なります。 これを解決するには、両方の制約に同じ方向を使用します。

A2plusは、ツールバーボタン を使用して、 アセンブリのすべての制約の正しい方向を自動的にチェックします。

制約の削除

解けない制約のほとんどのケースは、新しい制約を追加するときに直接発生します。 解決策は、最後に追加した制約を削除することで、A2plusもこれを提案します。

例えば、FreeCADで部品を編集して、制約に接続された面や辺がなくなった場合などです。 その場合、変更された部品に接続されている制約を一度に1つ削除する必要があります。 削除するたびにツールバーのボタン を使って、解ける状態になったかどうかを確認してください。

解けるアセンブリができたら、必要な制約を段階的に追加していきます。

パーツの移動

場合によっては、ソルバーが制約を解くために必要なのは、より良い開始値だけです。 例えば、車軸部品と車輪部品がある場合です。 axisCoincident制約を追加し、ソルバーが失敗したという情報は得られませんが、 部品はそれに応じて移動されず、 FreeCADのレポートビューウィジェットで「REACHED POS-ACCURACY :0.0」と表示されます。 これを解決するには、制約によって得たい位置に部品を近づけることです。

注意: 制約の少なくとも1つの部品は、 プロパティDatafixed Positionがfalseに設定されていることを確認してください。

チッププロパティの設定

A2plusアセンブリにインポートした後、 部品の一部のフィーチャーを見逃した場合は、DataTipプロパティを確認してください。

A2plusは、先端フィーチャーまでのすべてのフィーチャーを持つ部品本体をインポートします。 これは、先端を特定のフィーチャーに設定することは、 先端より後ろのすべてのフィーチャーが最終的な部品に表示されないことを意味するため、 理にかなっています。 したがって、A2plusで部品のフィーチャーを見逃した場合、 ツールバーのボタン で部品を開き、ボディを選択してそのプロパティDataTipを見てください。 ヒントが必要なフィーチャーにない場合は、 ヒントがあるべきフィーチャーを右クリックし、Set tip を選択します。 最後にパーツを保存し、ツールバーボタン を使ってアセンブリをリロードします。

アセンブリツリーの修理

いくつかの制約が解決できない明確な理由がわからない場合は、 ツールバーの ボタン を使ってみてください。 これは、すべての制約を解決し、異なるパーツの下に再びグループ化します。

古いA2plusアセンブリの移行

2019年3月以前のA2plusで作成されたアセンブリは、 インポートされたパーツのアイコンが正しく表示されず、 プロパティが旧式になっています。 これらのアセンブリは、メニュー A2plus → Misc → Migrate proxies of imported parts を使用して、A2plus バージョン 0.4.35 以降に移行できます。 この作業を行った後、アセンブリファイルを保存し、再度開く必要があります。

アクセント記号を避ける

windowsでは、この戦略は必要ありません。

オペレーティング・システムによっては、 部品やアセンブリのファイル名やファイル・パスにアクセント記号付きの文字が含まれていると、 問題が発生することがあります。 そのため、そのような文字や特殊文字全般は避けてください。

位置の固定

A2plus 0.3.11以降で作成されたアセンブリでは、固定位置が見つからない場合に 警告が表示されるようになったため、この方法は必要なくなりました。

2つのパーツ間に拘束を設定したときに、 どのパーツにも Datafixed Position プロパティが true に設定されていないか、 または Datafixed Position が true に設定されているパーツに拘束によって 接続されていない場合、拘束を解くことができません。 制約の両方のパートにDatafixed Positionがtrueに設定されている場合も同様です。

その後、A2plusは失敗したソリューションの情報を出力しますが、 パーツが移動していないことだけが表示され、 FreeCADのレポートビューウィジェットには「REACHED POS-ACCURACY :0.0」と 表示されることがあります。 これは、ソルバーがエラーなしで終了したが、 実際には制約を解けなかったことを意味します。

したがって、アセンブリ内の少なくとも1つの部品がDatafixed Positionを trueに設定していることを確認してください。 そして、固定部品に何らかの形で接続されている部品にのみ 制約を設定することを確認してください。 これらの依存関係を視覚化するには、アセンブリ構造セクションを参照してください。

回転部品

A2plus 0.4.0以降で作成されたアセンブリでは、 ソルバーが十分な開始角度を得るために、 A2plusがバックグラウンドでパーツを自動的に少し回転させるようになったため、 この戦略は必要なくなりました。

選択された2つの平面の角度が0°または180°の場合、 anglePlanes制約でソルバーが失敗することがありました。 (部品はそれに応じて移動されず、FreeCADのレポートビューウィジェットで "REACHED POS-ACCURACY :0.0 "と表示されます)。 これを解決するには、FreeCADの変形機能(モデルツリーで部品を右クリックし、 コンテキストメニューの変形を選択)を使って1つの部品を数度回転させます。

注意: 制約の少なくとも1つの部品は、 プロパティDatafixed Positionがfalseに設定されていることを確認してください。

アニメーション

A2plusでは、ドラッグ操作とPythonスクリプトによるアニメーションが可能です。

ドラッグ操作

ドラッグ・アニメーションは、アセンブリの一部をドラッグすることで発動する インタラクティブなものです。

このようなアニメーションを作成するには

1 移動または回転をアニメーションさせるパーツを完全に拘束する。

2 ツールバーボタン をクリックすると、ドラッグモードが有効になります。

3 アセンブリの目的のパーツをクリックします。

4 これでマウスを動かすことができ、部品は定義された制約の範囲内でマウスの動きに追従します。

5 ドラッグモードの終了には、アセンブリ内で左クリックか、ESCキーを押してください。

ドラッグアニメーションを試すためのアセンブリの例を示します。

スクリプト

ドラッグ・モードは素晴らしいインタラクティブなアニメーションを提供しますが、 スクリーンキャストやビデオには十分な精度が得られないことがあります。 スクリプトアニメーションの利点は、定義された方法で動きや回転を アニメーション化できることです。 例えば、パーツを前後に10°ずつ正確に回転させることができます。 以下の例では、部品を回転させるアセンブリを使用しています。 これをドラッグモードでアニメートしようとすると、例えばプレゼンテーションで 上司に見せるような前後方向の回転を得るのがいかに難しいかがわかるでしょう。 しかし、インタラクティブなサンプルスクリプトを使えば、これは簡単な作業です。

スクリプト・アニメーションは通常このように動作します:

1 アセンブリは完全に拘束されています。

2 スクリプトは、たとえば部品の位置や回転角度などのパラメータを変更します。

3 パラメータの変更後、アセンブリの制約が解決されます。

4 ステップ2.と3.が繰り返され、アニメーションが生成されます。

配置パラメータの代わりに、2つの平面間の距離を変更することも可能です。

簡単なスクリプトの例

アニメーションをスクリプト化する最も簡単な方法は、 定義された動きに従う非インタラクティブなアニメーションです。

以下はその例です:

まず、アセンブリファイルをダウンロード: A2p_animated-example.FCStd

また、Pythonスクリプトをダウンロード: A2p_animation-example-script.py

スクリプト内で「#」で始まる行は、スクリプトの行が何をするかを説明しています:

アニメーションを実行するためにスクリプトを使用するには、次のことが必要です。

1 FreeCAD でアセンブリファイルを開く。

2 FreeCAD でスクリプトファイルを開く。

3 ツールバーのボタンをクリックしてスクリプト(マクロともいう)を実行する。

4 回転を見るためにアセンブリのタブに変更する。

練習のために、スクリプトの何かを変更してから実行する。例えば、ステップを5に増やします。

これがアニメーション結果の例です:

対話型スクリプトの例

最初のスクリプト例では、 ユーザーからのフィードバックなしでアニメーションを作成する方法を示しました。 ほとんどのアプリケーションでは、アニメーションと対話する必要があります。 例えば、この例で興味深いのは、 駆動ピンがホイールの中央の溝をどのように横切るかを見ることです。 より詳しく見るために、この詳細を同僚や上司に見せるかもしれません。 そのため、インタラクティブなソリューションが必要です。

これには、スライダー付きのカスタムアニメーションダイアログを使用します。 スライダーを動かすことによって回転角度を設定することができ、 興味深い位置で前後に回転することができます。

同じアセンブリファイルを使います: A2p_animated-example.FCStd

またこのPythonスクリプトも使います: A2p_animation-example-script.py。

これは、インタラクティブなアニメーションダイアログを得るのスクリプトです:

スクリプトで定義されたダイアログは次のようになります:

スクリプトコマンド

スクリプトの構文をよりよく理解するために、コマンドの情報をいくつか紹介します:

starWheel.Placement.Rotation.Angle = math.radians(angle)

ここでは、以前にstarWheelとして取得したパーツの配置プロパティ Rotation.Angleを変更します。 このプロパティは角度をラジアンとして取得します。 ライブラリ math の関数 radians() は、角度を度からラジアンに変換します。

Rotation.Angleプロパティは、パーツの現在の配置軸(この例ではX軸)を使用します。 部品をZ軸の周りに回転させるには、(回転コマンドを呼び出す前に) コマンドを使用して回転軸を設定します:

starWheel.Placement.Rotation.Axis = FreeCAD.Vector(0,0,1)

回転の代わりに、パーツを動かすこともできます。 例えば、車輪のY方向の配置を変更するには、次のようにコマンドを実行します:

starWheel.Placement.Base.y = PositionShift

この場合、可変角度を定義するのではなく、 ループの実行ごとに変更するPositionShiftを定義することになります。

パーツ配置の設定にはさまざまな方法があります。 いくつかはここで文書化されていますが、残念ながら、 可能なすべての配置コマンドのリストは(まだ)ありません。

a2p_solver.solveConstraints(document, useTransaction=False/True)

これはA2plus固有のコマンドです。 以前にドキュメントとして取得したアセンブリアセンブリ制約を解決します。 useTransactionオプションは、 FreeCADがすべての変更を取り消し/やり直しスタックに保存するかどうかを指定します。 大きなアニメーションの場合、falseに設定するとよいです。