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