CAD分野のCAD

nanoCAD用に作成されたアプリケーションは、AutoCADで起動できることをすでに書いています。 しかしそれどころか、AutoCAD用に開発されたnanoCADコードで使用するほうがはるかに興味深いです。 いつものように、私はそれを楽に行うことにしました。



CAD用のゲームを作成できるというアイデアは、私たちだけのものではありません。 たとえば、AutoCAD .NET APIの主要な伝道者であるKean Walmsley によるブログ投稿には Minesweeper に関する記事あります 。 nanoCADで起動するのはこのサッパーです。 カットの下の詳細を参照してください。

TitleImage



AutoCADで.NETアプリケーションを開発するすべての人は、Kean Walmsleyの「Through the Interface」ブログに精通していると思います。 投稿の1つで 、著者はマインスイーパゲームについて書いていますが、これはAutoCAD用に作られたマインスイーパでもあります。

この記事にはダウンロードするファイルがないため、2つのVBファイルのコードを「コピー」して、自分でプロジェクトを作成する必要があります。 この記事には多くのコメントが付いており、ゲームの仕組みを詳しく理解できますが、これは私たちの目標ではありません。 私たちの目標は、nanoCADで掃海艇を起動することです。

これを行うには、次の3つのことを行う必要があります。

  1. nanoCAD .NETライブラリを参照に追加します:hostdbmgd.dll、hostmgd.dll;
  2. Imports Autodesk.AutoCADブロックをTeighaまたはHostMgdに置き換えます(以下を参照)。
  3. AutoCADクラスのフルネーム(発生する場所)をnanoCADクラスのフルネームに置き換えます。
各項目をより詳細に検討してください。



最初のもの。 hostdbmgd.dllとhostmgd.dllライブラリを追加する必要があります。これらのライブラリにはnanoCAD .NET APIを操作するためのすべてのクラスが含まれているためです。 それらがなければ何もできません。 これは理解できます。



二番目。 AutoCADでは、すべてのクラスはAutodesk.AutoCAD名前空間に含まれています。 nanoCADには2つの名前空間があります。データベースクラス(つまり、図面とそのコンテンツ)はTeighaスペースにあり、アプリケーションに関連付けられたクラスは、ドキュメントの説明とコマンドラインでHostMgd名前空間にあります。 次のようになりました。

Imports Teigha.Runtime Imports Teigha.Geometry Imports Teigha.DatabaseServices Imports HostMgd.ApplicationServices Imports HostMgd.EditorInput
      
      





そして最後に、3番目。 コードでは、明示的なクラス名参照が見つかる場合があります。 たとえば、Autodesk.AutoCAD.DatabaseServices.TransactionManagerの場合。 この場合、段落2と同じ置換を行う必要があります。



その結果、コンパイルされた.NETアセンブリを取得します。 nanoCADにダウンロードし、「MINESWEEPER」コマンドでゲームを開始できます。

ガメゲスク



マインスイーパのコードをnanoCADに適応させたとき、両方のプラットフォーム用にプロジェクトを一度にコンパイルするのに非常に便利でほとんど必要であることがわかりました。

AutoCAD構成とnanoCAD構成の2つの構成を作成しました。

構成



両方の構成を構成します。acad.exeとncad.exeへのパスを指定し、ライブラリを収集するディレクトリを指定します。 nanoCAD構成では、NCAD定数を設定します。

構成マネージャー



名前空間接続は、プリプロセッサディレクティブ#IF THEN ... #END IFによってフレーム化されます。 完全なクラス名をバインドするには、エイリアスを使用します。

  Imports Platform = HostMgd Imports PlatformDb = Teigha
      
      





結果は次のとおりです。

 #If NCAD Then Imports Teigha.Runtime Imports HostMgd.ApplicationServices Imports Teigha.DatabaseServices Imports Teigha.Geometry Imports HostMgd.EditorInput Imports System Imports Platform = HostMgd Imports PlatformDb = Teigha #Else Imports Autodesk.AutoCAD.Runtime Imports Autodesk.AutoCAD.ApplicationServices Imports Autodesk.AutoCAD.DatabaseServices Imports Autodesk.AutoCAD.Geometry Imports Autodesk.AutoCAD.EditorInput Imports System Imports Platform = Autodesk.AutoCAD Imports PlatformDb = Autodesk.AutoCAD #End If
      
      





これで、両方の構成で同じコードを収集できます。 利益!



All Articles