5

何百ものDWG、AutoCADファイルがあり、それらを検索してMSAccessデータベースにカタログ化します。

基本的に、DWGを検索し、[タイトル]ボックスと[日付]にある説明を抽出して、すべてをAccessに渡して、検索可能なカタログにします。

たとえば、ファイル名はT-25682.DWGで、Machine Spacerというタイトルで、2010年1月20日に作成されました。

その情報をDWGファイルから抽出し、Accessデータベースに挿入します。

== ID ==    == DESCRIPTION ==    == CREATED ON ==    == FILENAME ==

    1       Machine Spacer       01/20/2010          T-25682.dwg

この問題にどのようにアプローチして解決できますか?Accessで使用できるAutoCADライブラリはありますか?DWGファイルを検索するにはどうすればよいですか?

4

2 に答える 2

3

私はVBAを完全に避けます、AutoLISPははるかに少ない苦痛で仕事をすることができます。方法は次のとおりです。

AutoLISPファイル内に「データの抽出とAccessへの書き込み」機能を作成します。自由に利用できるADOLispライブラリを使用すると、Accessに簡単に書き込むことができます。失敗した場合、またはそれができない場合は、いつでもcsvファイルに書き込むことができます...

単一のdwgファイルに対してこれを実行できるようになったら、次のことを実行するスクリプトを作成します(ファイルをコピーして開くことができるものならすべて、AutoLispも機能します)。

  1. そのlispファイルをdwgファイルがあるディレクトリにコピーし、ファイルにacaddoc.lspという名前を付けます。
  2. ディレクトリ内のすべてのdwgを順番に開きます。開くと、acaddoc.lspが実行され、その処理が実行されます。
  3. そのディレクトリからacaddoc.lspを削除します(そうでない場合は、そこでdwgを開くたびに実行されます)。
  4. カタログ化するdwgファイルがあるすべてのディレクトリに対して繰り返します。

ノート:

  1. acaddoc.lspが完了したら、図面を閉じるようにしてください(または、ファイルを開く方法によっては、AutoCADを終了します)。
  2. これを機能させるには、タイトルブロックが信頼できるものである必要があります。必ず、エラーチェックを追加してください。スクリプトを使用して、問題を見つけたらテキストファイルに記録できます...

AutoLispは本当に簡単です。学習に役立つ場合は、AutoLISP初心者向けチュートリアルにアクセスしてください。

質問をしたり、以前に回答した質問からコードスニペットを検索したりするのに最適な場所については、Visual LISP、AutoLISP、およびGeneralCustomizationを参照してください。

于 2011-10-21T10:31:57.577 に答える
1

AutoCADのフルバージョンをお持ちの場合は、データ抽出ウィザードを試すことができます。これは、属性付きブロックに対して非常にうまく機能します。これが良くない場合は、Swamp、AutoCADフォーラム、またはAUGIを試してみてください。

VBAは、AutoCADの最後の3つのバージョンで非推奨になり、.NET API、FYIが採用されました。

+ edit + AutoCADの外部データベース接続に関するこの(無料の)章をご覧ください。

于 2011-09-23T09:08:52.650 に答える