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

オートメーションのサンプルコード(S3-0004)はこちら