Delphi & AutoCAD

仕事ではDelphi使ってAutoCADのカスタマイズやってます。Delphi7+AutoCAD2006ですがね。
VCかC#VBAなんかでやるのが本筋なんですが、昔にDelphiARXってのがありましてそれでDelphi使ってカスタマイズ出来たもんだからヘタレな私はどっぷりその環境に浸かっちゃった訳ですね。
そのDelphiARXがAutoCAD2006に対応しないてな事で、その頃になんとかならんかなと色々試行錯誤したわけですよ。
そのころ作ってたプログラムはコマンドの登録にDelphiARX使ってた位で、ほとんどの操作はCOM経由でやってたんでカスタマイズのプログラムをEXEにしてアウトプロセスでAutoCADをコントロールしてみたらこれが非常に遅かった(笑)。そこでインプロセスでやってみたらまあ、そこそこ早かったんでその方法を採用して今に至るわけです。

まあ、カスタマイズの本体はDelphi使ってDLL化して、そのDLLをVCで作ったARXからロードしてコマンド登録とかコマンドが実行されたときに、DLLの関数呼んだりAutoCADインスタンスを渡したりの橋渡しをするようにしたんですね。

モードレスフォームを表示するとメッセージのやりとりが出来てないっぽいのでショートカットキーとかが上手く処理されないとかの問題はありますが、まあぼちぼち実用になってます。

近々AutoCADのバージョン上げる事になりそうなんで、UNICODE対応とかで色々大変そうです。