例えばAutoCADで描いた図面を、別CADへの受け渡す為にDXF変換。
数枚なら1枚ずつ手作業でも良いですが、大量にあるととても時間がかかります。
そこで、こういう類の単純作業を複数図面へ自動で適用する方法をまとめました。
「AutoCADでDXFへ一括変換する方法」を例にして、書いていきます。
この記事でできること ― 簡単なバッチ処理です
「単純作業の簡易な自動化」です。
例えば「AutoCADでDXFへ一括変換する」ならば。残念ながら、標準の機能には用意されていません。
Autodeskのサイトでも明記されています。
一枚ずつ変換すると、以下のような手順が必要です。
- 図面を開く
- 名前を付けて保存を選択
- ファイルの種類でDXFを選択
- 保存
- 図面を閉じる
1枚2枚なら良いですが、大量にあったら大変です。
これを人力で100枚もの図面に対してやるのは疲れます。
こういう繰り返し作業をPCに肩代わりさせてしまおう、ということです。
本格的にプログラミングしてカスタマイズするのは知識の習得や作成に時間がかかります。
プログラムが不得手な人(私もです)が本業の片手間に一手間加える程度の範囲でやれることをやろうという目論見です。
操作の流れ
下図をご覧ください。
一言でいうと、
「スクリプトファイル」を用意し、外部ツールを使って、複数の図面に適用します。
- スクリプトファイルとは、操作の流れを記録したファイルです。
- 外部ツールとは、スクリプトファイルを複数の図面に適用するツールです。
1枚の図面に適用したいだけなら・・図面を開いてスクリプトファイルをドラッグ&ドロップすれば良いのです。
ところが複数図面へ適用するのは、標準機能ではできません。
しかし外部ツールを使えば可能です。
AutoCADか、LTかで使うツールは変わってくる
「スクリプトファイルを複数図面へ自動で適用するツール」はAutoCADか、LTかで方法が違います。
使用する外部ツールの選択肢一覧
使用するツールの選択肢は下記の通りです。
したい事、目的にあわせて選んでください。
- AutoCADの場合
- ツール1・・Scriptpro(公式ツール)
- ツール2・・autoscript
- ツール3・・Scriptwriter
- AutoCAD LTの場合
- 一つのスクリプトファイルに全て記述する
- Multibatch(有償)
但し、最近のバージョンのAutocadLTだと上手く動かない可能性があります。
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】でインストールしてみました。
動きました。
独立したプログラムとして動作します。インストールしたら、スタートメニュなどからscriptpro.exeを実行します。
1でスクリプトファイル指定、2で図面指定、3で実行できます。
外部ツール2:Autoscript
64bit版のAutoCADでは、非公式ツールですがAutoscriptというツールもあります。
もしも上記ツールが使えなかったときの代替策になります。
動作画面はこんな感じです。
Autocadを立ち上げて、ツールバーから呼び出します。
外部ツール3:Script Writer
Autocadの画面上で操作できます。
別記事に詳しく書きました。
2. AutoCAD LTの場合
AutoCAD LTでは、骨がおれます。
上記で紹介したツールは、LTでは使えません。
一つのスクリプトファイルに全て記述する(2018/3/4更新)
楽ができて良い方法なので、シェアさせて頂きます。先日まで紹介していた方法は、コマンドプロンプトを使ったバッチ処理の中でFORループを回す方法でした。このやり方の課題は、図面枚数分だけAutocadLTが新規に立ち上がってしまって処理速度が遅くなることでした。
概要は下記の通り。
少し詳しく説明します。
スクリプトファイルに書くこと
例として「3枚分の図面に対して、ズームで全体表示して保存」という処理のスクリプトファイルはこうなります。
AutoCADとの違いは、一つのスクリプトファイルに枚数分すべての処理を記述することです。
AutoCADの項目で解説したように、メモ帳に書いて保存して拡張子を「SCR」に変えて下さい。
ここで、「100枚あったらどうするんだよ~!!」と思われると思います。
VBAで簡単に解決できます。
別記事にて、使い方を詳しく説明しています。
確かにひと手間はかかりますが、手打ちよりは時間が圧倒的に節約できますよ。
Multibatch(有償)
有償になりますが、こういうツールもあるようです。
Batch Plot Drawings with Multi-Batch on AutoCAD and LT, Free Download Trial