| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY präsentiert die PRO Elite™ High Endurance microSD-Flash-Speicherkarten für Videoüberwachung und kontinuierliche Aufzeichnung, eine Pressemitteilung
|
Autor
|
Thema: Ansichtsfenster im Layout (1102 mal gelesen)
|
InesP Mitglied

 Beiträge: 66 Registriert: 23.08.2004 Win XP AutoCAD 2004 Office 2000
|
erstellt am: 14. Aug. 2005 20:43 <-- editieren / zitieren --> Unities abgeben:         
Hallo Leute, ich stehe mal wieder vor einem Problem. Ich habe in meiner Zeichnung ca. 20 Layout's, in denen bereits Ansichtsfenster vorhanden sind. Leider stimmen diese nicht mehr in ihrer Größe. Deshalb möchte ich diese per VBA löschen, um dann automatisch neue,größenmäßig richtige erstellen zu lassen. Der zweite Teil ist ja auch kein Problem, aber ich möchte nicht manuell jedes Layout öffnen, um das darin befindliche Ansichtsfenster zu löschen. Wie kann ich das vorhandene Ansichtsfenster ansprechen? Mit ActiveVport bin ich irgendwie nicht klargekommen. Vielleicht könnt Ihr mir ja weiter helfen. Gruß Ines Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
InesP Mitglied

 Beiträge: 66 Registriert: 23.08.2004 Win XP AutoCAD 2004 Office 2000
|
erstellt am: 16. Aug. 2005 07:30 <-- editieren / zitieren --> Unities abgeben:         
Hi Leute, liegt's an der Urlaubszeit oder ist mein Problem so uninteressant, daß keiner was dazu sagen will? Na, jedenfalls habe ich weiter rumprobiert und will mal versuchen mein Problem anders auszudrücken: Wenn in einem Layout mehrere Ansichtsfenster vorhanden sind, wie kann ich diese einzeln ansprechen? Haben die Namen, eine Item-auflistung habe ich jedenfalls nicht gefunden. Ich möchte z.B ein konkretes Ansichtsfenster von den mehreren aktiv setzen und dieses dann löschen. So, ich hoffe, ich habe mich heute konkreter ausgedrückt und bitte um Eure Hilfe! Danke schon mal vorab. Gruß Ines Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BloodyMess Mitglied Applicationingenieur
  
 Beiträge: 604 Registriert: 06.06.2002 AutoCAD Map 3D 2005 Win XP pro
|
erstellt am: 16. Aug. 2005 08:22 <-- editieren / zitieren --> Unities abgeben:          Nur für InesP
Hallo Ines, probier mal folgenden Code ...
Code: Option ExplicitSub test() Dim oLayout As AcadLayout Dim iZaehler As Integer For Each oLayout In ThisDrawing.Layouts For iZaehler = 0 To oLayout.Block.Count - 1 Step 0 If oLayout.Block.Item(iZaehler).ObjectName = "AcDbViewport" Then 'oLayout.Block.Item(iZaehler).Delete End If Next iZaehler Next oLayout End Sub
Das Problem an der Sache ist, dass wenn Du das Object löscht, werden die Item wieder neu durchnummeriert und das nachfolgende Object ist dann das jetztige, welches Du gerade gelöscht hast. Ist wohl noch zu früh heut, dass ich das net hinbekomm. Aber vielleicht bekommst es auch allein raus. Grüssle TP ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BloodyMess Mitglied Applicationingenieur
  
 Beiträge: 604 Registriert: 06.06.2002 AutoCAD Map 3D 2005 Win XP pro
|
erstellt am: 16. Aug. 2005 09:49 <-- editieren / zitieren --> Unities abgeben:          Nur für InesP
Hallo Ines, so sollte es nun aber funktionieren. Bissle umständlich, wirst es denke aber nur einmalig einsetzen.
Code: Option ExplicitSub test() Dim oLayout As AcadLayout Dim iZaehler As Integer Dim nZaehler As Integer Dim arrViewPorts() As AcadPViewport For Each oLayout In ThisDrawing.Layouts nZaehler = 0 For iZaehler = 0 To oLayout.Block.Count - 1 Step 1 If oLayout.Block.Item(iZaehler).ObjectName = "AcDbViewport" Then ReDim Preserve arrViewPorts(iZaehler) Set arrViewPorts(iZaehler) = oLayout.Block.Item(iZaehler) nZaehler = nZaehler + 1 End If Next iZaehler ''löschen der Ansichtsfenster For iZaehler = 0 To nZaehler - 1 Step 1 arrViewPorts(iZaehler).Delete Next iZaehler Next oLayout End Sub
Grüssle TP ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
InesP Mitglied

 Beiträge: 66 Registriert: 23.08.2004 Win XP AutoCAD 2004 Office 2000
|
erstellt am: 16. Aug. 2005 11:59 <-- editieren / zitieren --> Unities abgeben:         
Hallo BloodyMess, ich hab dein Programm zwar noch nicht 100%ig verstanden, aber es funktioniert und bringt mich wieder ein Stück weiter. Vielen Dank dafür, die 10Unities sind unterwegs. Vielleicht kann ich jetzt über die Bestimmung des Zentrumpunktes oder Höhe und Breite des Ansichtsfensters das eine Fenster exakt bestimmen, welches ich gelöscht haben will. Im Moment werden jedenfalls bei mir alle in diesem Layout befindlichen Ansichtsfenster gelöscht. Also Danke nochmals. Gruß Ines Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |