Pilot-ICEとの統合のために、KOMPAS-3Dファイルのオープン部分からデータを読み取ります

KOMPAS-3Dファイルには、ドキュメントに関する情報が含まれています:図面の名前と指定、開発者の名前、確認と承認、ドキュメントの種類、形式、シート数。 企業がシステムを使用してワークフローを自動化する場合、多くの場合、設計者はこの情報を手動で入力する必要があります。



画像

ワークフローシステムへのドキュメントの追加(ドキュメントカード)



カードに入力する必要があるデータはすでにソースファイルにある可能性があるため、入力プロセスを自動化できます。





KOMPAS-3Dからデータを受信するためのライブラリ





第16バージョン以降、COMPAS-3Dデータ形式に重大な変更が発生しました。 第一に、よりオープンになり、第二に、ファイルサイズが小さくなりました。 KOMPAS-3Dファイル形式バージョン16以降は、この文書の属性とオブジェクトに関する情報を含むXML形式のメタデータを含むzipアーカイブです。 KOMPAS-3Dファイルを読み取るために、MITライセンスの下で公開されているKompasFileReader .NETライブラリを開発しました [1]。



ワークフロー統合



ワークフローシステムとして、 Pilot-ICEを使用します。 システムのユーザーアルゴリズムは非常に単純です。 設計中のすべてのソースファイルは、Dropboxと同様にPilot-Storage仮想ディスクにあります。 電子文書を公開して調整を実行する場合は、電子文書の印刷の結果としてPilot-XPS仮想プリンターが使用されます。 ユーザーは、電子アーカイブ内のフォルダーを選択して文書カードに記入し、文書をアーカイブに保存し、必要に応じて承認を実行します。 しかし、KOMPAS-3Dシステムで作業する場合、ドキュメントを正確かつ正確に作成し、その結果、図面の主要な碑文を記入すると、主要な碑文からPilot-ICEドキュメントカードにデータを自動的に転送できます。 同様のプラグインの作成方法を以下に説明します。



Pilot-ICEシステムは、プラグインを開発する機能をサポートしています。SDKは、ダウンロードセンターのリンクからダウンロードできます[3]。



SDK(Documentation.html)の指示に従って新しいプロジェクトを作成できます。



ドキュメントカードに自動的に記入するには、仮想プリンターを印刷してドキュメントカードをダウンロードする呼び出しをインターセプトする必要があります。



プラグインは、IAutoImportHandlerおよびIObjectCardHandlerインターフェイスを使用する必要があります。 ソースファイルを分析するには、IAutoImportHandlerインターフェイスのHandleメソッドを実装する必要があります。また、カードに入力するには、まったく同じIObjectCardHandlerインターフェイス名のメソッドを使用する必要があります。

プラグインのフラグメント:

namespace Ascon.Pilot.SDK.KompasAttrAutoImport { [Export(typeof(IAutoimportHandler))] [Export(typeof(IObjectCardHandler))] public class KompasAttrAutoImport : IAutoimportHandler, IObjectCardHandler, ... { ... public bool Handle(string filePath, string sourceFilePath, AutoimportSource autoimportSource) { ... } public bool Handle(IAttributeModifier modifier, ObjectCardContext context) { ... } } }
      
      







ソースファイルの取得と分析



印刷するソースファイルへのパスをインターセプトし、ファイルを分析して、その属性を取得します。



 public bool Handle(string filePath, string sourceFilePath, AutoimportSource autoimportSource) { //        if (string.IsNullOrWhiteSpace(sourceFilePath)) return false; //    .  . if (!IsFileExtension(sourceFilePath, CDW_EXT) return false; using (var inputStream = new FileStream(sourceFilePath, FileMode.Open, FileAccess.Read)) { var ms = new MemoryStream(); inputStream.Seek(0, SeekOrigin.Begin); inputStream.CopyTo(ms); ms.Position = 0; if (IsFileExtension(sourceFilePath, SPW_EXT)) { var taskOpenSpwFile = new Task<SpwAnalyzer>(() => new SpwAnalyzer(ms)); taskOpenSpwFile.Start(); taskOpenSpwFile.Wait(); if (taskOpenSpwFile.Result.IsCompleted) { var spc = taskOpenSpwFile.Result.GetSpecification; spc.FileName = sourceFilePath; _doc = spc; } ... } ... } return false; }
      
      







文書カードへの記入



印刷直後に、文書カードが開き、そのフィールドをインターセプトして、上記で取得したデータに基づいて入力します。

 public bool Handle(IAttributeModifier modifier, ObjectCardContext context) { var isObjectModification = context.EditiedObject != null; if (isObjectModification || context.IsReadOnly) return false; if (_doc == null) return false; var docProp = _doc.GetProps(); foreach (var pairPilotKompasAttr in _pairPilotKompasAttrs) { var val = docProp.FirstOrDefault(x => x.Name == pairPilotKompasAttr.NamePropKompas)?.Value; if (val != null) modifier.SetValue(pairPilotKompasAttr.NameAttrPilot, ValueTextClear(val)); } return true; }
      
      







ここで、_pairPilotKompasAttrsは、パイロットICEおよびKOMPAS-3Dシステムの属性名の値のペアです。

*リストは簡略化された形式で提供されます。プロジェクトページ[1]で詳細を確認できます。



作業実演



例として、Pilot-Storageにある図面を取り上げます。



画像

図面は、主な碑文に記入する必要があります



画像

仮想プリンターに印刷します



画像

いいね! 文書カードは自動的に記入されます!



プラグイン構成



プラグインを企業の構成に適合させるために、KOMPAS-3Dの属性とワークフローシステムの属性間の対応を構成する機会を提供します。

これを行うには、JSON形式を使用して、このデータを一般的なシステム設定に保存します。



設定例:

 [{ "NameAttrPilot": "name", "NamePropKompas": "" }, { "NameAttrPilot": "mark", "NamePropKompas": "" } ]
      
      







NameAttrPilotはPilot-ICEシステムの属性の名前であり、Pilot-myAdminで確認できます。

NamePropKompas-KOMPAS-3Dシステムの属性の名前。KOMPAS-3Dファイルをzipアーカイブとして開き、MetaInfoファイルを調べることで確認できます。



参照:





  1. Pilot-ICEシステムをKOMPAS-3Dと統合するためのプラグインはgithub.com/kozintsev/Pilot.CADReaderです。
  2. Pilot-ICE-プロジェクト管理システム-pilotems.com
  3. パイロットシステムダウンロードセンター-pilot.ascon.ru




オレグ・コジンツェフ



All Articles