Polymorphism














AutoCAD LTを利用できる新発想システム開発ツール!  安全と信頼の完全自社開発製品!

LT VB-COMの基本
LT VB-COM HELP Samples


ホーム > 製品 > LT VB-COM > 充実のヘルプ > LT VB-COMの基本

とりあえず実行してみよう


詳しい説明の前に基本的な実行手順を一通り実行してみます

ここでははじめてLT VB-COMを使用する方のために、とりあえず一度実行してみたいと思います。はじめて使用するソフトウェアは、とりあえず正しく動作するかどうかが気になるところです。ここではその不安を解消するために、一度基本的な実行手順を一通り実行しておきたいと思います。ここで使用するソフトウェアは、「AutoCAD LT」と「Microsift Excel」です。この2つのソフトウェアのある環境で実行してうださい。

以下の説明では「Microsoft Excel」を例に説明しますが、Microsoft準拠のVBA(Visual Basic for Application)を実装しているソフトウェア(例えば、「Microsoft Word」や「Microsoft Access」など)であれば、どのようなソフトウェアでも構いません。もちろん、開発用の製品VB(Visual Basic)でもまったく問題ありません。「Microsoft Excel」以外のソフトウェアをご使用の方は、その部分を自分の使用するソフトウェアに置き換えてご覧ください。

手順1:LT VB-COMのロード

AutoCAD LTを起動し、LT VB-COMをロードします。すでにLT VB-COMのためにメニューやテンプレートを設定している方は、その設定に従いLT VB-COMをロードします。何も設定していない方は、LT VB-COMロード用の図面「LT VB-COM.dwg」を開きます。「LT VB-COM.dwg」は、LT VB-COMのシステムディレクトリ(フォルダ)(既定の場合「C:\Program Files\polymorphism\LT_VBCOM」)に存在しております。

LT VB-COM.dwg」を開くと、自動的にLT VB-COMがロードされます。ロードの確認は、AutoCAD LTのコマンドライン上に以下のメッセージが表示されることで確認することができます。

-------------------------------------------------------------------------

*********** LT VB-COMがロードされました。*****************

-------------------------------------------------------------------------

このメッセージが確認できれば、LT VB-COMがロードされた状態になっております。LT VB-COMのロードが完了すれば、AutoCAD LTを終了するまでの間有効になります。開いた図面「LT VB-COM.dwg」は、LT VB-COMロード専用の図面なので、このロードが完了すれば役目は終了です。図面を終了しても構いません。作図作業は新しい図面を開いて実行します。新しい図面を作成しておきましょう。

手順2:AutoCAD LT上で作図

新しく開いた図面に、何か図形を作図します。線分でも円でも構いません。

これでLT VB-COMを使用できる準備ができました。このAutoCAD LTに対してはいつでもLT VB-COMが使用できます。

これ以降はAutoCAD LTに触れることはありません。VB(Visual Basic)やVBA(Visual Basic for Application)のプログラムやマクロを通して、AutoCAD LTのオブジェクトを操作します。

手順3:「Microsoft Excel」の「Visual Basicエディタ」の起動

LT VB-COMは、VB(Visual Basic)またはVBA(Visual Basic for Application)から実行する開発ツールです。そのため、このVB(Visual Basic)またはVBA(Visual Basic for Application)でプログラム(マクロ)を作成する必要があります。

ここでは、このプログラムを簡単に作成するために「Microsoft Excel」のマクロ(VBA)を使用します。

「Microsift Excel」を起動してください。

ツール(T)」メニューの「マクロ(M)」から「マクロ(M)」を選択してください。

表示されるマクロ用ダイアログボックスの「マクロ名(M)」に任意の名前(例と同じ「ABC」でも構いません)を付け、「作成(C)」ボタンを押します。

すると「Microsoft Excel」用のマクロを作成するための「Visual Basicエディタ」が起動されます。

手順4:マクロ(プログラム)の作成

以降は、このエディタ上でマクロ(プログラム)を作成する作業になります。このマクロ(プログラム)では、LT VB-COMを使用してAutoCAD LT上の図形を操作する内容を記述します。ここでは、簡単でわかりやすい機能として作図した図形(オブジェクト)の「色」の特性を変更してみます。図形の「色」は、色番号によって管理されています。この例では、色を「赤」にするため色番号に「1」を指定します。(色番号「1」は、「赤」を表す番号です。)

また、LT VB-COMを利用してオブジェクトを操作する場合、操作の対象になるオブジェクトの「オブジェクトID」というオブジェクトを識別する番号を利用して、オブジェクトを特定します。ここでは、簡単な「オブジェクトID」の取得方法として、「最後に描いた図形のオブジェクトID」を取得する方法を使用します。その結果。最後に描かれた図形の色が指定の色に変更されることになります。

