KOMPAS-3D APIの操作→レッスン1→基本

デザイナーとエンジニアは、KOMPASでの作業、図面、3Dモデル、アセンブリの手動構築に慣れています。 ただし、COMPASSシステムは、作業を自動化するための豊富な機能セットを提供します。 必要に応じて、複雑な図面、3Dモデル、またはアセンブリを構築するプロセス全体を1つのボタンをクリックするだけに減らすことができます。 これの真実は、プログラマーのために私たちのために働かなければなりません。



1つの記事のフレームワークでは、すべてのCOMPASS自動化機能を説明することは不可能です。 これでも本では十分ではありません。 幸いなことに、KOMPASパッケージには、ドキュメント、さまざまなプログラミング言語のヘッダーファイル、および多数の例が含まれています。







セルゲイ・アレクサンドロヴィチ・ノルシーエフ-ソフトウェアエンジニア、JSC「研究機関」シグナル」、コブロフ。 「DelphiでのCOMPASのアプリケーション開発」という本の著者





ドキュメントと例





ドキュメントは、1つのCHMファイルの形式で発行されます。 これは、COMPASSカタログのSDKディレクトリにあります。 たとえば、自宅のコンピューターでは、フルパスは次のようになります。 「C:\ Program Files \ ASCON \ KOMPAS-3D v17 \ SDK \ SDK.chm」 以下の画像は、このファイルの内容を示しています。







このファイルは、すべてのインターフェース、それらのプロパティおよびメソッドの完全な説明を提供します。 この記事では、バージョン5のCOMインターフェイスを介したCOMPASとの対話の概要のみを説明します。



ドキュメントに加えて、KOMPASパッケージには、さまざまなプログラミング言語でのこのシステムのプログラミング例が多数含まれています。 これらはドキュメントと同じディレクトリにあります。 「SDK」ディレクトリを開くと、プログラミング言語に対応する名前のアーカイブがいくつか表示されます。 「Basic」「C#」「C ++」 、および「Pascal」です。 それらは例です。 C ++言語を使用して、対応するアーカイブを任意の場所に解凍します。 使用される環境はC ++ Builderです。







ヘッダーファイル





開始する前に、ヘッダーファイルが必要です。 それらは「SDK \ Include \」ディレクトリにあります。 次のファイルが必要です。



Ks_TLB.hおよびKs_TLB.cpp すべての主要なインターフェースの宣言が含まれています。 これらはコアファイルです。



「KsConstants.h」および「ldefin2D.h」 。 これらは、さまざまな定数を指定するオプションのファイルです。

これらのファイルがプロジェクトに接続されたら、作業を開始できます。







コンパスへの接続





「Interface Interfaces API 5」のKOMPASシステム自体は、 KompasObjectインターフェースによって記述されてます。 対応するCOMオブジェクトは、文字列"KOMPAS.Application.5"で指定されます。 以下は、COMPASSへの接続の例です。



KompasObjectPtr kompas; //  kompas.CreateInstance(L"KOMPAS.Application.5"); //   kompas->Visible = true; //   kompas.Unbind();
      
      







「KompasObjectPtr」データ型は、 KompasObjectインターフェイスへのポインターを設定します。



このプログラムの結果、メインのCOMPASSプログラムウィンドウが画面に表示されます。 単一のドキュメントは開きません。







COMPASSプログラムを閉じるには、 KompasObjectインターフェースのQuit()メソッドが使用されます。 KompasObjectインターフェイスの最も重要なメソッドの1つは、 GetParamStructメソッドです。 何らかのタイプのオブジェクトのパラメーターインターフェイスへのポインターを返します。 要求されたオブジェクトタイプは、単一のパラメーターの値としてメソッドに渡されます。 合計で、KOMPASのドキュメントによれば、このメソッドを使用すると、さまざまなタイプのオブジェクトの129パラメーターインターフェイスを取得できます。



描画とフラグメント





図面とフラグメントの作成は2段階で行われます。 最初の段階で、作成されたドキュメントのパラメーターが準備されます。 2番目では、ドキュメント自体が作成されます。 この2段階のアプローチは、COMPASシステムでほぼすべてのオブジェクトを作成するために使用されます。



ドキュメントパラメータは、 ksDocumentParamインターフェイスによって記述されます。 ポインターを取得するには、 ko_DocumentParamパラメーターを指定したKompasObjectインターフェイスのGetParamStructメソッドを使用します。 このインターフェイスの主なプロパティはtypeプロパティで、このインターフェイスで記述されるドキュメントのタイプを示します。



図面とフラグメントは、 ksDocument2Dインターフェイスによって記述されます。 KompasObjectインターフェースのDocument2Dメソッドを使用して、ポインターを取得できます。 以下は、新しい図面を作成するプログラムの例です。



 KompasObjectPtr kompas; //  kompas.CreateInstance(L"KOMPAS.Application.5"); //   DocumentParamPtr DocumentParam; DocumentParam=(DocumentParamPtr)kompas->GetParamStruct(ko_DocumentParam); DocumentParam->Init(); DocumentParam->type = lt_DocSheetStandart; //:  //  Document2DPtr Document2D; Document2D = (Document2DPtr)kompas->Document2D(); Document2D->ksCreateDocument(DocumentParam); //   kompas->Visible = true; kompas.Unbind();
      
      







