入門ガイド5.2 数値のリンクで、モデルを自動変形する

 モデルの自動変形に関しては、FreeCADの操作やデータ構造を把握していないと理解できない部分が多数あります。FreeCADを使い慣れないとモデルの自動変形は必要ないかもしれませんが、今わかっている範囲で、概要だけまとめておきます。



 BIMでは、モデルを修正すると、変更がすべての図面に反映され整合性が確保されることがメリットといわれますが、モデルの一部を変更した時に、関連する部分が自動的に修正されることも重要な要素です。
 簡単な平屋の建物なら変更箇所を順番に直していくことも可能ですが、大規模な建物になると、企画や基本設計の時に基準線や階高を変更した場合、モデルが自動的に変形しないとその修正は膨大なものになります。

 2DCADなら範囲を選択してストレッチすれば変形できますが、3Dでストレッチをすると画面で見えてない部分もあるので、モデルが崩れてしまう可能性があります。

 市販のBIMソフトでは部品を配置すると、自動的に基準になる線にリンクするので、変更に対応してモデルは自動変形します。FreeCADではリンクしていないので、修正しない部品はそのままの位置に残ります。
 BIMソフトとして成立するためには、この自動変形の機能がどうしても必要です。FreeCADは、プロパティに直接数値入力する他に数式エディタという機能があって、他のオブジェクトのプロパティを参照して計算式で入力できるようになっています。この機能により相互のデータを関連づけると自動変形できるようになります。

数式エディタとは、プロパティの数値入力欄をクリックしたときに右端に○印(○の中にf(x))が出るものです。クリックすると入力用のウインドウが開きます。


■数式エディタを使ってリンクする部分
 BIMソフトRevitでは、変更がモデルの関連部分にどのように影響するか考えてみます。
1. 通り芯の位置(スパン間隔)を変更すると、通り芯上の部品が移動します。通り移動により長さが変更になる梁、壁、床や屋根の長さが変更になります。
2. 階高を変更すると、柱と壁の高さが変更になります。変更した階より上の階のモデルは階高変更分だけ移動します。
3. 壁を移動、削除、追加した場合は、壁に接続する他の壁も長さを調整します。
4. 構造部材を含めすべての部品はファミリを使用して作成されているので、部品を変更すると同じファミリを使用しているすべての部品に変更が反映されます。
5. 階段や備品については、個別に対応が必要な箇所は残ります。


FreeCADでは次の方法でプロパティをリンクすれば、変更に対応した自動変形が可能になります。

柱は、通り芯の変更に対しては、軸システムで一括配置して対応。
   柱のレベルは、レベルオブジェクトの下層に移動してレベルに合わせて移動
            または、PlacementのZ値をレベル高さにリンク。
   柱の長さ(高さ)は、レベルオブジェクトの下層に移動してレベルのHeightに連動。
            (レベルのHeightは階高にリンク)
            または、高さプロパティを階高にリンク

梁は、通り芯の変更は、PlacementのX、Y値を通り芯位置にリンク
           小梁は、通り芯との位置関係を計算式にする。
   梁のレベルは、レベルオブジェクトの下層に移動してレベルに合わせて移動
            または、PlacementのZ値をレベル高さにリンク。
   梁の長さ(高さ)は、長さプロパティをスパン長さにリンク

壁は、通り芯の変更は、ベースオブジェクトをSketcherで作図し通り芯に拘束
            壁の長さもSketcherで自動変更。
   壁のレベルは、レベルオブジェクトの下層に移動しレベルに合わせて移動
            または、PlacementのZ値をレベル高さにリンク。
   壁の高さは、レベルオブジェクトの下層で、レベルのHeightで制御。
            または、高さプロパティを階高にリンク
床、屋根は、通り芯の変更は、ベースオブジェクトをSketcherで作図し通り芯に拘束
            床、屋根の長さもSketcherで自動変更。
   床、屋根のレベルはレベルオブジェクトの下層に移動してレベルに合わせて移動
            または、PlacementのZ値をレベル高さにリンク。

その他の階段、手すりなどについても、ベースオブジェクトをSketcherで作成できるものであれば、Sketcherで作図しますが、段数の変更や手摺子のピッチなど個別に修正が必要な箇所は残ります。

構造部材も含む部品については、FreeCADにはファミリ(部品)の概念がないので、コピーやクローンツールを使用して同じ属性を継承しています。
 したがって、部品を変更する場合はファミリで一括してパラメーターを変えることはできないので、同一形状の部品をまとめて選択し、プロパティで変更します。

 データを選択するためには、同一部品であることを識別できる名前を付け整理しておくことが重要です。これがFreeCADでデータ名を整理する必要がある理由です。
 FreeCADでは、オブジェクトをコピーすると、もとのオブジェクト名に連番が追加されていくのでこれも有効な方法です。



■数式エディタによるリンクの方法
 FreeCADでは、オブジェクトのプロパティは、他のオブジェクトのプロパティや、FreeCADに実装されているスプレッドシートとリンクすることができます。オブジェクトのプロパティをスプレッドシートにリンクし、計算した結果を別のオブジェクトに戻すこともできます。

 BIMソフトRevitでは、通り芯(壁芯)や壁、寸法は密接にリンクしているので、通りや壁をドラッグして移動しても、寸法を変更しても、関連部分が自動的に変形します。FreeCADはそこまでの連携はないので、変更可能な部分を見極める必要があります。

 すべての基準になる通り芯(軸線)のデータを見ると、Distancesがあって設定した軸線間隔があります。数値欄をクリックしても数式エディタのマークがないのでこの部分の数値を数式エディタで変更することができません。軸線オブジェクトをダブルクリックして出る軸線の内訳でも、数式エディタは出せません。

 したがって軸線間隔の変更は軸線の内訳に直接入力するしか方法がないので、この部分の数値をもとにして、他の部品のプロパティにリンクすることにします。

 具体的なリンクの方法は、「モデリング練習06S造事務所」で手を付けていますが、まだ完全に自動変形するところまでは完成していません。

 次回は、リンクの概要を説明します。設定手順が複雑で、モデリングしながら確認しないと正しくリンクできているかわからないので、操作の概要だけになります。

コメント

このブログの人気の投稿

はじめに FreeCADでBIMはできるのか(2022/8/8追記)

オブジェクトを着色する(3) パースのレンダリングに挑戦