« AutoCAD LT カスタマイズ [1](AutoCAD LTへのコマンド送信) | トップページ | ひさびさ更新 »

2009年7月17日 (金)

AutoCAD LT カスタマイズ [2](図面ファイルを開く)

AutoCADがすでに起動しているとして外部プログラムから図面ファイルを開くには次の様なデータをWM_COPYDATAメッセージで送信することになります。

(1) filedia
(2) SPACE(0x20)またはENTER(0x0d)
(3) 0
(4) SPACE(0x20)またはENTER(0x0d)
(5) open
(6) SPACE(0x20)またはENTER(0x0d)
(7) 図面ファイルのファイルパス
(8) ENTER(0x0d)
(9) filedia
(10) SPACE(0x20)またはENTER(0x0d)
(11) 1
(12) SPACE(0x20)またはENTER(0x0d)

これらのデータをすべてCOPYDATASTRUCT構造体にセットして一気に送信すると、"open"コマンドがファイルパスの入力待ち状態になる前にファイルパスが送信されてしまってうまく行きませんでした。

試した結果、(6)-(7)間と(8)-(9)間で区切って3段階で送信するとうまく行くようです

しかもそれらの区切りには"待ち"を入れた方が良さそうです。
さしあたって手っ取り早くSleep()を入れて対処できましたが、コマンドラインに次のプロンプトが表示されるのを待つようにできれば確実かもしれません。参考文献「使える!AutoCAD&LT カスタマイズブック」(中森隆道/井澤文秀共著 ソフトバンククリエイティブ)のP255の例がヒントになるかもしれない。

外部ファイルが関係するコマンド(attextやwblock)を実行するときには同様な問題が発生するかもしれません。

« AutoCAD LT カスタマイズ [1](AutoCAD LTへのコマンド送信) | トップページ | ひさびさ更新 »

ソフトウエア」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: AutoCAD LT カスタマイズ [2](図面ファイルを開く):

« AutoCAD LT カスタマイズ [1](AutoCAD LTへのコマンド送信) | トップページ | ひさびさ更新 »