[第41回]え、マジっすか。そんなの知らなかったテクニック – こわーい循環参照

再構築がうまくいかない?

モデルを繰り返し再構築しても、正しく更新されないことがありませんか?再構築する度に異なる結果を繰り返したりしていませんか?パフォーマンスが遅い?もしそんな場面に出会ったら、「循環参照」を疑うべきかもしれません。
「循環参照(circular reference)」は、パーツの寸法または関係が別のパーツを参照し、参照されていたパーツもまた最初のパーツを参照している場合に発生します。「トップダウンモデリング」を使用している場合に発生する可能性が多いと言えるかもしれません。しかし、トップダウンモデリングだけが問題というわけでもないのです。

SOLIDWORKS 2021では、モデルに循環参照があるかどうかをすばやく簡単に確認できるようになりました。これまでは、モデル内の参照を十分に理解する必要があり、各部品の外部参照をチェックし、干渉する最初の部品を参照している同じアセンブリ内の別部品への参照があるかどうかをひとつひとつ確認する必要がありました。 SOLIDWORKS2021では、確認する手間がいりません!

 

アセンブリモードで、コマンドマネージャーから、[評価]タブを選択し、[パフォーマンス評価]を選択します。または、ドロップダウンメニューを使用して、[ツール]> [評価]> [パフォーマンス評価]を選択することもできます。
「パフォーマンス評価」ツールには、5つの便利なツールがあります。

・(アセンブリファイルを)開くパフォーマンス
・(シェーディング等)ディスプレイのパフォーマンス
・再構築パフォーマンス
・パフォーマンスの設定
・統計情報

です。

 

 

簡単な例でご紹介しましょう。
「ふた」のついたシンプルな「箱」をモデル化してみます。「箱」は、(例えば)平面に「矩形」をスケッチし、「押し出し」て、「シェル化」します。新規アセンブリ部品を作成し、作成した「箱」を「構成部品の挿入」で追加します。次に、アセンブリに、「構成部品の挿入」>「新規部品」を追加します。例えばBoxLidと名前をつけても良いでしょう。このBoxLidを作成する際、「箱」部品の上端の外側の(矩形を形成する)輪郭ラインを選択し、「BoxLid」を設計するようにします。こうすることで、「箱」の寸法が変更されても、「BoxLid」も同時に更新され、常に「箱」にフィットするようになります。これが外部参照ですね。

 

ここで、設計に変更があり、BoxLidには、「穴」が必要で、「箱」には、その穴を貫通するボス(箱の底面から上向き)の作成が必要になったと仮定します。まず、「BoxLid」を編集(部品編集)し、穴を追加します。次に、「箱」を編集(部品編集)します。編集する際、BoxLidで作成した「穴」をまずは、「箱」側にオフセットし、オフセットしたエンティティからボスを作成します。これで、「箱」から「BoxLid」へ、「BoxLid」から「箱」への外部参照がつけられたわけです。部品アイコンの横には、「->」というマークが常時され、これは両方に外部参照があることを意味しています。
問題の無い参照であるため、お互いに干渉しません。ここで、「パフォーマンス評価」を実行しても、循環参照がない、ことを確認できます。

 

 

しかし、2つの参照が異なる結果を生む状態を作ることができます。敢えてこんなことをする人がいるとは思えませんが、偶然にも参照したものによって、「再構築」が機能せず、再構築ボタンを繰り返し押すと、別の結果を導き出してしまう、という現象です。これが「循環参照」です。
このように「再構築」ボタンをクリックするたびに、異なる結果を導き出すようなことになった場合は、迷わず「パフォーマンス評価」して下さい。
または、SOLIDWORKS2021では、循環参照しないように「再構築エラー」で警告し、スムーズな設計プロセスに導いてくれますよ。

SOLIDWORKS2021の新機能は、こちらをご参照下さい。

SOLIDWORKS

SOLIDWORKS

Dassault Systemes SOLIDWORKS Corp.は、データの作成、シミュレーション、管理、テクニカル コミュニケーション、電気設計、ビジュアリゼーション、コラボレーションを行い、エンジニアリング リソースの革新と生産性を達成するための完成されたソリューションを提供しています。