定期的な更新が必要なデータ ファイルがある場合、または複数の Configurator 360 の設計で必要なデータ ファイルがある場合、設計ごとにコピーをアップロードする必要はありません。代わりに、データ ファイルを共有ファイルとしてアップロードします。デザイン ルールでは、標準の .NET または Intent の関数を使用して、共有ファイルのコンテンツを読み込むことができます。共有ファイルは、いつでも更新することができます。その際、設計が変更または更新されることはありません。
データ ファイルは、データベース、Excel、手動で編集した CSV ファイルや XML ファイルなど、任意のソースから取得できます。
Configurator 360 管理者インタフェースで、[オプション]タブ
[共有ファイル]タブを選択します。
[ファイルを選択]ボタンをクリックし、共有するファイルを選択してアップロードします。必要に応じて、[新規フォルダ]ボタンを使用してサブフォルダを作成します。アップロードしたファイルは、カタログの管理者全員と共有されます。
Inventor プロジェクトの作業スペース フォルダの外部にあるフォルダ(例: C:¥iLogicRules)に iLogicVb ファイルをコピーします。これは、外部 iLogic ルール用のグローバルなフォルダです。
次に、[ツール]
[オプション]
[iLogic 環境設定]コマンドを選択し、このフォルダを iLogic で参照するように設定します。このコマンドは、[オプション]パネル下部のドロップダウン メニューにあります。
3 つの IKS ファイルを Intent 検索パスに含めます。推奨の場所は、ivHostlib です(例: C:¥Program Files¥Autodesk¥Inventor ETO 20xx¥Library¥Inventor¥ivhostlib)。
関数の定義を次に示します。
Function GetSharedDataFile(sharedFilePath As String) As String
sharedFilePath は共有ファイルへのパスです(ルート フォルダに対する相対パス)。パスでは、フォルダの区切り文字としてスラッシュまたは円記号を使用します。ファイルがルート フォルダ自体の中にある場合は、"filename.ext" を指定します。実行すると、ファイルへの Windows の絶対パスが返されます。
1. この関数を C360_RefreshSharedData というルールから呼び出します。
2. このルールを、C360 の表示パラメータが格納されているドキュメント内に作成します。共有データは、このルールからすべて取得する必要があります。Configurator 360 では、設計がロードされ、共有データの最新バージョンが使用されていることが確認されると、このルールが実行されます。
3. 任意のファイル読み込み関数を使用してファイルのコンテンツにアクセスします。
GetSharedDataFile ()関数の呼び出しは、特定のラッパー パーツにより行われます。次の手順に従います。
Design MySharedFileCollection : C360CommonFileCollection
Child MySharedFile As :C360SharedDataFile
SharedPath = "MyFile.txt"
End Child
End Design
この設計では、子のパーツそれぞれが単一の共有ファイルを保持します。必要なすべてのパーツを追加します。SharedPath パラメータは、システムによって GetSharedDataFile ()関数への引数として使用されます。
Dim localPath As String = MySharedFileCollection.MySharedFile.LocalPath
ETO Intent では、コード内の任意のポイントで共有データにアクセスすることができます。iLogic に対する上記の制限事項は ETO に適用されません。
Configurator 360 の共有ファイルは、いつでも更新することができます。共有ファイルが初めて Configurator 360 のモデリング セッションで参照される際に、ファイルの最新バージョンの有無が Configurator 360 で確認されます。新しいセッションでは、すべてのファイルの最新バージョンが使用されます。セッションの実行中にファイルを更新した場合、最新バージョンは実行中のセッションで検出されません。最新バージョンは、後続のセッションでのみ表示されます。
RFQ (見積の要求)が 1 つまたは複数の共有ファイルのデータで作成され、この RFQ とともに保存されたモデルを開いた場合、モデルが最初に生成されたときのセッションで使用された元の(古い)バージョンがモデルで引き続き参照されます。
Configurator 360 では、共有ファイル間の相互依存関係は検出されません。更新を容易にするために、すべての依存情報(たとえば、同じデータベースの 2 つのテーブル)を 1 つのファイルに結合することをお勧めします。1 つのファイルに結合することで、潜在的な問題の発生を防止できます。結合した場合、1 つの Configurator 360 セッションでは、あるファイルの新しいバージョンと、2 番目のファイルの古い互換性のないバージョンとを一緒にロードすることはできません。2 つのテーブルを 2 つの別々のファイルに保存した場合は、エラーが発生する可能性があります。
同じ設計内に、ETO による共有データ ファイルへのアクセスと、iLogic による共有データ ファイルへのアクセスが混在しないようにしてください。iLogic ルールを含むパーツまたはサブアセンブリが ETO デザインに組み込まれている場合、iLogic ルールでは共有データ ファイルにアクセスできません。この場合、Intent ルールから共有データをすべて読み込み、必要な値を iLogic コンポーネントに渡します。
iLogic の C360_RefreshSharedData ルールから 1 つまたは複数の共有ファイルを読み込みます。
C360_RefreshSharedData ルールの簡単な例を次に示します。
AddVbFile ステートメントで、GetSharedDataFile 関数を提供します。
AddVbFile "C360SharedFilesAccess.iLogicVb"
Dim localPath As String = GetSharedDataFile("WidthFactor.txt")
Dim fileContents As String = IO.File.ReadAllText(localPath)
Dim widthFactorX As Double
If Double.TryParse(fileContents, widthFactorX) Then
Parameter("WidthFactor") = widthFactorX
End If
このルールは、1 つの数値で構成される 1 行のテキスト ファイルを読み込みます。また、WidthFactor パラメータに値を割り当てます。このパラメータは、次に示すように、2 つのパラメータ間の関係を確立するために、別のルールで使用することができます。
Width = Length * WidthFactor