この手の奴って、購入するときはAPIがどうとか歌ってる割には扱いが雑すぎて、実際やろうとするとよくわかんないのよね。さて、なんとなく一つ作ってみたのでご報告いたします。まーーーーほぼほぼhelpページの愚痴です原文。
開発環境
VisualStudio 2019 (VC++,C#コンポーネントいれてます。)
Draftsight 2021
windows 10
開発
draftsightインストールすると、サンプルプロジェクトが自動的にインストールされるのでそれをベースに開発を進めていく感じです。プロジェクトテンプレートはインストールされないし、パスの設定とかなんとか面倒そうなので。だれかGitHubにでも上げてくれないかな。
インストールパスにAPISDKというフォルダがあると思います。デフォルトのインストールパスは「C:\Program Files\Dassault Systemes\DraftSight」です。
サンプルプロジェクトは「APISDK\samples\」に入っていますので、dsSamples.slnを開いてやればビルドは通ると思います。(たぶんパスの設定がらみだと思うけど)個々のプロジェクトだけ開くとビルドできない。DLLがビルドされるのでこれをdraftsight側から読めるように設定ファイルを作ってあげればOKです。
ただ、これを「ProgramFiles」フォルダでやろうとすると管理者権限がどうとかって面倒なので、APISDKのフォルダをどこか適当なところにコピーしてそこをいじっていくのがいいと思います。
後は、英語のAPI眺めながら組んでいく感じです。
デプロイ
windowsの場合はUser Account Control (UAC)の設定でちょっと違うらしいのですが、要は「addinConfigs」というフォルダを探して、そこに設定ファイルを新たに作って、今回作ったDLLのパスとuuidを入れてあげればいいみたい。僕はめんどくさがりなので、パスはビルド先「APISDK\samples\C++\Simple\[????]\Release\[????].dll」に設定してます。UUIDは「dsAddinConnection.cpp」の関数HasSignedByDraftSightに記載されているのを設定します。
<addinmanager>
<draftsight version="">
<addin name="[アドイン名]" startup="1" help="[tool tip????]">
<button bitmap=""/>
<cpp uuid="[UUID]" pathname="[DLLのフルパス]"/>
</addin>
</draftsight>
</addinmanager>
うまくいくと
draftsightの「管理」>「addin」のリストに表示されると思います。今回は、穴位置の指示を相対座標で入れるためのツール作ってみました。そうそう、modelとsheetで扱いがかなり違っててsheet側に座標出すのが少し面倒だった。というか、この方法でいいのかよくわからん。細かいところは需要があれば書いていきます。
さいごに
ほしい人いたら売ります。(気分次第で)作ってほしいものあったら作ります。怒られたら消します。