この内容を実現するためには、以下のプログラムを記述する必要があります。(プログラムの詳細な内容はここでは省略します。)

-------------------------------------------------------------------------

Sub Sample()
   Dim es As Boolean    '(命令の「エラー状況」を格納する変数宣言)
   Dim objId As Variant   '(「オブジェクトID」を格納する変数宣言)
   '外部プログラムとの接続手続き
   Dim obj As Object     '(外部プログラムとの接続手続き保存用)
   Set obj = GetObject ( , "LT_VBCOM.Application") '(外部プログラムとの接続手続き)
   es = obj.util ("最後の図形",Null , objId) '(最後に作図した図形のオブジェクトIDを取得)
   es = obj.cad ("全図形共通", objId ,"色番号設定" , 1 ,Null )
   '実行が成功すると図形の色が変化します
End Sub

-------------------------------------------------------------------------

このヘルプの上記のプログラム部分をコピーペーストし、「Microsoft Excel」のマクロを作成するための「Visual Basicエディタ」内に「貼り付け」ます。

手順5:実行!!

これでLT VB-COMの実行準備が完了しました。それでは、実際に実行してみましょう。

「Microsoft Excel」用のマクロを作成するための「Visual Basicエディタ」の「実行(R)」メニューから「Sub/ユーザフォームの実行 F5」を選択し、作成したマクロ(プログラム)を実行します。このとき、「Visual Basicエディタ」内の「Sub Sample()」のプログラム内にカーソルを置いておいてください。(その場所のプログラムが実行の対象になるからです。)

手順6:実行結果の確認

LT VB-COMが正常に動作すれば、エラーメッセージの表示もなく正常に終了します。この時点で、AutoCAD LT上に最後に描かれてた図形の色が変更されています。しかし、これは内部的な(図面データベース上の)変更なため「Microsoft Excel」(または、その「Visual Basicエディタ」)が一番手前のWindowになっている間は画面上で変更が確認できません。そこで、起動中のAutoCAD LTのWindowをクリックし、一番手前のWindowにしてみます。すると、変更された図形の色が確認できるはずです。

これで正常に動作していれば、以降問題なく使用できます。






LT VB-COMの基本


  LT VB-COMを使用する際の基本的な手順を説明します

LT VB-COMによるプログラム設計には、基本的な設計手順があります。ここではこの基本的な設計手順について説明しておきます。

基本的な設計手順は以下のようになります。

  @ AutoCAD LTとLT VB-COMの接続手続き

  A 「オブジェクトID」の取得

  B 「オブジェクトID」のオブジェクトに対する命令実行

LT VB-COMを利用したプログラムの設計をする際には、この3つの手順が基本となります。以下に各手順の内容について説明します。

@ AutoCAD LTとLT VB-COMの接続手続き

AutoCAD LTにロードされているLT VB-COMと作成したマクロ(プログラム)を実行するソフトウェアを接続するための手続きが必ず必要です。LT VB-COMによるシステム設計は、AutoCAD LT以外のソフトウェアのVB(Visual Basic)またはVBA(Visual Basic for Application)上で作成し、実行します。そのため、AutoCAD LT上のLT VB-COMとAutoCAD LT以外のソフトウェアとの接続手続きが必要となります。接続手続きは、以下のような簡単な記述で実現できます。 Dim obj As Object Set obj = GetObject( , "LT_VBCOM.Application""「GetObject」はVisual Basicの標準関数で指定のアプリケーション情報を呼び出すための機能です。「"LT_VBCOM.Application"」は、LT VB-COMのシステムを呼び出すための名前です。LT VB-COMを利用するマクロ(プログラム)を作成する場合には必ずこの手続きが必要です。ただし、この接続手続きは1つのプログラムの中で1度実行するだけで構いません。LT VB-COMによるアプリケーションを作成する際には、そのプログラムの先頭でとりあえず1度実行しておくと良いでしょう。

A 「オブジェクトID」の取得

LT VB-COMでは、AutoCAD LT上の図形やシンボルテーブルなどのオブジェクトをVB(Visual Basic)またはVBA(Visual Basic for Application)で操作することが可能です。そのためには、操作したいオブジェクトをあらかじめ特定しておく必要があります。LT VB-COMでは操作したいオブジェクトを特定するために、「オブジェクトID」というID番号を利用します。「オブジェクトID」は、AutoCAD LT内のすべてのオブジェクトに割り振られた番号です。この番号でオブジェクトを識別、特定することができるのです。そのため、LT VB-COMでAutoCAD LT上のオブジェクトを操作する場合は、操作したいオブジェクトの「オブジェクトID」を事前に取得しておく必要があります。LT VB-COMでは、この「オブジェクトID」を取得するための機能をいくつか用意しています。以下にその代表的な機能を紹介します。プログラムの設計に応じて、使用できそうな機能を選択してください。

    ユーティリティ機能を使用する方法:

「オブジェクトID」の取得を目的としたユーティリティを使用する方法です。ヘルプのサンプルの中で主に使用されている「最後の図形」の「オブジェクトID」を取得する機能などがこのユーティリティ機能です。
es = obj.util ( "最後の図形" , Null , objId )
es = obj.util ( "図形追加履歴" , Null , objIds )

    「オブジェクトID」の不要なオブジェクトからの検索:

AutoCAD LTの図面データベースの中には、「オブジェクトID」で特定しなくても、構造上1つしか存在しないオブジェクトがいくつかあります。これらのオブジェクトに関しては、「オブジェクトID」でオブジェクトを特定することなく、そのオブジェクト専用の命令が用意されています。この「オブジェクトID」を使用しなくても操作可能なオブジェクトには、以下のものがあります。  ・図面データベース オブジェクト  ・各シンボルテーブル オブジェクト    -ビューポートテーブル オブジェクト    -ビューテーブル オブジェクト    -ブロックテーブル オブジェクト    -寸法スタイルテーブル オブジェクト    -画層テーブル オブジェクト    -線種テーブル オブジェクト    -アプリケーションテーブル オブジェクト    -文字スタイルテーブル オブジェクト    - UCSテーブル オブジェクト上記のオブジェクトは、図面データベース内に必ず1つしか存在しないオブジェクトです。そのため、これらのオブジェクトに関しては「オブジェクトID」を使用しなくても命令を実行できるようにした関数が用意されています。図面データベース オブジェクト用関数:  es = obj.db ( "命令" , setData , getData )シンボルテーブル オブジェクト用関数:  es = obj.table ( "テーブル名" , "命令" , setData , getData )

これらの関数を利用することで、図面データベース内の特定のオブジェクトの「オブジェクトID」が取得でkます。例えば、「画層」(画層テーブル)の1つ(要素)である、名前「0」の画層(画層テーブルレコード)オブジェクトは、以下のように取得できます。

es = obj.table ( "画層テーブル" , "名前から取得" , "0" , objId )

この方法は、シンボルテーブル内の操作などに多く用いられる手法です。

    サンプルユーティリティを使用する方法:

LT VB-COMの機能は、基本的にAutoCAD LTの図面データベース上の操作が中心になります。そのため、AutoCAD LTの作図画面上の操作はLT VB-COMの標準機能に含まれておりません。しかし、実際にAutoCAD LTのアプリケーションを設計する場合、AutoCAD LTの作図画面上での図形の取得などは必ず必要になります。そこで、このLT VB-COMでは、標準のVisual Basicの機能とLT VB-COMの機能を組み合わせて、AutoCAD LTの作図画面上から図形の選択をするためのサンプルプログラムを作成し、提供しております。  ids = SelectEntity ( obj )このサンプルユーティリティを使用すると、AutoCAD LTの編集操作と同様の図形選択操作が可能です。この機能を利用して選択した複数の図形は、まとめてオブジェクトIDとして取得することができます。

B 「オブジェクトID」のオブジェクトに対する命令実行

Aの手法のいづれかで取得した「オブジェクトID」のオブジェクトに対して、命令を実行します。「オブジェクトID」のわかっているオブジェクトに対する命令は、以下の関数で実現します。es = obj.cad( "オブジェクト名" , objId , "命令", setData , getData )基本的にLT VB-COMで操作可能なすべてのオブジェクトは、この関数を利用して指定の命令を実行することができます。

上記3つの基本手順をベースにして、LT VB-COMによるアプリケーションを設計します。以下に基本的な図形オブジェクトの操作の例を紹介します。

-------------------------------------------------------------------------

Sub Sample()
   Dim es As Boolean    '(命令の「エラー状況」を格納する変数宣言)
   Dim objId As Variant   '(「オブジェクトID」を格納する変数宣言)
   '外部プログラムとの接続手続き
   Dim obj As Object     '(外部プログラムとの接続手続き保存用)
   Set obj = GetObject ( , "LT_VBCOM.Application") '(外部プログラムとの接続手続き)
   '「オブジェクトID」の取得
   es = obj.util ("最後の図形",Null , objId) '(最後に作図した図形のオブジェクトIDを取得)
   '「オブジェクトID」の取得
   es = obj.cad ("全図形共通", objId ,"色番号設定" , 1 ,Null )
End Sub

-------------------------------------------------------------------------

上記のサンプルプログラムは基本的な形ですが、プログラムが複雑になってもこの構造は変わりません。操作したいオブジェクトの「オブジェクトID」を取得し、その「オブジェクトID」のオブジェクトに対して「命令」を実行するだけです。

この考え方が、LT VB-COMによる設計に基本形です。