Polymorphism

AutoCAD をプログラムによってカスタマイズする方法についてご紹介!

AutoCAD VBA
AutoCAD VBA


ホーム > 技術情報 > 開発・カスタマイズ情報 > プログラムによるカスタマイズ > AutoCAD VBA


 概要
AutoCAD VBAの基本概念はAutoCADの図面データベース内のオブジェクトをVB(Visual Basic)言語により直接操作することです。VBAはVisual Basic for Application であり、これはMicrosoft社製品に実装されているいわゆる「マクロ」のことです。AutoCADはMicrosoft製品に準拠して作成されているため、このVBA=「マクロ」も実装されております。AutoCAD内の「マクロ」エディタ上でVBプログラムの作成や実行が行えます。その中に、AutoCADのデータを操作するための専用「マクロ」(プロパティとメソッド)が用意され、この専用機能を利用することでAutoCADデータの操作が行えます。


特徴:
 ・Microsoft社「マクロ」と同じです
 ・システムの連携が簡単です
 ・図面データベースの操作が中心です
 ・ユーザ入力の強化は苦手です
 ・オートメーション機能も利用できます



 AutoCADの構造




Microsoft社「マクロ」と同じです
AutoCADはMicrosoft製品に準拠して作成されているため、このVBA=「マクロ」も実装されております。そのため、Microsoft Officeなどで「マクロ」の経験がある方は、AutoCAD VBAも同様の考え方や設計手法で利用できます。「マクロ」経験者は他の開発言語(C++やLISP)に比べて多く存在するため、AutoCADカスタマイズを多く方に触れる機会を増やしました。


システムの連携が簡単です
Microsoft社「マクロ」の最大の特徴は、様々なソフトウェアで共通の開発言語が使用でき、さらには他のソフトウェアの呼び出しや、他のソフトウェアを別のソフトウェアの「マクロ」で操作できる点にあります。のソフトウェアの呼び出しやデータ操作が実現できると、これはソフトウェア間でのシステム接続となります。同じ「マクロ」で開発可能なソフトウェア同士を連携させることで、大きなシステムを作り出すことも可能です。AutoCADに「マクロ」が実装されたことで、AutoCADもシステム連携を簡単に実現できるようになったのです。たとえば、AutoCADからMicrsoft Excelのデータを利用したり、図面情報をExcelのシートに書き出すことなども、難しいソフトウェア間の接続手続きも無く、簡単に実現できます。


図面データベースの操作が中心です
AutoCAD VBAは主にAutoCADの図面データベース内に存在するオブジェクトの操作が中心となります。これはAutoCAD VBAによる操作の基本が、「AutoCAD」ではなく、図面データベース内の各オブジェクトにあるからです。VBAによる開発は、「リモコン」操作と似ております。対象のソフトウェアが実装している「リモコン」のボタンをVBプログラムで操作し、やりたいことを実現する考え方です。AutoCADの場合は、この「リモコン」をAutoCAD本体が提供しているのではなく、図面データベース内の各オブジェクト1つ1つに「リモコン」が実装されております。そのため、AutoCAD VBAの設計の考え方は、自分の操作したいオブジェクトを「リモコン」で探し、見つかったオブジェクトに対しても「リモコン」で操作をすることになります。


ユーザ入力の強化は苦手です
AutoCAD VBAによる開発は、「リモコン」操作と似ております。そのため、「リモコン」が存在しないとプログラムで操作はできません。AutoCAD VBAの操作の中心は、図面データベース内の各オブジェクトのため、それ以外の部分にはあまり「リモコン」は存在しておりません。AutoCAD標準の入力方法につきましては、一通り揃ってはおりますが、入力の方法自体を制御することやリアルタイムでのドラッグ(カーソルによる図形移動)の制御やカーソル情報の取得などはできません。この点から、AutoCAD VBAではあまり高度なユーザ入力制御はできませんのでご注意ください。


オートメーション機能も利用できます
AutoCAD VBAはあくまでも、AutoCADに実装されたVBA=「マクロ」機能です。しかし、Microsoft 準拠のこの「マクロ」機能を実装したソフトウェアは、同じ「マクロ」を実装した他のソフトウェアから呼び出して利用できます。この「同じ『マクロ』」は、Microsoft社によって規格化されており、この共通「マクロ」の規格を「ActiveX オートメーション」(略して「オートメーション」)と呼んでいます。つまり、AutoCADはこの「オートメーション」の規格に準拠していることになるため、同じ「オートメーション」機能を実装したソフトウェアから呼び出されて利用されることもできるのです。例えば、Micrsoft Excelの「マクロ」のプログラムから、AutoCADを呼び出し、図面の情報を抽出することなどがExcelの「マクロ」から実行できることになります。