| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Wie bekommt man alle ViewportIDs (679 mal gelesen)
|
Gloem Mitglied Geoinformatiker
Beiträge: 179 Registriert: 07.12.2007 Windows 10 - 64 Bit, mindestens 16 GB RAM <P>AutoCAD Map 2020, VBA, Dot-Net
|
erstellt am: 22. Mrz. 2010 20:16 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich möchte mit einem kleinem Programm allen Layern abhängig ihrer Linienstärke eine Farbe zuordnen. Bei den normalen Layern funktioniert das auch ohne Probleme nur bei den überschriebenen Layern hänge ich gerade weil ich nicht weiß wie ich am besten alle ViewportIDs einer Zeichnung bekomme. Gibt es irgendwas so das ich schreiben kann:
Code: for each viewportID as ObjectID in (??? alle ViewportIDs eben)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Produktentwickler (m/w/d) | Als internationaler Automobilzulieferer versorgen wir nahezu alle namhaften Automobilhersteller. An unseren weltweit zehn Produktionsstandorten entwickeln und fertigen wir hochwertige Module und einbaufertige Systeme. Durch den Einsatz von modernsten Techniken und bestem Know-how sind wir ein bedeutender Partner der globalen Automobilindustrie. Sie möchten Teil eines echten Global Players ... | Anzeige ansehen | Fahrzeugtechnik |
|
Ex-Mitglied
|
erstellt am: 22. Mrz. 2010 20:40 <-- editieren / zitieren -->
Hi, Code: Dim tDxfFilter As ResultBuffer = New DatabaseServices.ResultBuffer tDxfFilter.Add(New TypedValue(DxfCode.Start, "VIEWPORT")) Dim tSelFilter As New EditorInput.SelectionFilter(tDxfFilter.AsArray) Dim tSelSetRes As EditorInput.PromptSelectionResult = tAcadDoc.Editor.SelectAll(tSelFilter) If (tSelSetRes IsNot Nothing) AndAlso (tSelSetRes.Status = EditorInput.PromptStatus.OK) Then For Each tObjID As DatabaseServices.ObjectId In tSelSetRes.Value.GetObjectIds If (tObjID.IsValid) AndAlso (Not tObjID.IsErased) Then Dim tVP As DatabaseServices.Viewport = CType(tTrAct.GetObject(tObjID, OpenMode.ForRead, True, True), DatabaseServices.Viewport) 'da ist es, nur Vorsicht, kann linkes oder echtes Viewport sein (Layout ist selbst so was wie Viewport) End If Next End If
Nur bitte Vorsicht (wie im Kommentar schon angemerkt), der Papierbereich ist selbst auch ein Viewport, hast Du also aus der Sicht von einem normalen AutoCAD-User 1 Layout mit 1 Viewport drin, dann bekommst Du hier 2 Viewports retourniert. - alfred - ------------------ www.hollaus.at |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|