Code Red > .NET

Visual Styles

(1/2) > >>

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