のぼゆエンジニアリング

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

AutoCADとAutoCAD LTで、大量の図面を処理する方法のまとめ。例えば複数のDXFファイルを一括変換するなど、色々できます。



スポンサーリンク

例えばAutoCADで描いた図面を、別CADへの受け渡す為にDXF変換。
数枚なら1枚ずつ手作業でも良いですが、大量にあるととても時間がかかります。
そこで、こういう類の単純作業を複数図面へ自動で適用する方法をまとめました。

AutoCADでDXFへ一括変換する方法」を例にして、書いていきます。

この記事でできること ― 簡単なバッチ処理です

単純作業の簡易な自動化」です。

例えば「AutoCADでDXFへ一括変換する」なら、

  • 図面を開く
  • 名前を付けて保存を選択
  • ファイルの種類でDXFを選択
  • 保存
  • 図面を閉じる

こういう一連の流れの作業ですよね。
1枚2枚なら良いですが、大量にあったら骨です。
これを人力で100枚もの図面に対してやるのは疲れます

こういう繰り返し作業をPCに肩代わりさせてしまおう、と思います。

本格的にプログラミングしてカスタマイズするのは知識の習得や作成に時間がかかります。

プログラムが不得手な人(私もです)が本業の片手間に一手間加える程度の範囲でやれることをやろうという意図です。


操作の流れ

下図をご覧ください。


  • スクリプトファイルとは、操作の流れを記録したファイルです。

  • 外部ツールとは、スクリプトファイルを複数の図面に適用するツールです。
    1枚の図面に適用したいだけなら・・図面を開いてスクリプトファイルをドラッグ&ドロップすれば良いのです。
    ところが複数図面へ適用するのは、標準機能ではできません
    しかし外部ツールを使えば可能です。

AutoCADか、LTかで使うツールは変わってくる

「スクリプトファイルを複数図面へ自動で適用するツール」はAutoCADか、LTかで方法が違います。

※作業内容によっては、既に標準として備わっている場合があります。
例えば、一括印刷はAutoCADでもLTでも標準機能です。
別途記事にしているので、ご覧ください。


使用する外部ツールの選択肢一覧

使用するツールの選択肢は下記の通りです。
したい事、目的にあわせて選んでください。

  1. AutoCADの場合
    • ツール1・・Scriptpro(公式ツール)
    • ツール2・・autoscript
  2. AutoCAD LTの場合
    • Windowsのコマンドプロンプトを使う
    • Multibatch(有償)
  3. 共通で使えるツールもあり
    • 「DXF←→DWGの一括変換」専用ツール・・・RunDxf

  • 「とにかくDXFに一括変換したいだけなんだ!」という目的なら、3番です。
  • 無料で公開されているありがたいツールがあります。
  • 「オリジナルの単純作業を自動化したい!」なら1番か2番です。


0. まずはスクリプトファイルを作る ―「何をやらせたいか」を定義する。

一括変換は後述する外部ツールでやりますので、1枚あたりにやらせたい作業を記録したスクリプトファイルを作ります。

スクリプトファイルの作り方は、

やりたい作業を手動でやって、コマンドラインの内容をメモ帳にコピペして整える

です。

例えば「AutoCADでDXFへ一括変換したい」ならば。
こういうファイルがスクリプトファイルになります。

メモ帳に書いて保存したら、拡張子を「scr」に変えておきます。

dxfconvert.scr、みたいな感じです。

約束事は以下のこれくらいです。

  • ;はコメントアウト
  • 通常コマンドラインでエンターキーを押す箇所は、改行で表現する。
  • 最後の行には改行が必要

こちらを参考にしました。


1.AutoCADの場合

ツール1:scriptpro

公式ツールが配布されています。

64bit版のAutoCADでは動作しないという情報をautocadのフォーラムで見ました。
ちなみに、私の環境【64bit PC、AUTOCAD2013】では正常に動作しています。

scriptpro_2.0.msi.zip」をダウンロードしてインストールすれば使えます。
詳細な使い方は、readmeなどをご覧ください。

配布サイトはこちら。

【64bit PC、AUTOCAD2013】でインストールしてみました。
動きました。
AUTOCADでSCRIPTPRO画面
独立したプログラムとして動作します。インストールしたら、スタートメニュなどからscriptpro.exeを実行します。
1でスクリプトファイル指定、2で図面指定、3で実行できます。

ツール2:Autoscript

64bit版のAutoCADでは、非公式ツールですがAutoscriptというツールもあります。
もしも上記ツールが使えなかったときの代替策になります。

動作画面はこんな感じです。
Autocadを立ち上げて、ツールバーから呼び出します。

f:id:noboyu:20161106233310j:plain:w450


2. AutoCAD LTの場合

AutoCAD LTでは、骨がおれます。
上記で紹介したツールは、LTでは使えません。

Windowsのコマンドプロンプトを使う

何とか力技で処理をするやり方です。
スマートな方法があれば良いのですが。

難点は、自動化は可能ですが、処理の度にAutocadLTが新規に立ち上がってしまう事です。
SDIの値を変えたりしましたが、すぐには改善できませんでした。

もし改善された方おられれば、是非教えてください。

方法

やり方としては、コマンドプロンプトでバッチ処理を行います。
AUTOCAD LTが起動するたびに、指定したスクリプトを走らせます。

Windowsのコマンドプロンプトを立ち上げ、下記のようなコマンドを打ち込みます。
ファイルの場所は、適宜変えてください。

20161106233311

for %i in (C:\*.dwg) do start d:\aclt.exe %i /b c:\dxftest.scr

注意
いきなり本番はせず、サンプル図面2、3枚程度を入れたフォルダでテストしてみたほうが良いです。
私はミスったスクリプトを走らせてしまって、いきなり100枚図面が立ちあがって焦ったことがあります


ちなみに、startの後ろに/waitをつけると1枚ごとにAUTOCAD LTが立ち下げられるまで待機状態になります。


for %i in (C:\*.dwg) do start /wait d:\aclt.exe %i /b c:\dxftest.scr

動作イメージ
コマンドプロンプトに入力

AUTOCAD LTが立ち上がる

図面ファイルが開かれスクリプトが走る

AUTOCAD LT本体が閉じられる(alt+F4)まで待機★

閉じられたら次のファイルが開かれスクリプトが走る→★に戻り繰り返し

ちなみに、逐一AUTOCAD LTを立ち下げるのは面倒です。
その場合は、スクリプトファイルを工夫すれば勝手に立ち下がってくれます。
最終行にQUITコマンドを入れてください。

その場合のスクリプトファイルは、こんな感じになります。



コードのstart以降は、Autodeskのヘルプを参照しました。
起動時にスクリプトを実行するには | AutoCAD LT | Autodesk Knowledge Network

Multibatch(有償)

有償になりますが、こういうツールもあるようです。

Batch Plot Drawings with Multi-Batch on AutoCAD and LT, Free Download Trial


3.「DXF←→DWGの一括変換」のみやりたい場合

RunDxfという老舗のツールがあります。
私もLTユーザー時代はお世話になっていました。

0.で書いたスクリプトファイルは無しで、このツールとAutoCAD/AutoCAD LTだけあれば変換可能です。

作者の方のサイトによると、動作確認済のバージョンは
AutoCAD R版2000~2006 及び LT2000~2005とのことです。

RunDxfHelp

2017/5/24追記:
手持ちのAutoCAD LT2018、AutoCAD2013(いずれもWIN7 64bit)で試してみましたがCAD起動後の処理が止まる状況です。
設定を変えたりすると上手くいくのかもしれませんが、未検証です。

関連記事

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