| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Request a special discount on NVIDIA RTX 5000 Ada Generation GPU !, eine Pressemitteilung
|
Autor
|
Thema: Name des VISUELLESTIL des VPORT = 5 (1240 / mal gelesen)
|
Dirk.B Mitglied Tischler / Leiter Arbeitsvorbereitung
Beiträge: 534 Registriert: 25.11.2003 AutoCAD 2019/2020 CAD+T 2020 HP ZBook 15 G4, 64-bit, WIN 10 Pro
|
erstellt am: 20. Dez. 2018 16:51 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen! Kann mir jemand auf die Sprünge helfen, wie ich unter .net den aktuellen VISUELLESTIL ermitteln und als String Variable speichern kann?
Code:
'//;; so ähnlich Dim XXXX As String = ViewPort.Visual.StyleName
Setzen ist nicht das Problem:
Code:
Private Sub set_old_visstyle(ByVal oldvis As String) Dim VSKa As String = Nothing Dim app As AcadApplication = Application.AcadApplication Application.SetSystemVariable("CVPORT", 5) Select Case oldvis Case "2dWireframe" VSKa = "2DD" Case "3dWireframe" VSKa = "DR" Case "3D Hidden" VSKa = "V" Case "Realistic" VSKa = "R" Case "Conceptual" VSKa = "K" Case "Shaded" VSKa = "S" Case "Shaded with edges" VSKa = "C" Case "Shades of Gray" VSKa = "G" Case "Sketchy" VSKa = "I" Case "X-Ray" VSKa = "Ö" End Select With app.ActiveDocument .SendCommand("vsa" & vbCr & VSKa & vbCr) End With End Sub
Ich möchte den aktuellen Namen (oldvis) speichern, an eine Variable übergeben, dann zwischendurch den Stil ändern und anschließend mit dem vorher gespeichertem Namen wieder setzen. ------------------ Gruß Dirk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dirk.B Mitglied Tischler / Leiter Arbeitsvorbereitung
Beiträge: 534 Registriert: 25.11.2003 AutoCAD 2019/2020 CAD+T 2020 HP ZBook 15 G4, 64-bit, WIN 10 Pro
|
erstellt am: 21. Dez. 2018 08:29 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen Zusammen! Wie ich die vorhandenen Visual Styles auslese habe ich.
Code:
<CommandMethod("VisualStyleIterator")> Public Shared Sub VisualStyleIterator_Method() Dim database As Database = HostApplicationServices.WorkingDatabase Using transaction As Transaction = database.TransactionManager.StartTransaction() Dim dbDictionary As DBDictionary = CType(transaction.GetObject(database.VisualStyleDictionaryId, OpenMode.ForRead), DBDictionary) For Each dictEntry As DBDictionaryEntry In dbDictionary Dim entry As DBVisualStyle = CType(transaction.GetObject(dictEntry.Value, OpenMode.ForRead), DBVisualStyle) Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage(String.Format(vbLf & "Visual style name: {0}", entry.Name)) Next transaction.Commit() End Using End Sub
Aber wie komme ich nun an den activen und kann den an eine Variable übergeben? ------------------ Gruß Dirk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KlaK Ehrenmitglied V.I.P. h.c. Dipl. Ing. Vermessung, CAD- und Netz-Admin
Beiträge: 2799 Registriert: 02.05.2006 AutoCAD LandDesktop R2 bis 2004 Civil 3D 2005 - 2023 Plateia, Canalis Visual Basic
|
erstellt am: 23. Dez. 2018 15:13 <-- editieren / zitieren --> Unities abgeben: Nur für Dirk.B
Hallo Dirk, Interessante Geschichte, leider muß ich dazu schreiben dass ich bisher gar nichts mit den Visuellen Stilen programmiert hane aber das Thema hat mich doch etwas interessiert. Bei der Internetsuche kam ich auf diesen Beitrag, der Dir vielleicht weiterhelfen könnte. Dort wird für ein Ansichtsfenster ein neuer Visueller Stil ohne Sendcommand festgelegt ( obj.VisualStyleID ). Theoretisch sollte man also dort auch die Nummer des Aktiven herauslesen können. Die zugehörigen Namen hast Du ja schon aus dem Dictionary. Vielleicht hilft's Dir ja weiter ... Grüße Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dirk.B Mitglied Tischler / Leiter Arbeitsvorbereitung
Beiträge: 534 Registriert: 25.11.2003 AutoCAD 2019/2020 CAD+T 2020 HP ZBook 15 G4, 64-bit, WIN 10 Pro
|
erstellt am: 22. Jan. 2019 09:47 <-- editieren / zitieren --> Unities abgeben:
Hallo Klaus! Sorry, dass ich mich erst jetzt bei dir melde. Danke für deinen Beitrag. Ich habe es für mich nun so gelöst und das funktioniert recht gut. Speichern des aktuellen Wert / VISUELLESTIL in einer Variablen in einem Module (Module1):
Code:
Public Shared Sub get_old_visid() Dim MyApp As Autodesk.AutoCAD.Interop.AcadApplication = Autodesk.AutoCAD.ApplicationServices.Application.AcadApplication Module1.OldVisID = System.Convert.ToInt32(MyApp.ActiveDocument.ActivePViewport.VisualStyle) End Sub
Und anschließend setze ich den alten Wert wieder:
Code:
Public Shared Sub set_old_visid(ByVal VisID As Integer) Dim NEWVSK As String = Nothing Dim MyApp As Autodesk.AutoCAD.Interop.AcadApplication = _ Autodesk.AutoCAD.ApplicationServices.Application.AcadApplication Select Case VisID Case 1 '//;; = "2D Drahtkörper" NEWVSK = "2DD" Case 11 '//;; = "Drahtkörper" NEWVSK = "DR" Case 5 '//;; = "Verdeckt" NEWVSK = "V" Case 6 '//;; = "Realistisch" NEWVSK = "R" Case 4 '//;; = "Konzeptuell" NEWVSK = "K" Case 7 '//;; = "Schattiert" NEWVSK = "S" Case 8 '//;; = "Schattierung mit Kante" NEWVSK = "C" Case 9 '//;; = "Grautöne" NEWVSK = "G" Case 10 '//;; = "Skizzenhaft" NEWVSK = "I" Case 12 '//;; = "Röntgen" NEWVSK = "Ö" End Select MyApp.ActiveDocument.SendCommand("vsa" & vbCr & NEWVSK & vbCr) End Sub
------------------ Gruß Dirk Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |