SaveLayerState メソッドを使用して、画層設定のセットを図面に保存します。SaveLayerState メソッドには 3 つのパラメータが必要です。最初のパラメータは、保存する画層状態に付ける名前の文字列です。2 つめのパラメータは保存したい画層のプロパティを指定します。保存する画層設定を示すには、LayerStateMasks 列挙型の定数を使用します。次の表は、LayerStateMasks 列挙型の一部である定数の一覧です。
画層状態マスクの定数 |
|
---|---|
定数名 |
Layer プロパティ |
Color |
色 |
CurrentViewport |
現在のビューポートで画層をフリーズ/フリーズ解除 |
Frozen |
フリーズまたはフリーズ解除 |
LastRestored |
最後に復元された画層 |
LineType |
線種 |
LineWeight |
線の太さ |
Locked |
ロックまたはロック解除 |
NewViewport |
新しいビューポートで画層をフリーズ/フリーズ解除 |
None |
画層の設定なし |
On |
表示オンまたはオフ |
Plot |
印刷するかどうか |
PlotStyle |
印刷スタイル |
複数のプロパティを指定するには、必要な定数を加算してください。
必要な 3 番目のパラメータは、画層設定を保存するビューポートのオブジェクト ID です。ビューポートを指定しない場合は、ObjectId.Null を使用します。既に存在する名前で画層状態を保存しようとすると、エラーが返されます。名前を再使用する前に、既存の画層状態の名前を変更するか、削除する必要があります。
次のコードは図面の現在の画層の色と線種の設定を ColorLinetype という名前で保存します。
Imports Autodesk.AutoCAD.Runtime Imports Autodesk.AutoCAD.ApplicationServices Imports Autodesk.AutoCAD.DatabaseServices <CommandMethod("SaveLayerColorAndLinetype")> _ Public Sub SaveLayerColorAndLinetype() '' Get the current document Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument Dim acLyrStMan As LayerStateManager acLyrStMan = acDoc.Database.LayerStateManager Dim sLyrStName As String = "ColorLinetype" If acLyrStMan.HasLayerState(sLyrStName) = False Then acLyrStMan.SaveLayerState(sLyrStName, _ LayerStateMasks.Color + _ LayerStateMasks.LineType, _ ObjectId.Null) End If End Sub
using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; [CommandMethod("SaveLayerColorAndLinetype")] public static void SaveLayerColorAndLinetype() { // Get the current document Document acDoc = Application.DocumentManager.MdiActiveDocument; LayerStateManager acLyrStMan; acLyrStMan = acDoc.Database.LayerStateManager; string sLyrStName = "ColorLinetype"; if (acLyrStMan.HasLayerState(sLyrStName) == false) { acLyrStMan.SaveLayerState(sLyrStName, LayerStateMasks.Color | LayerStateMasks.LineType, ObjectId.Null); } }
Sub SaveLayerColorAndLinetype() Dim oLSM As AcadLayerStateManager ' Access the LayerStateManager object Set oLSM = ThisDrawing.Application. _ GetInterfaceObject("AutoCAD.AcadLayerStateManager.20") ' Associate the current drawing database with LayerStateManager oLSM.SetDatabase ThisDrawing.Database oLSM.Save "ColorLinetype", acLsColor + acLsLineType End Sub