| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| HEDELIUS Hausmesse 2024 |
Autor
|
Thema: API: Animatorfenster ändern (471 mal gelesen)
|
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2675 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ ab 2024 (privat): Onshape und anderes
|
erstellt am: 09. Aug. 2006 15:00 <-- editieren / zitieren --> Unities abgeben:
|
PASCAM Mitglied Diplom Informatiker
Beiträge: 67 Registriert: 25.11.2002
|
erstellt am: 09. Aug. 2006 16:33 <-- editieren / zitieren --> Unities abgeben: Nur für KMassler
Hallo Klaus, Also mir ist diesbezueglich mit Standard SWX-API nichts bekannt. Selbst wenn man mit SWX2007 endlich selber solche Ansichten erzeugen kann (juhu) Gruss, Ralph ------------------ PASCAM Ralph Müller Softwareentwicklung Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2675 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ ab 2024 (privat): Onshape und anderes
|
erstellt am: 10. Aug. 2006 07:52 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von PASCAM: Hallo Klaus,Also mir ist diesbezueglich mit Standard SWX-API nichts bekannt. Selbst wenn man mit SWX2007 endlich selber solche Ansichten erzeugen kann (juhu) Gruss, Ralph
Wie was kann man da setzen? Ich habe das Problem, dass ich gerade dabei bin, eine Reihe von Animationen und Bildern zu erstellen und dabei immer die Bildschirmeinstellung verwende. Also keine frei definierte Größe. Wenn ich aber zwischen verschiedenen Aufnahmen die Ränder des Bildes verändere (Größe des Featuremanagers und des Animators), dann wird auch das Bild anders. Und dazu möchte ich die Einstellung komplett sichern und wieder herstellen. Das Sichern und Wiederherstellen der Modellansicht und der Größe des Featuremanagers habe ich als Makro- was mir dabei eben noch fehlt ist der Animator. Geht das mit der 2007 etwa als Standard? ------------------ Klaus
www.al-ko.com | Pssst...unbedingt hier klicken!!! | mein Gästebuch | privat... [Diese Nachricht wurde von KMassler am 10. Aug. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
s.giehl Mitglied Ingenieur Maschinenbau/Fahrzeugtechnik
Beiträge: 698 Registriert: 10.07.2002 THINK DEEP
|
erstellt am: 10. Aug. 2006 11:13 <-- editieren / zitieren --> Unities abgeben: Nur für KMassler
Hallo Klaus, Du kannst Dir vielleicht mit einer anderen Eigenart des Animators ganz gut helfen. Mach Dir ein neues Fenster des Models auf und setze dessen Größe nach Wunsch. Das neue Fenster hat keinen Animatorbereich. Wenn das zweite Modelfenster aktiv ist und die Schaltfläche für Speichern im Animatorbereich des ersten Modellfensters gedrückt wird, zeichnet der Animator das zweite Modellfenster auf. ------------------ S. Giehl TDG Technische Dienstverlening Giehl
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2675 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ ab 2024 (privat): Onshape und anderes
|
erstellt am: 10. Aug. 2006 13:42 <-- editieren / zitieren --> Unities abgeben:
"Du bist ein guter Fisch!" sagte die Garnele... Hi Stefan, danke für den Tipp. Das hat mir jetzt schon mal weiter geholfen, obwohl es meine Frage nicht direkt beantwortet hat. Mit dieser Eigenart kann man wenigstens mal vernünftig mit dem Animator arbeiten, ohne im Animatorfenster dauernd rauf- und runterscrollen zu müssen- vorausgesetzt, man hat (wie ich ) zwei Bildschirme, auf die man dann seine Arbeitsfenster verteilen kann. Damit wird auf jeden Fall die Arbeit mit dem Animator deutlich einfacher. Noch schöner wärs, wenn man den in einem eigenständigen Fenster hätte- auch wenn ich das normalerweise nicht unbedingt mag (Unix lässt grüßen ). Zum Speichern der Bildeinstellungen (um auf meine Frage zurück zu kommen) fehlt mir jetzt allerdings der API-Befehl, um Größe und Position des Grafikfensterst zu speichern und wieder herzustellen. Kann mir da vielleicht jemand helfen? ------------------ Klaus www.al-ko.com | Pssst...unbedingt hier klicken!!! | mein Gästebuch | privat... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
VBSpawn Mitglied Programmierer
Beiträge: 514 Registriert: 23.08.2005 Sorgfältige Planung ersetzt niemals pures Glück.
|
erstellt am: 10. Aug. 2006 14:02 <-- editieren / zitieren --> Unities abgeben: Nur für KMassler
Hi, also ein paar sachen fallen mir noch ein ... lt Microsoft Spy++ ist das Fenster vom Typ AfxMDIFrame42u wovon es in SWX leider ein paar mehr gibt deswegen könnte man die Suche mit FindWindow etwas anpassen z.b. das ein ToolBarWindow32 als KindFenster vorhanden sein muss oder so. Sobald du den hwnd des Animators hast könntest du mal versuchen 1. das Fenster direkt mit SetParent aus dem SWX komplett rauszuholen (Vorsicht hierbei meistens knallt das ganz böse also speichern vorm Test) 2. GetWindowRect liefert dir zumindest bei einem bekanntem hwnd die Fenster Position / Größe zum abspeichern. das setzen könnte man mit PostMessage oder SendMessage versuchen. und falls das alles nicht klappen willst gehts vielleicht über die größe des swApp.Frame.
Gruß Micha ------------------ http://classicvb.org/petition/ Zitat: Interpunktion und Orthographie des Postings sind frei erfunden. Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.
[Diese Nachricht wurde von VBSpawn am 10. Aug. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2675 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ ab 2024 (privat): Onshape und anderes
|
erstellt am: 10. Aug. 2006 15:26 <-- editieren / zitieren --> Unities abgeben:
Oh..Äh..aua aua... sorry, aber das wird mir jetzt doch ein bischen zu lateinisch. Die Windows-API-Funktion FindWindow verlangt ja auch nach einem Fensternamen (und/oder Klassenname. Aussderdem läuft der Animator auch nicht in einem eigenen Fenster, sondern nur in einem abgeteilten Bereich des Modellfensters, so wie der Featuremanager auch, oder? Laut ActiveVB findet man damit nur TopLevel-Fenster. Um die Kindfenster zu erhalten, müsste ich wohl FindWindowEx verwenden, aber die Beschreibung dazu haut mich gleich unter den Tisch. Schön wärs, wenn ich das verstehen würde ------------------ Klaus www.al-ko.com | Pssst...unbedingt hier klicken!!! | mein Gästebuch | privat... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
VBSpawn Mitglied Programmierer
Beiträge: 514 Registriert: 23.08.2005 Sorgfältige Planung ersetzt niemals pures Glück.
|
erstellt am: 10. Aug. 2006 15:42 <-- editieren / zitieren --> Unities abgeben: Nur für KMassler
Hi, so wild ist das eigentlich nicht ;-) ein schönes bsp bzgl FindWindow ist hier :http://ww3.cad.de/foren/ubb/Forum2/HTML/008431.shtml#000025 in der Funktion CollapseAllTrees könntest du den startwert des Fensters vom SWX Frame übergeben. Dim f As SldWorks.Frame Set f = ThisLibrary.Application.SldWorks.Frame CollapseAllTrees (f.GetHWnd) und WC_TREEVIEW durch AfxMDIFrame42u ersetzen wenn der hwndLV dann True ist hast du zumindest schoneinmal ein Fenster gefunden. ... Gruß Micha ------------------ http://classicvb.org/petition/ Zitat: Interpunktion und Orthographie des Postings sind frei erfunden. Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
s.giehl Mitglied Ingenieur Maschinenbau/Fahrzeugtechnik
Beiträge: 698 Registriert: 10.07.2002 THINK DEEP
|
erstellt am: 11. Aug. 2006 00:30 <-- editieren / zitieren --> Unities abgeben: Nur für KMassler
Zitat: Original erstellt von KMassler: [B...Zum Speichern der Bildeinstellungen (um auf meine Frage zurück zu kommen) fehlt mir jetzt allerdings der API-Befehl, um Größe und Position des Grafikfensterst zu speichern und wieder herzustellen. Kann mir da vielleicht jemand helfen?[/B]
Hallo Klaus, Ich mache das normalerweise mit einem etwas anderen Ansatz: Den Featuremanager ziehe ich mir auf die Rastposition, dann lasse ich ein Makro bei verkleinertem Fenster laufen das mir lediglich die Höhe und die Breite des Fensters einstellt: Dim swApp As Object Dim Part As Object Dim boolstatus As Boolean Dim longstatus As Long, longwarnings As Long Dim FeatureData As Object Dim Feature As Object Dim Component As Object Sub main() Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc swApp.ActiveDoc.ActiveView.FrameWidth = 1024 swApp.ActiveDoc.ActiveView.FrameHeight = 646 End Sub Damit habe ich dann für die Ausgabe als Bild oder Film die definierte Höhe unf Breite. Die nötigen Zahlenwerte sind allerdings abhängig von den Windows-Einstellungen, da sie nur die äußere Begrenzung des Fensters beeinflussen. ------------------ S. Giehl TDG Technische Dienstverlening Giehl
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2675 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ ab 2024 (privat): Onshape und anderes
|
erstellt am: 11. Aug. 2006 10:19 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von s.giehl: ... Den Featuremanager ziehe ich mir auf die Rastposition,...
Was ist die Rastposition? Ich wusste gar nicht, dass es sowas gibt. Zitat: Original erstellt von s.giehl: ... swApp.ActiveDoc.ActiveView.FrameWidth = 1024 swApp.ActiveDoc.ActiveView.FrameHeight = 646
Das hat mir gefehlt! Mit FrameState, FrameTop,FrameWidth und FrameHeight habe ich jetzt alles was ich brauche, um mit deiner 2-Fenster-Lösung meine Macros fertig zu stellen. Vor lauter Begeisterung hab ich das auch gleich mit eingefügt. Und auch die dazugehörenden Bitmaps (da hab ich auch immer meine Schwierigkeiten, in dieser Größe aussagekräftige Bildchen zu erstellen-vielleicht findet sich hier noch ein Icon-Künstler, dem das besser gelingt?). Das Macro ScreenState-Save.swp speichert Fensterzustand, Featuremanager-Breite in der Registry und erstellt eine benannte Ansicht. Das Gegenstück ist ScreenState-Restore.swp, das aus den gespeicherten Daten das Fenster und den Featuremanager wieder so herstellt und auf die benannte Ansicht umstellt. @Micha: Sorry, aber dein Lösungsvorschlag ist mir echt zu kompliziert- wenn ich auch dein Macro zum Einklappen des Featurebaums mit Herzlichem Dank angenommen habe.
------------------ Klaus www.al-ko.com | Pssst...unbedingt hier klicken!!! | mein Gästebuch | privat... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
VBSpawn Mitglied Programmierer
Beiträge: 514 Registriert: 23.08.2005 Sorgfältige Planung ersetzt niemals pures Glück.
|
erstellt am: 11. Aug. 2006 10:53 <-- editieren / zitieren --> Unities abgeben: Nur für KMassler
Zitat: Original erstellt von KMassler: @Micha: Sorry, aber dein Lösungsvorschlag ist mir echt zu kompliziert- wenn ich auch dein Macro zum Einklappen des Featurebaums mit Herzlichem Dank angenommen habe. [/i]
<lach> find ich auch <lach> ------------------ http://classicvb.org/petition/ Zitat: Interpunktion und Orthographie des Postings sind frei erfunden. Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
s.giehl Mitglied Ingenieur Maschinenbau/Fahrzeugtechnik
Beiträge: 698 Registriert: 10.07.2002 THINK DEEP
|
erstellt am: 11. Aug. 2006 11:01 <-- editieren / zitieren --> Unities abgeben: Nur für KMassler
|
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2675 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ ab 2024 (privat): Onshape und anderes
|
erstellt am: 11. Aug. 2006 11:08 <-- editieren / zitieren --> Unities abgeben:
|