ワークフローシステムへのドキュメントの追加(ドキュメントカード)
カードに入力する必要があるデータはすでにソースファイルにある可能性があるため、入力プロセスを自動化できます。
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ファイルを調べることで確認できます。
参照:
- Pilot-ICEシステムをKOMPAS-3Dと統合するためのプラグインはgithub.com/kozintsev/Pilot.CADReaderです。
- Pilot-ICE-プロジェクト管理システム-pilotems.com
- パイロットシステムダウンロードセンター-pilot.ascon.ru
オレグ・コジンツェフ