のぼゆエンジニアリング

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

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



スポンサーリンク

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

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

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

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

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

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

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

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

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

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


操作の流れ

下図をご覧ください。

一言でいうと、
「スクリプトファイル」を用意し、外部ツールを使って、複数の図面に適用します。


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

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

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

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

AutoCAD LTの方はこちら

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


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

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

  1. AutoCADの場合
    • ツール1・・Scriptpro(公式ツール)
    • ツール2・・autoscript
    • ツール3・・Scriptwriter
  2. AutoCAD LTの場合
    • Windowsのコマンドプロンプトを使う
    • Multibatch(有償)
  3. 共通で使えるツールもあり

  • 「とにかくDXFに一括変換したいだけなんだ!」という目的なら、3番です。
  • 但し、最近のバージョンの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】でインストールしてみました。
動きました。
AUTOCADでSCRIPTPRO画面
独立したプログラムとして動作します。インストールしたら、スタートメニュなどからscriptpro.exeを実行します。
1でスクリプトファイル指定、2で図面指定、3で実行できます。


外部ツール2:Autoscript

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

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

f:id:noboyu:20161106233310j:plain


外部ツール3:Script Writer

Autocadの画面上で操作できます。

別記事に詳しく書きました。

www.noboyu.com


2. AutoCAD LTの場合

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

スクリプトファイルに全てを書く(2017/12/14更新)

読者の方に教えて頂き、課題解決しました!!
楽ができて良い方法なので、シェアさせて頂きます。


先日まで紹介していた方法は、コマンドプロンプトを使ったバッチ処理の中でFORループを回す方法でした。

このやり方の課題は、図面枚数分だけAutocadLTが新規に立ち上がってしまって処理速度が遅くなること。

対して、改善策の概要は下記の通り。

  • コマンドプロンプトからは、AutoCAD LTの起動時に1回だけスクリプトファイルを実行する命令を出すだけ
  • そして、そのスクリプトファイル内で複数回の処理を記述する


詳しく書いていきます。

仕組みの概要

下図を見て下さい。
仕組み(処理の流れ)を図にしてみました。

AutoCAD LTでの複数図面処理概要

コマンドプロンプトからAutoCAD LTを起動し、起動時にスクリプトファイルを実行させる命令を出します。

すると、AutoCAD LTが一回だけ起動し、スクリプトファイルが実行されます。

このスクリプトファイルが要。

これに、処理したい枚数分の処理内容を順に記述しておきます。
エクセルを使うと省力化できるので、あわせて紹介します。



コマンドプロンプトに書くこと

コマンドプロンプトからは、「AutoCAD LTを起動し、起動時にスクリプトファイルを実行してね」という命令を出します。

下図を見て下さい。

AutoCAD LTでの複数図面処理、コマンドプロンプト


“d:\aclt.exe” /b “c:\dxftest.scr”

こんな風に、コマンドプロンプトに入力して、実行してください。
CADやスクリプトファイルのパスは、各自の環境にあわせて変えて下さい。

なお、CADやスクリプトファイルの場所はフルパスで書いたほうがよいです。
そして、パスは半角のダブルクォーテーション("")で囲んで下さい。
(パスに空白があるとエラーになるので)

参考リンク
起動時にスクリプトを実行するには | AutoCAD LT | Autodesk Knowledge Network



スクリプトファイルに書くこと

スクリプトファイルに処理対象分の処理内容をすべて記述します。

例として「3枚分の図面に対して、ズームで全体表示して保存」という処理のスクリプトファイルはこうなります。
AutoCADの項目で解説したように、メモ帳に書いて保存して拡張子を「SCR」に変えて下さい。

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

ここで、「100枚あったらどうするんだよ~!!」と思われると思います。

そこで、簡単なエクセルマクロを作ってみました。
別記事にて、説明と配布をしていますのでご参考頂ければ幸いです。

確かにひと手間はかかりますが、手打ちよりは時間が節約できますよ。

Multibatch(有償)

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

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


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

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

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

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

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

RunDxfHelp



関連記事

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