設計間でファイルを共有する

定期的な更新が必要なデータ ファイルがある場合、または複数の Configurator 360 の設計で必要なデータ ファイルがある場合、設計ごとにコピーをアップロードする必要はありません。代わりに、データ ファイルを共有ファイルとしてアップロードします。デザイン ルールでは、標準の .NET または Intent の関数を使用して、共有ファイルのコンテンツを読み込むことができます。共有ファイルは、いつでも更新することができます。その際、設計が変更または更新されることはありません。

データ ファイルは、データベース、Excel、手動で編集した CSV ファイルや XML ファイルなど、任意のソースから取得できます。

ファイルを共有

  1. Configurator 360 管理者インタフェースで、[オプション]タブ [共有ファイル]タブを選択します。

  2. [ファイルを選択]ボタンをクリックし、共有するファイルを選択してアップロードします。必要に応じて、[新規フォルダ]ボタンを使用してサブフォルダを作成します。アップロードしたファイルは、カタログの管理者全員と共有されます。

注: カタログの管理者が複数存在する場合、このフォルダは、すべての管理者と共有されます。このデータ フォルダにサブフォルダを作成する場合は、次のセクションで説明するように、対応するサブフォルダをローカル フォルダに作成する必要があります。

iLogic ルールおよび ETO ルールで共有ファイルを使用する

  1. C:¥C360_A360¥ という名前のローカル フォルダにデータ ファイルを配置します。
    注: 別のフォルダを使用するには、C:¥C360_A360¥ に LocalFolderPath.txt という名前のファイルを作成します。このテキスト ファイル内で、行を 1 つ追加し、使用するよう選択したフォルダの絶対パスを記述します。
  2. ヘルパー関数をインストールします。オートデスクでは、ローカル コンピュータ上で実行される GetSharedDataFile 関数の iLogic バージョンと ETO バージョンを提供しています。ETO バージョンでは、2 つの Intent デザイン ファイルをインストールします。これらのファイルにアクセスするには、「Autodesk Configurator 360 サンプル」を参照してください。

    iLogic の場合

    Inventor プロジェクトの作業スペース フォルダの外部にあるフォルダ(例: C:¥iLogicRules)に iLogicVb ファイルをコピーします。これは、外部 iLogic ルール用のグローバルなフォルダです。

    次に、[ツール][オプション][iLogic 環境設定]コマンドを選択し、このフォルダを iLogic で参照するように設定します。このコマンドは、[オプション]パネル下部のドロップダウン メニューにあります。

    注: このファイルは、Configurator 360 にアップロードするデータに含めないでください。

    ETO の場合

    3 つの IKS ファイルを Intent 検索パスに含めます。推奨の場所は、ivHostlib です(例: C:¥Program Files¥Autodesk¥Inventor ETO 20xx¥Library¥Inventor¥ivhostlib)。

  3. GetSharedDataFile()関数を使用すると、共有ファイルにアクセスできます。

    関数の定義を次に示します。

    Function GetSharedDataFile(sharedFilePath As String) As String

    sharedFilePath は共有ファイルへのパスです(ルート フォルダに対する相対パス)。パスでは、フォルダの区切り文字としてスラッシュまたは円記号を使用します。ファイルがルート フォルダ自体の中にある場合は、"filename.ext" を指定します。実行すると、ファイルへの Windows の絶対パスが返されます。

    iLogic

    1. この関数を C360_RefreshSharedData というルールから呼び出します。

    2. このルールを、C360 の表示パラメータが格納されているドキュメント内に作成します。共有データは、このルールからすべて取得する必要があります。Configurator 360 では、設計がロードされ、共有データの最新バージョンが使用されていることが確認されると、このルールが実行されます。

    3. 任意のファイル読み込み関数を使用してファイルのコンテンツにアクセスします。

    4. 次の方法のいずれかを選択して、処理を続行します。
    • 永続的な Inventor のデータ構造内のファイルから読み込んだデータをすべて即座に格納します。たとえば、パラメータ、プロパティ、属性などが挙げられます。このデータは、メモリに格納されるだけでなく、Inventor ファイルとともに保存されます。この方法は、便利で安定性に優れていますが、次に示す方法と比較して効率性が低くなる場合があります。
    • iLogic の SharedVariables (または他の非永続的なメモリ)内のファイルから読み込んだデータを一部またはすべて格納し、後で定義する他のルールで使用できるようにします。通常、これらの SharedVariables は、後で定義する他のルールで参照します。これらの他のルールは、新しいデータを受け取ったときに、C360_RefreshSharedData から実行します。この方法は、時間のかかるファイル処理を最小限に短縮します。ただし、C360_RefreshSharedData から他のルールが呼び出されないことが原因で、エラーが発生しやすくなります。

    ETO Intent

    GetSharedDataFile ()関数の呼び出しは、特定のラッパー パーツにより行われます。次の手順に従います。

    1. プロジェクトに設計を作成します。C360CommonFileCollection 設計を派生元にします。次に例を示します。
      Design MySharedFileCollection : C360CommonFileCollection
         Child MySharedFile As :C360SharedDataFile
           SharedPath = "MyFile.txt"
         End Child
      End Design
      

      この設計では、子のパーツそれぞれが単一の共有ファイルを保持します。必要なすべてのパーツを追加します。SharedPath パラメータは、システムによって GetSharedDataFile ()関数への引数として使用されます。

    2. ルート デザイン内で、MySharedFileCollection 設計を実装する子パーツを追加します。
    3. 共有ファイルへの Windows の絶対パスを取得するには、C360SharedDataFile の子パーツで LocalPath ルールの値を読み込みます。次に例を示します。
      Dim localPath As String = MySharedFileCollection.MySharedFile.LocalPath

      ETO Intent では、コード内の任意のポイントで共有データにアクセスすることができます。iLogic に対する上記の制限事項は ETO に適用されません。

  4. ローカルでテストしたら、上記の手順に従って共有データ ファイルを Configurator 360 にアップロードします。
  5. Configurator 360 に設計をアップロードします。
    注: 最初に共有データ ファイルをアップロードしてから、そのファイルにアクセスする任意の設計をアップロードしてください。

ファイルのバージョン

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 ルールのサンプル

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