エクセルから自動作図


ちょこっと知っておこう!!

AutoCADユーザーでEXCELはある程度使えるが、マクロ(DIESEL)やLISPやVBA(AutoCAD,EXCEL共)はよく分からないと言う人は多いと思う。

 そこで今回紹介するのはAutoCADの最低限のコマンドとEXCELを多少知っていれば自動作図が出来てしまうというものである。この便利な機能を知らずにDIESELやLISPやVBAやスクリプトを駆使して苦労しているユーザーも少なくないであろう。
 難しい変数も使用しないで(使用もできるが)今まで苦労して作図していたものが簡単に書けるようになるので初心者のユーザーにも是非覚えて頂きたい。
 その仕組みというのは決して難しくない。単にEXCELのセルに文字列(コマンドなど)を入力してクリップボード経由でAutoCADのコマンドラインに貼り付け、貼り付けられた文字列をAutoCAD側でキーボードから直接入力されたものとして判断するというものだ。
 堅苦しい説明は抜きにして早速使ってみよう。

っと、その前に、サンプルファイルをダウンロードしてください。
クリックして、DLしてね
それではAutoCADのコマンドラインを使って線分を書いてみます。

 0,500から200,300まで通る線分を書くとすると次のようになります。
*********************************************************
コマンド:line
1 点目を指定: 0,200
次の点を指定 または [元に戻す(U)]: 300,300
次の点を指定 または[元に戻す(U)]:
*********************************************************

それではサンプルファイルtest1.dwgとtest1.xls(図E-1)を開いてEXCELのセルA1をコピーして画面をAutoCADに移し、コマンドライン上で右クリックして貼り付けを選択して下さい。




ここに書くこと

スクリプト

AUTOCADでいう、スクリプトとは「AUTOCADにテキストを読ませる」ということなんです。
どういうことかと言いますと、みなさん、コマンドラインってご存知ですよね。
AUTOCADをインストールした状態では画面の下のほうにある「コマンド:」となっている、キーボードからコマンドを入力する部分です。
ここに「RECTANG」と打って、エンターを押し、RECTANGコマンドを実行して下さい。
次に「0,0」と打ち、エンター、「@1000,1000」と打って、エンターします。
すると画面の左下に四角い図形ができます。
ここで、キーボードのF2キーを押してください。すると下のように表示されると思い ます。
---------------------------------
コマンド: RECTANG一方のコーナーを指定 または [面取り(C)/高度(E)/フィレット(F)/厚さ(T)/幅(W)]: 0,0
もう一方のコーナーを指定 または[サイズ(D)]: @1000,1000
コマンド:
---------------------------------
今の一連の作業をメモ帳を開いて記録してみます。そのとき、次のように書きます。
---------------------------------
RECTANG 0,0@1000,1000
---------------------------------
..と書きましたら、「TEST.SCR」というファイル名で適当なフォルダーに保存してください。
今、保存したファイルがいわゆる、スクリプトファイルと言うものです。
簡単ですよね。決まり事は特に無く、改行はエンターしたことになります。
ですから、最後は改行で終わるようにして下さいね。
では使い方です。
まず、先ほど描いた四角い図形を消しておいてください。
コマンドラインに「SCRIPT」と打ちます。するとダイアログが開きます。
そこで先ほどのファイルを指定して、「開く」のボタンを押してみて下さい。
どうでしょう。さっき描いた同じ位置に四角が描かれたでしょう!
これを応用すれば、自動的に作図したり、印刷の設定をしたりといろいろ活用することが出来ます。



マクロ

