概要 - 他のファイル形式で書き出す(VBA/ActiveX)

別のアプリケーションで AutoCAD 図面を使用する必要がある場合は、Export メソッドを使用してその図面を指定した形式に変換することができます。

Export メソッドは、AutoCAD 図面を WMF、SAT、EPS、DXF、または BMP 形式で書き出します。Export メソッドは、入力値として、作成する新しいファイルの名前、新しいファイルの拡張子、書き出すオブジェクトの選択セットの 3 つの値を取ります。

WMF、SAT、または BMP 形式に書き出すときは、空でない選択セットを指定しなければなりません。この選択セットによって、図面から書き出すオブジェクトが指定されます。選択セットが指定されない場合は何も書き出されず、トラップが可能な無効な引数エラーが生じます。

EPS と DXF 形式への書き出しのときは、Export は選択セット引数を無視します。しかし選択セット引数は必要です。図面全体が自動的にこれらの形式で書き出されます。

図面を DXF ファイルで書き出し、再度読み込む

この例では現在の図面に円を作成します。図面は、いったん DXFExprt.dxf ファイルに書き出され、新しい図面が開かれ、このファイルが読み込まれます。Export への引数として空の選択セットが使用されることに注意してください。Export メソッドは DXF ファイルを書き出すときには選択セット情報を無視しますが、引数を省略すると構文エラーとなります。

Sub Ch3_ImportingAndExporting()
  ' Create the circle for visual representation
  Dim circleObj As AcadCircle
  Dim centerPt(0 To 2) As Double
  Dim radius As Double
  centerPt(0) = 2: centerPt(1) = 2: centerPt(2) = 0
  radius = 1
  Set circleObj = ThisDrawing.ModelSpace.AddCircle(centerPt, radius)
  ThisDrawing.Application.ZoomAll

  ' Create an empty selection set
  Dim sset As AcadSelectionSet
  Set sset = ThisDrawing.SelectionSets.Add("NEWSSET")

  ' Export the current drawing to a DXF file in the
  ' AutoCAD temporary file directory
  Dim tempPath As String
  Dim exportFile As String
  Const dxfname As String = "DXFExprt"
  tempPath = ThisDrawing.Application.preferences.Files.TempFilePath
  exportFile = tempPath & dxfname
  ThisDrawing.Export exportFile, "DXF", sset 

  ' Delete the empty selection set
  ThisDrawing.SelectionSets.Item("NEWSSET").Delete

  ' Open a new drawing
  ThisDrawing.Application.Documents.Add "acad.dwt"

  ' Define the import
  Dim importFile As String
  Dim insertPoint(0 To 2) As Double
  Dim scalefactor As Double
  importFile = tempPath & dxfname & ".dxf"
  insertPoint(0) = 0: insertPoint(1) = 0: insertPoint(2) = 0
  scalefactor = 2#

  ' Import the file
  ThisDrawing.Import importFile, insertPoint, scalefactor
  ThisDrawing.Application.ZoomAll
End Sub