概要 - 保存した画層設定を書き出す、読み込む(VBA/ActiveX)

画層設定をファイルに書き出したり、ファイルから読み込むことにより、それらの設定を他の図面で使用することができます。

画層設定をファイルに書き出すには、LayerStateManager の Export メソッドを使用します。画層設定を図面に読み込むには、Import メソッドを使用します。

注: 画層設定を読み込んだだけでは復元されません。読み込んだ設定を画層に反映させるには、Restore メソッドを使用する必要があります。

Export メソッドは 2 つのパラメータを受け入れます。最初のパラメータは、書き出す画層設定の名前です。2 番目のパラメータは設定を書き出すファイル名です。ファイルにパスを指定しない場合、AutoCAD がインストールされているフォルダに保存されます。指定したファイルが既に存在する場合は、既存のファイルが上書きされます。ファイルに名前を付けるときには、拡張子 .las を使用します。これは AutoCAD が書き出された画層設定ファイルを認識するための拡張子です。

Import メソッドは 1 つのパラメータを受け入れます。読み込む画層設定を含むファイル名を指定します。

画層設定を読み込んだときに、読み込んだ図面では利用できないプロパティが保存された設定にある場合、エラーが発生します。この場合、読み込みが終了しても、既定のプロパティが使用されます。たとえば、書き出した画層設定に線種が指定されていて、読み込んだ図面にロードされていなければエラーが発生し、図面の既定の線種に置き換えられます。これらのエラー条件を検出し、エラーが発生しても処理が継続できるようにしなければなりません。

読み込まれたファイル内で現在の図面に存在しない画層設定が定義されている場合、それらの画層は現在の図面に作成されます。Restore メソッドを使用する際、設定を保存するときに指定したプロパティが新しい画層に割り当てられます。新しい画層のその他のプロパティは既定の設定のままです。

保存された画層設定を書き出す

次のコードは、保存された画層設定を Colortype.las というファイルに書き出します。

Sub Ch4_ExportLayerSettings()
  Dim oLSM As AcadLayerStateManager
  Set oLSM = ThisDrawing.Application. _
    GetInterfaceObject("AutoCAD.AcadLayerStateManager.20")

  oLSM.SetDatabase ThisDrawing.Database
  oLSM.Export "ColorLinetype", "c:\my documents\ColorLType.las"
End Sub

画層設定を読み込む

次のコードは、Colortype.las というファイルから画層設定を読み込みます。

Sub Ch4_ImportLayerSettings()
  Dim oLSM As AcadLayerStateManager
  Set oLSM = ThisDrawing.Application. _
    GetInterfaceObject("AutoCAD.AcadLayerStateManager.20")
  oLSM.SetDatabase ThisDrawing.Database

  ' If the drawing you're importing to does not contain
  ' all the linetypes referenced in the saved settings,
  ' an error is returned. The import is completed, though,
  ' and the default linetype is used.
  On Error Resume Next
  oLSM.Import "c:\my documents\ColorLType.las"
  If Err.Number = -2145386359 Then
     ' Error indicates a linetype is not defined
     MsgBox ("One or more linetypes specified in the imported " + _
 "settings is not defined in your drawing")
  End If

  On Error GoTo 0
End Sub