| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. |
| |
 | KISTERS 3DViewStation: Multitalent für Branchen und Nischenmärkte, eine Pressemitteilung
|
Autor
|
Thema: Ansicht per Makro ändern (3105 mal gelesen)
|
MarcDe Mitglied
 
 Beiträge: 137 Registriert: 11.10.2006 CATIA R18 SP2, BN 18, HF 162 Win 7 64Bit
|
erstellt am: 17. Jul. 2009 20:09 <-- editieren / zitieren --> Unities abgeben:         
|
DanielFr. Ehrenmitglied V.I.P. h.c. Manager
     
 Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 17. Jul. 2009 20:27 <-- editieren / zitieren --> Unities abgeben:          Nur für MarcDe
Hallo Marc, woher bekommst du das Element? Ist das ein Script-Input oder soll der Anwender eine Plane selektieren? Ein paar mehr Info´s wären hilfreich  An den Befehl "normal View" kommst du nur über einen CATIA.StartCommand. Hier kannst du aber keine Input-Elemente angeben. D.h. ev. wäre es sinnvoller die "named Views" zu verwenden ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MarcDe Mitglied
 
 Beiträge: 137 Registriert: 11.10.2006 CATIA R18 SP2, BN 18, HF 162 Win 7 64Bit
|
erstellt am: 17. Jul. 2009 20:58 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich habe eine fixe Ebene im Modell und nach einer reihe von Geometrieerzeugung will ich zum schluss, wenn alles fertig ist mit senkrechtem Blick auf die Ebene von dem gesamten Modell (alles reingezoomt) ein Screenshot machen.... Die Ebene liegt irgendwo im Raum... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12044 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 18. Jul. 2009 00:01 <-- editieren / zitieren --> Unities abgeben:          Nur für MarcDe
Servus Dazu könntest du dir eine Camera (unter definierte Ansichten -> hinzufügen) erstellen und dann auf "alles einpassen" klicken. IMHO  sollte das sich auch mit einem Makro erschlagen lassen. Es gab mel ein paar Beiträge zur Erstellung von Screenshots mit einem Makro Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Ehrenmitglied V.I.P. h.c. Manager
     
 Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 18. Jul. 2009 11:14 <-- editieren / zitieren --> Unities abgeben:          Nur für MarcDe
Hallo Marc, also um das von Bernd mal zu verdeutlichen hier ein kleines Script, das dir dein Bauteil auf die "Top View" ausrichtet und anschließend einen Reframe macht.
Code:
Sub CATMain() Dim oDoc As Document Dim oCams As Cameras Dim oCam As Camera3D Dim oViewPoint As Viewpoint3D Dim oSpecWindow As SpecsAndGeomWindow Dim oViewer As Viewer3D Set oDoc = CATIA.ActiveDocument Set oCams = oDoc.Cameras Set oCam = oCams.Item(6) Set oViewPoint = oCam.Viewpoint3D Set oSpecWindow = CATIA.ActiveWindow Set oViewer = oSpecWindow.ActiveViewer oViewer.Viewpoint3D = oViewPoint oViewer.Reframe End Sub
------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MarcDe Mitglied
 
 Beiträge: 137 Registriert: 11.10.2006 CATIA R18 SP2, BN 18, HF 162 Win 7 64Bit
|
erstellt am: 20. Jul. 2009 16:29 <-- editieren / zitieren --> Unities abgeben:         
|
DanielFr. Ehrenmitglied V.I.P. h.c. Manager
     
 Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 20. Jul. 2009 17:00 <-- editieren / zitieren --> Unities abgeben:          Nur für MarcDe
