Code Red > .NET
Visual Styles
nobody:
Anyone know why when I try to change a viewport to "2DWirefame" below it is actually creating a new visual style for the viewport called "$0$2dwireframe" and then "$1$2dwireframe", consecutively for each layout in the drawing?
--- Code - C#: --- DBDictionary dict = t.GetObject(Application.DocumentManager.MdiActiveDocument.Database.VisualStyleDictionaryId, OpenMode.ForRead) as DBDictionary; vp.VisualStyleId = dict.GetAt("2dwireframe"); //end setting the style***************************************************************
kdub_nz:
What happens when you try "2dWireframe" or "Shaded" <<== note capitalisation.
also,
Have a look at
Autodesk.AutoCAD.Internal.Utils.
public static ObjectId visualStyleId(string visualStyleName);
and
public static void SetCurrentViewportVisualStyle(ObjectId visualStyleId);
public static ObjectId GetCurrentViewportVisualStyleId();
and
public static string visualStyleName(ObjectId id);
nobody:
--- Quote from: kdub on February 02, 2017, 07:30:41 PM ---What happens when you try "2dWireframe" or "Shaded" <<== note capitalisation.
also,
Have a look at
Autodesk.AutoCAD.Internal.Utils.
public static ObjectId visualStyleId(string visualStyleName);
and
public static void SetCurrentViewportVisualStyle(ObjectId visualStyleId);
public static ObjectId GetCurrentViewportVisualStyleId();
and
public static string visualStyleName(ObjectId id);
--- End quote ---
Thanks! Pretty nuts. I've tried every form of capitalization i could:
2D Wireframe
2dWireframe
2dwireframe
2DWireframe
one of the error, the others insist on adding the prefixes. I'll take a look a the various other options you show.
kdub_nz:
This works for me :
--- Code - C#: ---using System;using Autodesk.AutoCAD.Runtime;using Autodesk.AutoCAD.ApplicationServices;using Autodesk.AutoCAD.DatabaseServices;using Autodesk.AutoCAD.Geometry;using Autodesk.AutoCAD.EditorInput;using AcadApp = Autodesk.AutoCAD.ApplicationServices.Core.Application; [assembly: CommandClass(typeof(VisualStyleTest.MyCommands))] namespace VisualStyleTest{ public class MyCommands { [CommandMethod("VST1", CommandFlags.Modal)] static public void SetVisualStyleTest1() { var doc = AcadApp.DocumentManager.MdiActiveDocument; var ed = doc.Editor; var db = doc.Database; using (var tr = db.TransactionManager.StartTransaction()) { var vt = (ViewportTable) tr.GetObject(db.ViewportTableId, OpenMode.ForRead); var vtr = (ViewportTableRecord) tr.GetObject(vt["*Active"], OpenMode.ForWrite); var dict = (DBDictionary) tr.GetObject(db.VisualStyleDictionaryId, OpenMode.ForRead); vtr.VisualStyleId = dict.GetAt("2dWireFrame"); tr.Commit(); } ed.UpdateTiledViewportsFromDatabase(); } }}
kdub_nz:
Ditto :
--- Code - C#: ---using System;using Autodesk.AutoCAD.Runtime;using Autodesk.AutoCAD.ApplicationServices;using Autodesk.AutoCAD.DatabaseServices;using Autodesk.AutoCAD.Geometry;using Autodesk.AutoCAD.EditorInput;using AcadApp = Autodesk.AutoCAD.ApplicationServices.Core.Application;using AcadInt = Autodesk.AutoCAD.Internal;[assembly: CommandClass(typeof(VisualStyleTest.MyCommands))] namespace VisualStyleTest{ public class MyCommands { [CommandMethod("VST2", CommandFlags.Modal)] static public void SetVisualStyleTest2() { ObjectId visualStyleId = AcadInt.Utils.visualStyleId("Shaded"); AcadInt.Utils.SetCurrentViewportVisualStyle(visualStyleId); } }}
Navigation
[0] Message Index
[#] Next page
Go to full version