| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | |  | NVIDIA GTC Paris und ISC High Performance-Konferenz 2025, eine Pressemitteilung
|
Autor
|
Thema: VBA und Ansichtsfenster (1813 mal gelesen)
|
Dirk.B Mitglied Tischler / Leiter Arbeitsvorbereitung
  
 Beiträge: 534 Registriert: 25.11.2003 AutoCAD 2021/2022 CAD+T HP ZBook 15 G4, 64-bit, WIN 10 Pro
|
erstellt am: 12. Jun. 2005 10:09 <-- editieren / zitieren --> Unities abgeben:         
Hallo Zusammen! Da ich sehr viel mit dem Papierbereich arbeite und da mehrere Ansichtsfenster habe, suche ich die Möglichkeit, daß mir der Maßstab bzw. gewählte Skalierung am linken unteren Ansichtsfensterrand als Text angezeigt wird. Ferner soll folgendes passieren: Ist der Maßstab 1:1 (Bemaßungslayer BEM1_1) eingestellt, sollen die anderen Bemaßungslayer wie z.B. BEM1_10, BEM1_20 etc. automatisch im aktuellen Anichtsfenster gefroren werden und der entsprechende Bemstil wie BEM1_1 aktuell bzw. aktiv gesetzt werden. Hat da jemand einen Ideenansatz für mich? Vieln Dank im voraus. Gruß Dirk 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: 12. Jun. 2005 13:15 <-- editieren / zitieren --> Unities abgeben:          Nur für Dirk.B
Hallo Dirk, Zitat: Original erstellt von Dirk.B: Da ich sehr viel mit dem Papierbereich arbeite und da mehrere Ansichtsfenster habe, suche ich die Möglichkeit, daß mir der Maßstab bzw. gewählte Skalierung am linken unteren Ansichtsfensterrand als Text angezeigt wird.
... kuck Dir die Methode AddMText, in den Beispielen an. Oder das jeweilige Object des Typs, von dem dein Text sein soll. Ändere dann nur ThisDrawing.ModelSpace nach ThisDrawing.PaperSpace Zitat:
Ferner soll folgendes passieren: Ist der Maßstab 1:1 (Bemaßungslayer BEM1_1) eingestellt, sollen die anderen Bemaßungslayer wie z.B. BEM1_10, BEM1_20 etc. automatisch im aktuellen Anichtsfenster gefroren werden und der entsprechende Bemstil wie BEM1_1 aktuell bzw. aktiv gesetzt werden.
Die Frage, welche sich mir stellt, ist: Kann man überhaupt die Eiegnschaften der Layer in Abhängigkeit des Layouts festsetzen? Ich glaube nicht! ... setze im ThisDrawing Object im VBA Editor das Event 'AcadDocument_LayoutSwitched' ... jedes Mal, wenn Du nun deine Ansicht wechselst, wird dein nachfolgender Code ausgeführt. Mit 'ThisDrawing.ActiveLayout.Name' bekommst Du den aktuellen LayoutNamen. ... kleiner CodeAnsatz
Code:
Sub test()Dim oLayer As AcadLayer Set oLayer = ThisDrawing.Layers.Item("Bemaßungslayer BEM1_1") oLayer.Freeze = True oLayer.LayerOn = False oLayer.Lock = True End Sub
Damit solltest Du alles haben, was Du brauchst um Dir deine Funktionalität zu programmieren - bis auf den Maßstab, aber da kann Dir sicher jmd anderes weiterhelfen. Oder Du schaust mal selber nach 'Scale'. Schönen Sonntag und Gruss TP
------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lars Geis Mitglied Architekt
 
 Beiträge: 346 Registriert: 21.03.2003
|
erstellt am: 13. Jun. 2005 16:06 <-- editieren / zitieren --> Unities abgeben:          Nur für Dirk.B
Moin Dirk, du kannst es bestimmt auch mit VBA lösen, auf die "herkömmliche" Art und Weise geht es bestimmt schneller und einfacher. Erzeuge dir eine Vorlagenzeichnung, in der die Layer aller Bem. Stile schon drin sind und sage einfach jedem Ansichtsfenster, welche Layer in diesem angezeigt werden sollen und welche nicht. Der Vorteil ist folgender: Du kannst mehrere Ansichtsfenster mit verschiedenen Maßstäben nebeneinander haben und in jedem Fenster siehst du genau das was du sehen willst. Schaltest du einen Layer global aus, so ist er überall aus. Auch in dem A.Fenster nebenan, wo er eigentlich sichtbar sein sollte. Zum Thema Maßstab ins Layout schreiben: Füge einfach ein Schriftfeld ein, (Kategorie Objekt, Vorgabefaktor) und klicke auf das Ansichtsfenster. All das kannst du dir in der Vorlagezeichnung fertig einrichten... Gruß Lars ------------------ Grüße aus Darmstadt Lars Geis ABCOM GmbH Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stolti Mitglied technischer zeichner
 
 Beiträge: 373 Registriert: 05.09.2007 auto_cad 2008 athena 2008 DELL Precision PWS390 Intel Core2 CPU 6600 2gb RAM 2.40 GHz
|
erstellt am: 27. Mrz. 2009 15:09 <-- editieren / zitieren --> Unities abgeben:          Nur für Dirk.B
|
Stelli1 Moderator Verm.-Ing.
    
 Beiträge: 1526 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 27. Mrz. 2009 15:30 <-- editieren / zitieren --> Unities abgeben:          Nur für Dirk.B
Hallo Stolti, Lars hat doch schon geschrieben wie es am einfachsten geht. Zitat: Original erstellt von Lars Geis: Moin Dirk,du kannst es bestimmt auch mit VBA lösen, auf die "herkömmliche" Art und Weise geht es bestimmt schneller und einfacher. Erzeuge dir eine Vorlagenzeichnung, in der die Layer aller Bem. Stile schon drin sind und sage einfach jedem Ansichtsfenster, welche Layer in diesem angezeigt werden sollen und welche nicht. Der Vorteil ist folgender: Du kannst mehrere Ansichtsfenster mit verschiedenen Maßstäben nebeneinander haben und in jedem Fenster siehst du genau das was du sehen willst. Schaltest du einen Layer global aus, so ist er überall aus. Auch in dem A.Fenster nebenan, wo er eigentlich sichtbar sein sollte. Zum Thema Maßstab ins Layout schreiben: Füge einfach ein Schriftfeld ein, (Kategorie Objekt, Vorgabefaktor) und klicke auf das Ansichtsfenster. All das kannst du dir in der Vorlagezeichnung fertig einrichten... Gruß Lars
Oder hast du noch ein anderes Problem. Wilfried Stelberg ------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
stolti Mitglied technischer zeichner
 
 Beiträge: 373 Registriert: 05.09.2007 auto_cad 2008 athena 2008 DELL Precision PWS390 Intel Core2 CPU 6600 2gb RAM 2.40 GHz
|
erstellt am: 27. Mrz. 2009 16:46 <-- editieren / zitieren --> Unities abgeben:          Nur für Dirk.B
hallo. das heisst - in meiner vorlagedatei sind schon ansichtsfenster (pro maßstab eines) drin mit voreinstellung? und die kopier ich dann immer weiter? wenn ich den text richtig verstehe.
Zitat: Original erstellt von Stelli1: du kannst es bestimmt auch mit VBA lösen, auf die "herkömmliche" Art und Weise geht es bestimmt schneller und einfacher. Erzeuge dir eine Vorlagenzeichnung, in der die Layer aller Bem. Stile schon drin sind und sage einfach jedem Ansichtsfenster, welche Layer in diesem angezeigt werden sollen und welche nicht. Der Vorteil ist folgender: [b]Du kannst mehrere Ansichtsfenster mit verschiedenen Maßstäben nebeneinander haben und in jedem Fenster siehst du genau das was du sehen willst. Schaltest du einen Layer global aus, so ist er überall aus. Auch in dem A.Fenster nebenan, wo er eigentlich sichtbar sein sollte. [/B]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |