のぼゆエンジニアリング

ゼロから機械設計を勉強してみたりするブログ

AutoCAD LTで、大量の図面を処理するスクリプトファイル。エクセルマクロで手間が省けるよ



スポンサーリンク

AutoCAD LTで、大量の図面を処理するスクリプトファイル。エクセルマクロで省力化できるよ

AutoCAD LTで大量の図面を処理するには、少し手間がかかります。
そこで、省力化のためにエクセルマクロを書いてみました。

詳細な手順は別記事にて

AutoCAD LTでの詳細な手順は、別記事にまとめています。
別記事の「 2. AutoCAD LTの場合」をご覧ください。

AutoCADでの方法と併せて説明しています。

AutoCAD LTは何が手間なのか?

冒頭で、「AutoCAD LTで大量の図面を処理するには、少し手間がかかる」と書きました。

その原因は「スクリプトファイルの作成」です。

AutoCADなら、図面一枚分のスクリプトファイルを書けば終わり。
あとは公式の外部ツールで、一度に複数図面へそれを適用できるんです。

しかしAutoCAD LTでは、公式の外部ツールが使えません。

対策として、スクリプトファイルに対象枚数分の処理を全て記述せねばなりません。

イメージとしては、こんな感じ。
下記コードは「指定した3枚の図面に対して、全体表示してから保存し閉じる」という例です。

AutoCAD LTでの複数図面処理スクリプトファイル例


ここで課題になるのは、
100枚くらいあったら、スクリプトファイル書くだけでも大変だ(汗)
ということ。

そこで、エクセルVBAで簡単なマクロを作ってみました。

早速仕事で30枚ほどのファイルを処理する必要が出て、試しました。
めちゃ楽でしたよ。

動いている様子

動画を録ってみました。(GIFです)

AutoCAD LTでの複数図面処理スクリプトファイルの省力化エクセルマクロ


エクセルマクロファイルのダウンロード

この記事で紹介したマクロを、ダウンロードできるようにしました。
改造、再配布OKです。
VBAが得意な方なら、作り直したほうが速いかもしれません。

あくまで簡易的に自分用に作ったファイルです。
私が確認した限りは特に問題おきませんでしたが、使用の際はまずは数枚でテストするなど、ご注意下さい。

(作成環境:Windows10 64bit/ Excel 2016/ AutoCAD LT 2018 )

使い方

1. 対象図面のリストを、用意する

対象図面のファイルリストを、用意します。
Windows標準のコマンドプロンプトを使えば、簡単にできます。

下記の内容をメモ帳にコピペして、「bat」という拡張子で保存して下さい。
それをdwgファイルがあるフォルダにおいて、batファイルを実行(ダブルクリック)します。
すると、file-list.txtという名前のファイルリストが出力されます。



2. 1枚分のスクリプトファイルを書く

下記コードは「指定した3枚の図面に対して、全体表示してから保存し閉じる」という例です。


_zoom
a
QSAVE
close



3. エクセルマクロに貼付する

手順1と2で用意したデータを、エクセルシートにそれぞれ貼り付けます。

 3-1. シート1にリストを貼り付け

シート1のA列に、処理対象のファイルリストを貼付して下さい。

AutoCAD LTでの複数図面処理スクリプトファイルの省力化エクセルマクロ



 3-2. シート2にスクリプトを貼り付け

シート2のA列に、1枚分の処理内容を貼付して下さい。

AutoCAD LTでの複数図面処理スクリプトファイルの省力化エクセルマクロ



4. 「生成実行ボタン」で、スクリプトファイルを生成

「生成実行ボタン」を押すと、次の動作が実行されます。

  • ファイルリストの行頭に、openコマンドを追加
  • 各ファイルリストに、シート2のコマンドを追加

AutoCAD LTでの複数図面処理スクリプトファイルの省力化エクセルマクロ



5. スクリプトファイルを書き出し

そして「書き出しボタン」を押すと、マクロがあるフォルダと同じ場所に、「auto.scr」という名前のファイルが作成されます。

AutoCAD LTでの複数図面処理スクリプトファイルの省力化エクセルマクロ


「auto.scr」の中身をメモ帳で開いてみました。
ちゃんと、スクリプトファイルが生成されています。 AutoCAD LTでの複数図面処理スクリプトファイルの省力化エクセルマクロ

エクセルマクロのダウンロード



さいごに

この方法は、AutoCAD互換の廉価CADにも応用できます。
(廉価グレードでは、LISPが使えないことがあるので)

元の詳細記事にも書いていますが、当初はコマンドプロンプトでFORループを回していました。
スクリプトファイルは簡単な代わりに、都度AutoCAD LTが立ち上がってしまい難儀していたんです。

そんな中、記事を見られた方から「スクリプトファイルに枚数分の処理を記述すれば良いよ!」という情報を頂きました。

なるほど~と膝を打ちました。頭カチコチでしたね。
ブログやってなかったら、永遠の謎でした。

末筆になりましたが、とても感謝しています。



関連記事

© 2018 のぼゆエンジニアリング
About記事一覧お問合せ