「スクリプト」はコマンドラインの一連の流れを再生するものですので、決りきった作業しかさせることができません。
ユーザーがその場合に応じて、点を指示したり、数値を入力したり出来たらいいですよね。
しかも通常使うボタンでそれが出来ればなお便利です。
プルダウンメニューの「ツール」→「カスタマイズ」→「ツールバー」→「コマンドタブ」を開いて、左側の「ユーザー定義」を押します。
すると右側に「ユーザー定義ボタン」というのがでます。
これをドラッグしてダイアログの外に出します。すると新しいボタンが出来ます。
このボタンに簡単なプログラムを登録して使います。
「カスタマイズダイアログ」を開いた状態で新しく作ったボタンをピックして下さい。
するとダイアログには「ボタンのプロパティ」が表示されます。
「名前」の項にはこのボタンの名前を付けます。
試しに「連続コピー」と入力してください。
説明の項には「オブジェクトを連続してコピーします。」と入力。
次に「このボタンに関連付けられたマクロ」という項目があります。
ここにコマンドの流れを決められた書式に従って書きます。
「^C^C」の後に以下のように書いてください。
---------------------------------
SELECT;\COPY;P;;M;
---------------------------------
このマクロの説明を簡単にしますと、最初の「^C」はコマンドのキャンセルを意味します。
これがふたつ並んでいるということはつまり、「ESCキー」を2回押したことになります。
これは、このコマンドを実行する為には、以前のコマンドが実行中ではまずいので完全に終わらせてから実行しますよという意味です。
なぜ2回なのか?それはLT2000以下では「ESCキー」を2回押さないとグリップの解除が出来ないからです。
次に「SELECT」ですが、これは選択コマンドですね。
その後に「;」という記号が書かれていますがこれはエンターを意味します。
その次にある「\」マークですが、これはユーザーに入力の要求をしています。
では、このマクロを読んでみますよ。
「ESCキー」を2回押す→「SELECT」を入力→エンター→ユーザー入力(図形を拾う)→「COPY」を入力→エンター→「P」入力(「P」は前回指示したオブジェクトを指示します、この場合は「SELECT」で拾った図形を呼び出しています。)→エンター2回→「M」を入力(「M」はオプションのマルチのこと)。
解かりました〜?ちょっと難しいですよね。
でも、マクロだってコマンドラインに入力する作業を羅列しただけのものなんですよ。
理解しちゃえば簡単!
では、ボタンを完成させましょう。
右側の「ボタンイメージ」で「編集ボタン」を押します。
すると「ボタンエディタ」が開きますので右のパレットで色を選択して好きな絵を描いてみましょう。
出来上がったら「保存」を押してから「閉じる」を押して閉じてください。
元のダイアログに戻りましたら「適用」ボタンを押してから「閉じる」を押して閉じてください。
はい、これで新しいボタンが出来ました。
ボタンにカーソルを近づけると「連続コピー」と小さく名前が出ますか?
そのとき、ステータスバー(コマンドラインの下辺り)に「オブジェクトを連続してコピーします。」と表示されますでしょうか?
では、ボタンを押してオブジェクトを拾ってエンター、基点を指示したあと、いくらでもコピー出来ます。
おまけですけど、さっきのスクリプトもボタンに登録することが出来ます。
「このボタンに関連付けられたマクロ」という項に以下のように書いてください。
---------------------------------
^C^CSCRIPT;"TEST.SCR"
---------------------------------
これでボタンを押せば、このスクリプトファイルが実行される訳です。便利ですね。
以上がマクロの概略です。


LISP

こいつはちょっと、初心者の方にはまだまだ縁が無いようです。
これは何かというと、AUTOCADが用意した、コマンドを作る為の開発言語なのです。
この「LISP」を使えば、普段、作図しているあなたが「こんなこと出来たらいいなぁ」と思うようなことが簡単(?)に出来てしまいます。
マクロでもある程度のことは出来ますが「LISP」はさらにその上のことが出来ます。
(というか、可能性は比較になりません。)
たとえ、自分では作ることが出来なくても、ネット上には上級者の作った、たくさんの「LISP」がフリーで公開されていますので誰でも利用することが出来ます。
しかし、悲しいかな「LISP」というのはLTでは使うことが出来ません。
高いほうのAUTOCADでしか使えないんです。
それが「高い」ひとつの理由なんですけどね。
「じゃ、LT使っている私は本当に諦めなくてはならないの?」という方、実はここだけの話、可能にする手があるんです。(^^ゞ

「スクリプト」、「マクロ」、「LISP」の説明は以上です。謎は解けましたか?
興味の湧いた方、是非、チャレンジしてみてくださいね。では。(^^)/~~~