表示スタイルによって、オブジェクトの画面上での表示と出力時の表示の方法をコントロールできます。表示スタイルは、表示スタイル ディクショナリの一部として図面に格納され、それらはすべてカスタマイズできます。すべての表示スタイルがカスタマイズ可能なため、AutoCAD に付属の図面テンプレートに含まれているすべての標準的な表示スタイルが、各図面に含まれているとは限りません。表示スタイルは DBVisualStyle クラスによって表されます。
この例では、現在の図面に格納されている表示スタイルを一覧表示します。
Imports Autodesk.AutoCAD.Runtime Imports Autodesk.AutoCAD.ApplicationServices Imports Autodesk.AutoCAD.DatabaseServices Imports Autodesk.AutoCAD.Colors Imports Autodesk.AutoCAD.GraphicsInterface ' Lists the available visual styles <CommandMethod("ListVisualStyle")> _ Public Shared Sub ListVisualStyle() ' Get the current document and database, and start a transaction Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument Dim acCurDb As Database = acDoc.Database Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction() Dim vStyles As DBDictionary = _ acTrans.GetObject(acCurDb.VisualStyleDictionaryId, _ OpenMode.ForRead) ' Output a message to the Command Line history acDoc.Editor.WriteMessage(vbLf & "Visual styles: ") ' Step through the dictionary For Each entry As DBDictionaryEntry In vStyles ' Get the dictionary entry Dim vStyle As DBVisualStyle = _ vStyles.GetAt(entry.Key).GetObject(OpenMode.ForRead) ' If the visual style is not marked for internal use then output its name If vStyle.InternalUseOnly = False Then ' Output the name of the visual style acDoc.Editor.WriteMessage(vbLf & " " & vStyle.Name) End If Next End Using End Sub
using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Colors; using Autodesk.AutoCAD.GraphicsInterface; // Lists the available visual styles [CommandMethod("ListVisualStyle")] public static void ListVisualStyle() { // Get the current document and database, and start a transaction Document acDoc = Application.DocumentManager.MdiActiveDocument; Database acCurDb = acDoc.Database; using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction()) { DBDictionary vStyles = acTrans.GetObject(acCurDb.VisualStyleDictionaryId, OpenMode.ForRead) as DBDictionary; // Output a message to the Command Line history acDoc.Editor.WriteMessage("\nVisual styles: "); // Step through the dictionary foreach (DBDictionaryEntry entry in vStyles) { // Get the dictionary entry DBVisualStyle vStyle = vStyles.GetAt(entry.Key).GetObject(OpenMode.ForRead) as DBVisualStyle; // If the visual style is not marked for internal use then output its name if (vStyle.InternalUseOnly == false) { // Output the name of the visual style acDoc.Editor.WriteMessage("\n " + vStyle.Name); } } } }
この例では、MyVS という表示スタイルを作成または編集します。
Imports Autodesk.AutoCAD.Runtime Imports Autodesk.AutoCAD.ApplicationServices Imports Autodesk.AutoCAD.DatabaseServices Imports Autodesk.AutoCAD.Colors Imports Autodesk.AutoCAD.GraphicsInterface ' Creates a new visual style <CommandMethod("CreateVisualStyle")> _ Public Shared Sub CreateVisualStyle() ' Get the current document and database, and start a transaction Dim acDoc As Document = Application.DocumentManager.MdiActiveDocument Dim acCurDb As Database = acDoc.Database Using acTrans As Transaction = acCurDb.TransactionManager.StartTransaction() Dim vStyles As DBDictionary = _ acTrans.GetObject(acCurDb.VisualStyleDictionaryId, _ OpenMode.ForRead) Try ' Check to see if the "MyVS" exists or not Dim vStyle As DBVisualStyle If vStyles.Contains("MyVS") = True Then vStyle = acTrans.GetObject(vStyles.GetAt("MyVS"), _ OpenMode.ForWrite) Else vStyles.UpgradeOpen() ' Create the visual style vStyle = New DBVisualStyle vStyles.SetAt("MyVS", vStyle) ' Add the visual style to the dictionary acTrans.AddNewlyCreatedDBObject(vStyle, True) End If ' Set the description of the visual style vStyle.Description = "My Visual Style" vStyle.Type = VisualStyleType.Custom ' Face Settings (Opacity, Face Style, Lighting Quality, Color, ' Monochrome color, Opacity, and Material Display) vStyle.SetTrait(VisualStyleProperty.FaceModifier, _ VSFaceModifiers.FaceOpacityFlag, _ VisualStyleOperation.Set) vStyle.SetTrait(VisualStyleProperty.FaceLightingModel, _ VSFaceLightingModel.Gooch, _ VisualStyleOperation.Set) vStyle.SetTrait(VisualStyleProperty.FaceLightingQuality, _ VSFaceLightingQuality.PerPixelLighting, _ VisualStyleOperation.Set) vStyle.SetTrait(VisualStyleProperty.FaceColorMode, _ VSFaceColorMode.ObjectColor, _ VisualStyleOperation.Set) vStyle.SetTrait(VisualStyleProperty.FaceMonoColor, _ Color.FromColorIndex(ColorMethod.ByAci, 1), _ VisualStyleOperation.Set) vStyle.SetTrait(VisualStyleProperty.FaceOpacity, 0.5, _ VisualStyleOperation.Set) vStyle.SetTrait(VisualStyleProperty.DisplayStyle, _ VSDisplayStyles.MaterialsFlag + _ VSDisplayStyles.TexturesFlag, _ VisualStyleOperation.Set) ' Lighting (Enable Highlight Intensity, ' Highlight Intensity, and Shadow Display) vStyle.SetTrait(VisualStyleProperty.FaceModifier, _ vStyle.GetTrait(VisualStyleProperty.FaceModifier).Int + _ VSFaceModifiers.SpecularFlag, _ VisualStyleOperation.Set) vStyle.SetTrait(VisualStyleProperty.DisplayStyle, _ vStyle.GetTrait(VisualStyleProperty.DisplayStyle).Int + _ VSDisplayStyles.LightingFlag, _ VisualStyleOperation.Set) vStyle.SetTrait(VisualStyleProperty.FaceSpecular, _ 45.0, VisualStyleOperation.Set) vStyle.SetTrait(VisualStyleProperty.DisplayShadowType, _ VSDisplayShadowType.Full, _ VisualStyleOperation.Set) ' Environment Settings (Backgrounds) vStyle.SetTrait(VisualStyleProperty.DisplayStyle, _ vStyle.GetTrait(VisualStyleProperty.DisplayStyle).Int + _ VSDisplayStyles.BackgroundsFlag, _ VisualStyleOperation.Set) ' Edge Settings (Show, Number of Lines, Color, and Always on Top) vStyle.SetTrait(VisualStyleProperty.EdgeModel, VSEdgeModel.Isolines, _ VisualStyleOperation.Set) vStyle.SetTrait(VisualStyleProperty.EdgeIsolines, _ 6, VisualStyleOperation.Set) vStyle.SetTrait(VisualStyleProperty.EdgeColor, _ Color.FromColorIndex(ColorMethod.ByAci, 2), _ VisualStyleOperation.Set) vStyle.SetTrait(VisualStyleProperty.EdgeModifier, _ vStyle.GetTrait(VisualStyleProperty.EdgeModifier).Int + _ VSEdgeModifiers.AlwaysOnTopFlag, _ VisualStyleOperation.Set) ' Occluded Edges (Show, Color, and Linetype) If Not (vStyle.GetTrait(VisualStyleProperty.EdgeStyle).Int And _ VSEdgeStyles.ObscuredFlag) > 0 Then vStyle.SetTrait(VisualStyleProperty.EdgeStyle, _ vStyle.GetTrait(VisualStyleProperty.EdgeStyle).Int + _ VSEdgeStyles.ObscuredFlag, _ VisualStyleOperation.Set) End If vStyle.SetTrait(VisualStyleProperty.EdgeObscuredColor, _ Color.FromColorIndex(ColorMethod.ByAci, 3), _ VisualStyleOperation.Set) vStyle.SetTrait(VisualStyleProperty.EdgeObscuredLinePattern, _ VSEdgeLinePattern.DoubleMediumDash, _ VisualStyleOperation.Set) ' Intersection Edges (Color and Linetype) If Not (vStyle.GetTrait(VisualStyleProperty.EdgeStyle).Int And _ VSEdgeStyles.IntersectionFlag) > 0 Then vStyle.SetTrait(VisualStyleProperty.EdgeStyle, _ vStyle.GetTrait(VisualStyleProperty.EdgeStyle).Int + _ VSEdgeStyles.IntersectionFlag, _ VisualStyleOperation.Set) End If vStyle.SetTrait(VisualStyleProperty.EdgeIntersectionColor, _ Color.FromColorIndex(ColorMethod.ByAci, 4), _ VisualStyleOperation.Set) vStyle.SetTrait(VisualStyleProperty.EdgeIntersectionLinePattern, _ VSEdgeLinePattern.ShortDash, _ VisualStyleOperation.Set) ' Silhouette Edges (Color and Width) If Not (vStyle.GetTrait(VisualStyleProperty.EdgeStyle).Int And _ VSEdgeStyles.SilhouetteFlag) > 0 Then vStyle.SetTrait(VisualStyleProperty.EdgeStyle, _ vStyle.GetTrait(VisualStyleProperty.EdgeStyle).Int + _ VSEdgeStyles.SilhouetteFlag, _ VisualStyleOperation.Set) End If vStyle.SetTrait(VisualStyleProperty.EdgeSilhouetteColor, _ Color.FromColorIndex(ColorMethod.ByAci, 5), _ VisualStyleOperation.Set) vStyle.SetTrait(VisualStyleProperty.EdgeSilhouetteWidth, 2, _ VisualStyleOperation.Set) ' Edge Modifiers (Enable Line Extensions, Enable Jitter, ' Line Extensions, Jitter, Crease Angle, ' and Halo Gap) If Not (vStyle.GetTrait(VisualStyleProperty.EdgeModifier).Int And _ VSEdgeModifiers.EdgeOverhangFlag) > 0 Then vStyle.SetTrait(VisualStyleProperty.EdgeModifier, _ vStyle.GetTrait(VisualStyleProperty.EdgeModifier).Int + _ VSEdgeModifiers.EdgeOverhangFlag, _ VisualStyleOperation.Set) End If If Not (vStyle.GetTrait(VisualStyleProperty.EdgeModifier).Int And _ VSEdgeModifiers.EdgeJitterFlag) > 0 Then vStyle.SetTrait(VisualStyleProperty.EdgeModifier, _ vStyle.GetTrait(VisualStyleProperty.EdgeModifier).Int + _ VSEdgeModifiers.EdgeJitterFlag, _ VisualStyleOperation.Set) End If vStyle.SetTrait(VisualStyleProperty.EdgeOverhang, 3, _ VisualStyleOperation.Set) vStyle.SetTrait(VisualStyleProperty.EdgeJitterAmount, _ VSEdgeJitterAmount.JitterMedium, _ VisualStyleOperation.Set) vStyle.SetTrait(VisualStyleProperty.EdgeCreaseAngle, _ 0.3, VisualStyleOperation.Set) vStyle.SetTrait(VisualStyleProperty.EdgeHaloGap, _ 5, VisualStyleOperation.Set) Catch es As Autodesk.AutoCAD.Runtime.Exception MsgBox(es.Message) Finally acTrans.Commit() End Try End Using End Sub
using Autodesk.AutoCAD.Runtime; using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.Colors; using Autodesk.AutoCAD.GraphicsInterface; // Creates a new visual style [CommandMethod("CreateVisualStyle")] public static void CreateVisualStyle() { // Get the current document and database, and start a transaction Document acDoc = Application.DocumentManager.MdiActiveDocument; Database acCurDb = acDoc.Database; using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction()) { DBDictionary vStyles = acTrans.GetObject(acCurDb.VisualStyleDictionaryId, OpenMode.ForRead) as DBDictionary; try { // Check to see if the "MyVS" exists or not DBVisualStyle vStyle = default(DBVisualStyle); if (vStyles.Contains("MyVS") == true) { vStyle = acTrans.GetObject(vStyles.GetAt("MyVS"), OpenMode.ForWrite) as DBVisualStyle; } else { vStyles.UpgradeOpen(); // Create the visual style vStyle = new DBVisualStyle(); vStyles.SetAt("MyVS", vStyle); // Add the visual style to the dictionary acTrans.AddNewlyCreatedDBObject(vStyle, true); } // Set the description of the visual style vStyle.Description = "My Visual Style"; vStyle.Type = VisualStyleType.Custom; // Face Settings (Opacity, Face Style, Lighting Quality, Color, // Monochrome color, Opacity, and Material Display) vStyle.SetTrait(VisualStyleProperty.FaceModifier, (int)VSFaceModifiers.FaceOpacityFlag, VisualStyleOperation.Set); vStyle.SetTrait(VisualStyleProperty.FaceLightingModel, (int)VSFaceLightingModel.Gooch, VisualStyleOperation.Set); vStyle.SetTrait(VisualStyleProperty.FaceLightingQuality, (int)VSFaceLightingQuality.PerPixelLighting, VisualStyleOperation.Set); vStyle.SetTrait(VisualStyleProperty.FaceColorMode, (int)VSFaceColorMode.ObjectColor, VisualStyleOperation.Set); vStyle.SetTrait(VisualStyleProperty.FaceMonoColor, Color.FromColorIndex(ColorMethod.ByAci, 1), VisualStyleOperation.Set); vStyle.SetTrait(VisualStyleProperty.FaceOpacity, 0.5, VisualStyleOperation.Set); vStyle.SetTrait(VisualStyleProperty.DisplayStyle, (int)VSDisplayStyles.MaterialsFlag + (int)VSDisplayStyles.TexturesFlag, VisualStyleOperation.Set); // Lighting (Enable Highlight Intensity, // Highlight Intensity, and Shadow Display) vStyle.SetTrait(VisualStyleProperty.FaceModifier, vStyle.GetTrait(VisualStyleProperty.FaceModifier).Int + (int)VSFaceModifiers.SpecularFlag, VisualStyleOperation.Set); vStyle.SetTrait(VisualStyleProperty.DisplayStyle, vStyle.GetTrait(VisualStyleProperty.DisplayStyle).Int + (int)VSDisplayStyles.LightingFlag, VisualStyleOperation.Set); vStyle.SetTrait(VisualStyleProperty.FaceSpecular, 45.0, VisualStyleOperation.Set); vStyle.SetTrait(VisualStyleProperty.DisplayShadowType, (int)VSDisplayShadowType.Full, VisualStyleOperation.Set); // Environment Settings (Backgrounds) vStyle.SetTrait(VisualStyleProperty.DisplayStyle, vStyle.GetTrait(VisualStyleProperty.DisplayStyle).Int + (int)VSDisplayStyles.BackgroundsFlag, VisualStyleOperation.Set); // Edge Settings (Show, Number of Lines, Color, and Always on Top) vStyle.SetTrait(VisualStyleProperty.EdgeModel, (int)VSEdgeModel.Isolines, VisualStyleOperation.Set); vStyle.SetTrait(VisualStyleProperty.EdgeIsolines, 6, VisualStyleOperation.Set); vStyle.SetTrait(VisualStyleProperty.EdgeColor, Color.FromColorIndex(ColorMethod.ByAci, 2), VisualStyleOperation.Set); vStyle.SetTrait(VisualStyleProperty.EdgeModifier, vStyle.GetTrait(VisualStyleProperty.EdgeModifier).Int + (int)VSEdgeModifiers.AlwaysOnTopFlag, VisualStyleOperation.Set); // Occluded Edges (Show, Color, and Linetype) if (!((vStyle.GetTrait(VisualStyleProperty.EdgeStyle).Int & (int)VSEdgeStyles.ObscuredFlag) > 0)) { vStyle.SetTrait(VisualStyleProperty.EdgeStyle, vStyle.GetTrait(VisualStyleProperty.EdgeStyle).Int + (int)VSEdgeStyles.ObscuredFlag, VisualStyleOperation.Set); } vStyle.SetTrait(VisualStyleProperty.EdgeObscuredColor, Color.FromColorIndex(ColorMethod.ByAci, 3), VisualStyleOperation.Set); vStyle.SetTrait(VisualStyleProperty.EdgeObscuredLinePattern, (int)VSEdgeLinePattern.DoubleMediumDash, VisualStyleOperation.Set); // Intersection Edges (Color and Linetype) if (!((vStyle.GetTrait(VisualStyleProperty.EdgeStyle).Int & (int)VSEdgeStyles.IntersectionFlag) > 0)) { vStyle.SetTrait(VisualStyleProperty.EdgeStyle, vStyle.GetTrait(VisualStyleProperty.EdgeStyle).Int + (int)VSEdgeStyles.IntersectionFlag, VisualStyleOperation.Set); } vStyle.SetTrait(VisualStyleProperty.EdgeIntersectionColor, Color.FromColorIndex(ColorMethod.ByAci, 4), VisualStyleOperation.Set); vStyle.SetTrait(VisualStyleProperty.EdgeIntersectionLinePattern, (int)VSEdgeLinePattern.ShortDash, VisualStyleOperation.Set); // Silhouette Edges (Color and Width) if (!((vStyle.GetTrait(VisualStyleProperty.EdgeStyle).Int & (int)VSEdgeStyles.SilhouetteFlag) > 0)) { vStyle.SetTrait(VisualStyleProperty.EdgeStyle, vStyle.GetTrait(VisualStyleProperty.EdgeStyle).Int + (int)VSEdgeStyles.SilhouetteFlag, VisualStyleOperation.Set); } vStyle.SetTrait(VisualStyleProperty.EdgeSilhouetteColor, Color.FromColorIndex(ColorMethod.ByAci, 5), VisualStyleOperation.Set); vStyle.SetTrait(VisualStyleProperty.EdgeSilhouetteWidth, 2, VisualStyleOperation.Set); // Edge Modifiers (Enable Line Extensions, Enable Jitter, // Line Extensions, Jitter, Crease Angle, // and Halo Gap) if (!((vStyle.GetTrait(VisualStyleProperty.EdgeModifier).Int & (int)VSEdgeModifiers.EdgeOverhangFlag) > 0)) { vStyle.SetTrait(VisualStyleProperty.EdgeModifier, vStyle.GetTrait(VisualStyleProperty.EdgeModifier).Int + (int)VSEdgeModifiers.EdgeOverhangFlag, VisualStyleOperation.Set); } if (!((vStyle.GetTrait(VisualStyleProperty.EdgeModifier).Int & (int)VSEdgeModifiers.EdgeJitterFlag) > 0)) { vStyle.SetTrait(VisualStyleProperty.EdgeModifier, vStyle.GetTrait(VisualStyleProperty.EdgeModifier).Int + (int)VSEdgeModifiers.EdgeJitterFlag, VisualStyleOperation.Set); } vStyle.SetTrait(VisualStyleProperty.EdgeOverhang, 3, VisualStyleOperation.Set); vStyle.SetTrait(VisualStyleProperty.EdgeJitterAmount, (int)VSEdgeJitterAmount.JitterMedium, VisualStyleOperation.Set); vStyle.SetTrait(VisualStyleProperty.EdgeCreaseAngle, 0.3, VisualStyleOperation.Set); vStyle.SetTrait(VisualStyleProperty.EdgeHaloGap, 5, VisualStyleOperation.Set); } catch (Autodesk.AutoCAD.Runtime.Exception es) { System.Windows.Forms.MessageBox.Show(es.Message); } finally { acTrans.Commit(); } } }