Hallo, soweit ich weiß kann man diesen Befehl aber nur mit einem StartCommand ansprechen. Dies ist aber ein asynchrone Operation (sprich dein Script wartet nicht auf Beendigung des Befehl´s sondern läuft einfach weiter). Dies kann zu Laufzeitfehlern führen. Des weiteren hast du keine Inputs, sprich du musst die Ebene wie beim "normalen" Ausführen des Befehls durch den Anwender selektieren lassen und kannst sie nicht durch eine Selektion innerhalb des Scriptes an den Befehel weitergeben ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MarcDe Mitglied
 
 Beiträge: 137 Registriert: 11.10.2006 CATIA R18 SP2, BN 18, HF 162 Win 7 64Bit
|
erstellt am: 20. Jul. 2009 17:09 <-- editieren / zitieren --> Unities abgeben:         
|
zoltan.bekesi Mitglied
 
 Beiträge: 321 Registriert: 22.10.2006 Job: CATIA V5R19 / XP 32bit MS Office 2003 Microstation V8 2004 Edition DELL Precision M6300
|
erstellt am: 20. Jul. 2009 18:28 <-- editieren / zitieren --> Unities abgeben:          Nur für MarcDe
Hallo MarcDe, das müsste gehen, du brauchst aber wahrscheinlich noch eine Richtung. Man kann die Richtung einer Ebene (die zwei Richtungsvektoren) über GetFirstAxis und GetSecondAxis oder SPAWorkbench fragen. Eine Viewpoint3D hat zwei Richtungen: SightDirection und UpDirection. Den ersten bekommst du als Kreuzprodut der zwei Richtungen der Ebene. Für den zweiten kannst du einer der Richtungsvektoren verwenden, wobei da was exakteres sicherlich günstiger wäre. Mit PutSigthDirection, bzw. PutUpDirection kannst du dann die entsprechende Richtungen der aktuellen Ansicht setzen. (oViewPoint.PutSightDirection HierDieRichtungDerEbene) Gruß, Zoltan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ani11 Mitglied
 Beiträge: 5 Registriert: 12.02.2025
|
erstellt am: 13. Mrz. 2025 13:44 <-- editieren / zitieren --> Unities abgeben:          Nur für MarcDe
|
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12044 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 14. Mrz. 2025 10:55 <-- editieren / zitieren --> Unities abgeben:          Nur für MarcDe
Servus Anbei ein Beispiel: Code: Sub CATMain() Dim oPartDoc as PartDocument Dim oSel as Selection Dim oPlanarFace as Plane Dim aVector1(2) Dim aVector2(2) Dim aVectorNormal(2) Dim aVectorOrigin(2) Dim sUserSel as String Dim oWindow As Window Dim oViewer3D As Viewer Dim oViewpoint3D As Viewpoint3D Set oPartDoc = Catia.ActiveDocument Set oSel = oPartDoc.Selection 'Ebene selektieren ReDim aFilter(0) aFilter(0) = "Plane" sUserSel = oSel.SelectElement2(aFilter, "Select a plane", True) If sUserSel <> "Normal" Then Exit Sub 'Werte auslesen Set oPlanarFace = oSel.Item(1).Value oPlanarFace.GetFirstAxis aVector1 oPlanarFace.GetSecondAxis aVector2 oPlanarFace.GetOrigin aVectorOrigin 'Normale über Kreuzprodukt aVectorNormal(0) = aVector1(1) * aVector2(2) - aVector1(2) * aVector2(1) aVectorNormal(1) = aVector1(2) * aVector2(0) - aVector1(0) * aVector2(2) aVectorNormal(2) = aVector1(0) * aVector2(1) - aVector1(1) * aVector2(0) 'Ansicht ausrichten Set oWindow = CATIA.ActiveWindow Set oViewer3D = oWindow.ActiveViewer Set oViewpoint3D = oViewer3D.Viewpoint3D oViewpoint3D.PutOrigin aVectorOrigin 'oder auf den Ursprung array(0,0,0) oViewpoint3D.PutSightDirection aVectorNormal oViewpoint3D.PutUpDirection aVector2 'oder zB array(0,0,1) mit Z nach oben oViewer3D.Reframe End Sub
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |