OLEオートメーションの使い方
作成日 : 2006-08-13
文書番号 : S3-0003
イッツ超キャド3
超キャド3では、OLEオートメーションを用いて外部から超キャドを操作・作図することができるようになります。
超キャド3を操作するソフトを一般に「クライアント」といい、クライアントソフトの代表として、Visual Basic、Excel(いずれもマイクロソフト社製)があります。ここでは、Microsoft Excel 2000 を例として実際に超キャド3を起動し作図する例をご紹介します。なお、この操作には、VBAに関する多少の知識が必要になります。VBA(Visual Basic for Applications)の操作の仕方および文法についての説明は割愛させて頂きます。また用語については、厳密な言葉ではなく感覚的に近い表現を用いています。
コードを記述する前に
実際に記述するまえに、超キャド3への「参照設定」をされることをお薦めします。Excel 2000 の Visual Basic Editor では、[ツール]-[参照設定]でその設定を行うことができます。[参照可能なライブラリファイルの一覧]より、[ITsSuperCAD Type Library]にチェックを入れます。詳細は、各アプリケーションのヘルプをご覧下さい。
超キャドのオブジェクトについて
超キャドには、VBAによって操作可能なオブジェクトがいくつかあります。VBA によって超キャドオブジェクトを操作することによって、要素を使いしたり、レイヤーを変更したりなど、ある程度の操作ができます。操作可能なオブジェクトには、図面・レイヤー・座標系・要素などがあり、それぞれ VBA で操作可能なオブジェクトとして表現されます。
- Drawing(図面)
- Application(超キャドアプリケーション本体)
- Layer(レイヤー)
- Coordinate(座標系)
- Entity(要素)
超キャドの図面を起動する
まず、超キャドのオブジェクトを宣言した後に、超キャドをオブジェクトを作成(起動)します。作成の仕方は、下記の二通りの方法でできます。詳細は、VBAのヘルプをご覧下さい。
- drawing = CreateObject("ItsSuperCAD.Draw")
- drawing = New ITsCAD.Drawing
すでに超キャドが起動している場合は既存の超キャドに、起動していない場合は新たに超キャドが起動し、新しい図面が作成されます。
新たに起動した場合は、超キャドが表示されていないので、表示させる必要があります。
- drawing.Application.Visible = True
要素の追加・削除
要素を登録すると、Entityオブジェクトを返します。レイヤーと座標系のパラメータは省略することができます。
要素の登録
- entity = DBAddLine(x1, y1, x2, y2, layer, coordinate);
- entity = DBAddCircle(x, y, r, layer, coordinate);
- entity = DBAddArc(x, y, r, sRad, eRad, layer, coordinate);
- entity = DBAddEllipse(x, y, rx, ry, slopeRad, layer, coordinate);
- entity = DBAddEllipsearc( x, y, rx, ry, slopeRad, sRad, eRad, layer,
coordinate);
既存要素の削除
- DBDeleteEntity(Entity* entity);
座標系の追加・削除
Coordinate オブジェクトを用いて行います。
アクティブレイヤーの取得・変更
- coor = drawing.Coordinate ' アクティブ座標系の取得
- drawing.Coordinate = coor ' アクティブ座標系の設定
座標系数の取得
- count = drawing.GetCoordinateCount
既存座標系の取得
- coor = drawing.GetCoordinate(no)
既存座標系の削除
- drawing.DeleteCoordinate(coor)
座標系の追加
- coor = drawing.AddCoordinate("追加する座標系の名前", fXScale, fYScale, fXCenter, fYCenter, fXZero, fYZero, fAngle, bIsSurver)
レイヤーの追加・削除
Layer オブジェクトを用いて行います。
アクティブレイヤーの取得・変更
- layer = drawing.Layer ' アクティブレイヤーの取得
- drawing.Layer = layer ' アクティブレイヤーの設定
レイヤー数の取得
- count = drawing.GetLayerCount
既存レイヤーの取得
- layer = drawing.GetLayer(no)
既存レイヤーの削除
- drawing.DeleteLayer(layer)
レイヤーの追加
- layer = drawing.AddLayer("追加するレイヤーの名前")
図面を保存する
図面を保存します。
- Save();
- SaveAs(filename);
超キャドを終了する
最初に作成した超キャドのオブジェクトを解放します。詳細は、VBAのヘルプをご覧下さい。
- drawing = Nothing