このプログラムの結果として、新しい図面を含むメインのCOMPASSプログラムウィンドウが画面に表示されます。 この図面には、フレームもメインの碑文もありません。それらを構成しなかったためです。







フラグメントを作成するには、 ksDocumentParamインターフェイスのtypeフィールドに値lt_DocFragmentを指定します。 他のすべての点で、新しいフラグメントを作成するプロセスは、図面を作成するプロセスに似ています。



仕様書





仕様の作成は、図面とフラグメントの作成に似ています。 ここでは、 ksDocumentParamインターフェイスも使用されます 。 しかし、いくつかの違いがあります。 最初に、仕様はksSpcDocumentインターフェースによって記述されます。 このインターフェイスへのポインタは、 KompasObjectインターフェイスのSpcDocument()メソッドを返します。 次に、仕様を作成する場合は、スタイルライブラリへのフルパスを指定する必要があります。 指定されていない場合、システムは仕様を作成しません。 スタイルライブラリは「graphic.lyt」ファイルです。 Sys \ KOMPASディレクトリにあります。 以下は、仕様を作成するプログラムの例です。



 //  KompasObjectPtr kompas; kompas.CreateInstance(L"KOMPAS.Application.5"); //   DocumentParamPtr DocumentParam; DocumentParam=(DocumentParamPtr)kompas->GetParamStruct(ko_DocumentParam); DocumentParam->Init(); DocumentParam->type = lt_DocSpc; //:  //      BSTR str; str = kompas->ksSystemPath(sptSYSTEM_FILES); SysReAllocString(&str, SysAllocString(L"\graphic.lyt")); //     SheetParPtr SheetPar; SheetPar = (SheetParPtr)DocumentParam->GetLayoutParam(); SheetPar->Init(); SheetPar->layoutName = str; //  SpcDocumentPtr SpcDocument; SpcDocument = (SpcDocumentPtr)kompas->SpcDocument(); SpcDocument->ksCreateDocument(DocumentParam); //   kompas->Visible = true; kompas.Unbind();
      
      







上記の例について3つの重要な発言をします。

  1. Sysディレクトリへのパスを取得するには、 KompasObjectインターフェイスのksSystemPathメソッドを使用します。 このメソッドは、指定されたKOMPASディレクトリへのパスを返します。

  2. ただし、COMPASSは、すべてのCOMオブジェクトと同様に、 BSTR型の文字列で動作します。 これらの文字列は、 wchar_t *タイプの文字列と同様に、Unicode文字で構成されていますが、より複雑な構造を持っています。 通常のUnicode文字列( wchar_t * )をCOMPASSに転送しようとすると失敗します。
  3. スタイルライブラリへのパスは、 ksSheetParインターフェイスで指定されます。 このインターフェイスは、図面のデザインや仕様を設定します。




このプログラムの作業の結果、COMPASSウィンドウが作成された仕様とともに画面に表示されます。







部品とアセンブリ





KOMPASのパーツとアセンブリは、 ksDocument3Dインターフェイスによって記述されます。 より具体的には、このインターフェイスは、部品またはアセンブリを含むファイルを記述します。 ksDocument3Dインターフェースへのポインターを取得するには、 KompasObjectインターフェースのDocument3D()メソッドを使用します。 以下は、パーツを作成する例です。



 //  KompasObjectPtr kompas; kompas.CreateInstance(L"KOMPAS.Application.5"); //  Document3DPtr Document3D; Document3D = (Document3DPtr)kompas->Document3D(); Document3D->Create(false, true); //   kompas->Visible = true; kompas.Unbind();
      
      







ksDocument3DインターフェースのCreateメソッドには、2つの入力パラメーターがあります。 それらを以下にリストします。

  1. ドキュメント編集モードのサイン( TRUE-非表示モード; FALSE-表示)。
  2. 作成するファイルのタイプ( TRUE-パーツ; FALSE-アセンブリ)。




これは、上記の例でアセンブリを作成するには、 Createメソッドの2番目のパラメーターの値を変更するだけでよいことを示しています







おわりに



この記事では、「COMインターフェイスを介したCOMPASシステムとの相互作用」と呼ばれる氷山の一角を示しました。 COMPASSへの接続方法と、すべての基本タイプ(図面、フラグメント、仕様、詳細、アセンブリ)のドキュメントの作成方法を示しました。 これらのドキュメントはコンテンツなしで作成されます。 それらを埋める方法は、以下の記事で説明されます。 ブログのニュースをお楽しみに。



第二部。



Sergey Norseev、「DelphiでのCOMPASのアプリケーション開発」の著者。



All Articles