BricsCAD® V23 の .NET(Visual Basic)でHello World!
プログラムでの開発で各種の言語を使いはじめる際に「Hello world」と表示してみることで最低限の流れを把握する。というお約束があります。.NET(C#)での「Hello World! 」を「CAD日記」様から寄稿いただきましたが、.NET(Visual Basic)版もあった方がいいだろうということで作成しました。C# の記事を読んだ方なら設定の流れは同じでコード部分が Visual Basicになるだけですので難しくはありません。
BricsCAD の API の中には VBA もありますが、VBA 自体は Microsoft による開発を終了 から新規顧客へVBA ライセンス提供を停止してから結構な時間が経っているので、これから Visual Basic の言語でアドオン開発したい方は、VB .NET が選択肢となります。
C# での .NET API利用と同様に、Visual Basic も別途の SDK は不要なので、 BricsCAD とは別に Visual Studio 2019 だけインストールすれば開発を始めることが出来ます。
BricsCAD の各 API での Hello world!
API 毎の Hello World は以下になります。
.NET(Visual Basic)で HelloWorld!:本記事
必要な環境
BricsCAD の .NET 開発で必要になる環境は以下のとおりです。
BricsCAD V23
.NET開発環境
BricsCAD V23は、.NET Framework のバージョン4.8を使用しています。
.NET プラグイン開発には Visual Studio 2019 以降 (Visual Studio Community Edition を含む) を推奨。
この記事では、Microsoft Visual Studio Community 2022 (64 ビット)を利用しています。
1.Visual Studioで新規プロジェクト作成
クラスライブラリ(.NET Framework)を選択して次へ。
プロジェクト名と場所を任意に指定。
フレームワークは .NET Framework 4.8 を選択します。
2.参照の追加
参照の追加から BricsCAD V23 をインストールしたフォルダを参照して、BrxMgd.dll と TD_Mgd.dll を指定します。
※ 追加した BrxMgd.dll と TD_Mgd.dll のファイルは、ソリューションエクスプローラから「ローカルにコピー」を False に切り替えておきます。
3.プロジェクトのプロパティを設定する
『ビルド⇒対象プラットフォーム』で x64 とする。
『デバッグ⇒開始動作』で外部プログラムの開始として、以下BricsCADのexeを指定。
C:\Program Files\Bricsys\BricsCAD V23 ja_JP\bricscad.exe
4.コードを書く
Class.cs の中身を以下のように記述します。(コピー&ペーストでも構いません。)
今回の内容としては、コマンドラインにHello World!と出しつつ、カレントデータベースに文字を追加しています。
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports System.Threading.Tasks
Imports Teigha.DatabaseServices
Imports Teigha.Geometry
Imports Teigha.Runtime
Imports Bricscad.Runtime
Imports Bricscad.ApplicationServices
Imports Bricscad.EditorInput
Namespace DotNetVBTest
Public Class Class1
<CommandMethod("Hello")>
Public Sub HelloWorld()
Dim doc As Document = Application.DocumentManager.MdiActiveDocument
Dim ed As Editor = doc.Editor
Dim tr As Transaction = doc.TransactionManager.StartTransaction
Dim db As Database = doc.Database
Dim id As ObjectId = SymbolUtilityServices.GetBlockModelSpaceId(db)
Dim model As BlockTableRecord = CType(tr.GetObject(id, OpenMode.ForWrite), BlockTableRecord)
Dim ntext As MText = New MText
ntext.SetDatabaseDefaults()
ntext.Width = 0
ntext.Height = 20
Dim pos As Point3d = New Point3d(200, 100, 0)
ntext.Location = pos
ntext.Contents = "Hello World !"
model.AppendEntity(ntext)
ed.WriteMessage("Hello World !")
tr.Commit()
End Sub
End Class
End Namespace
5.ビルドする
ビルド結果は、bin\Debugの中にDotNetTest.dllのような名前で出来上がります。
6.BricsCADで動作させる
F5 のデバッグ実行で BricsCAD が起動するので、NETLOAD コマンドから DotNetTest.dll を指定。コマンドHelloを実行するとイメージのように作成されます。
C# の記事では 一行文字を生成する形でしたが、今回は マルチテキストで生成する形を取ってみました。
以上です。
BricsCAD の .NET API の特徴
BricsCAD の .NET API によるアプリケーション開発は、Lite や Shape で利用できない制限はありますが、C# や Visual Basic での開発ができ、VBA アプリケーションの移行先として利用することができます。
また、同じソースコードを使用して、BricsCAD と AutoCAD の両方をターゲットとするアセンブリを構築することが可能です。名前空間の違いを解決する一般的なテクニックは、ターゲットアプリケーションプラットフォームによって異なる解決をする短い名前空間エイリアスを使用することです。
BricsCAD V23 - Developer Reference をご参照ください。
なお、BricsCAD 独自の機能に対する API も整備されています。
Linux/Macでの .NET API
BricsCAD の .NET API は Windows OS 環境のみが対象になっているため利用できません。Linux/Mac でAPIを使用した開発をする場合は、Lisp、DCL、DIESEL、BRX のいづれかをご利用ください。
BRX のサンプルプログラム
BricsCAD をインストールしたフォルダの中に APIというフォルダがあります。その中の dotNetフォルダに、 .NETのサンプルプログラムがありますので、眺めてみください。内容は README.txt を参照
では。
#CAD #dotNet #CADカスタマイズ #DWG #API #BricsCAD