Autor
|
Thema: Automatisierte Screenshots (8170 mal gelesen)
|
Ex-Mitglied
Beiträge: 4755 Registriert: 27.09.2000 Dell precision M4300, 4GB Arbeitsspeicher NVidia FX360M Windows XP professional SP3 CATIA V5 R16SP9, R17SP8, R18SP8, R19SP4 Adobe Acrobat 8 Linux: Ubuntu 8.04LTS
|
erstellt am: 24. Jan. 2006 21:12 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich möchte via Script Screenshots von einem Teil aus unterschiedlichen Positionen machen. Diese sollen eine bestimmte Größe haben, damit ich nicht hinterher noch die Bildergröße bearbeiten muß. Leider hat die Sache einen Haken: Durch den Kompaß werden die Bilder deutlich größer und nach dem Ausschalten des Kompasses muß ich das Prt auch noch speichern, damit die Größe stimmt. Das stört mich auch noch. Mein Code: -snipp- oTeilFenster.Width = 350 oTeilFenster.Height = 350 oAnsicht3D.Reframe oAnsicht3D.PutBackgroundColor Array(0, 0, 1) 'Screenshots erstellen For i = 1 To 4 Dateiname = sTmpPfad & Basisname & "-" & i & ".bmp" oAnsicht3D.Rotate Array(0, 0, 1), 9 oAnsicht3D.CaptureToFile catCaptureFormatBMP, Dateiname Next -snipp Mine Fragen dazu: 1. Wie kann ich es anstellen, den Kompass mit dem Script auszublenden? Ich hab dazu in der Automation.chm nichts gefunden. Mir würde auch ein Hinweis auf die zuständige Methode helfen. 2. Wie bekomme ich es hin, ohne das zusätzliche Speichern nach dem Ausblenden des Kompasses die richtige Bildgröße zu erhalten? Viele Grüße, CEROG ------------------ Inoffizielle Linux-Hilfeseite Meine Firma Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jens Hansen Mitglied Senior Consult
Beiträge: 1055 Registriert: 05.08.2000 Win7 CATIA V5 R19 VB.Net C#
|
erstellt am: 24. Jan. 2006 21:57 <-- editieren / zitieren --> Unities abgeben: Nur für CEROG
Hallo Roland, hier mal ein Code, wo ich screenshots erzeugt habe; hoffe mal, es hilft dir weiter ;-) Code geschrieben für vb.net !!! Funktionsaufruf mit (ByVal Picname As String, ByVal Modus As Integer) ---------------------------------------------- 'CATIA = GetObject(, "CATIA.Application") Dim CATIA As Object = GetObject(, "CATIA.Application") Dim specsAndGeomWindow1 As Object = CATIA.ActiveWindow specsAndGeomWindow1.Layout = 1 Dim viewer3D1 As INFITF.Viewer3D = specsAndGeomWindow1.ActiveViewer Dim viewpoint3D1 As INFITF.Viewpoint3D = viewer3D1.Viewpoint3D 'Drehen in vordefinierte Ansicht ############################################ Dim Document As Object = CATIA.ActiveDocument Dim cameras1 As Object = Document.Cameras Dim camera3D1 As Object = cameras1.Item(1) viewpoint3D1 = camera3D1.Viewpoint3D specsAndGeomWindow1 = CATIA.ActiveWindow viewer3D1 = specsAndGeomWindow1.ActiveViewer viewer3D1.Viewpoint3D = viewpoint3D1 viewpoint3D1 = camera3D1.Viewpoint3D viewer3D1.Viewpoint3D = viewpoint3D1 'Drehen in Ansicht ################################################ If Modus = 7 Then 'Eigene Ansicht camera3D1 = cameras1.Item(1) viewpoint3D1 = camera3D1.Viewpoint3D viewer3D1.Viewpoint3D = viewpoint3D1 Dim test(2) test(0) = 0 test(1) = 0 test(2) = 1 'Drehung um Z-Achse viewer3D1.Rotate(test, 100) viewer3D1.Update() viewpoint3D1 = viewer3D1.Viewpoint3D viewer3D1.Viewpoint3D = viewpoint3D1 viewer3D1.Update() viewpoint3D1 = viewer3D1.Viewpoint3D viewer3D1.Viewpoint3D = viewpoint3D1 test(0) = 0 test(1) = 0 test(2) = 1 'Drehung um Z-Achse viewer3D1.Rotate(test, -50) test(0) = 1 'Drehung um X-Achse test(1) = 0 test(2) = 0 viewer3D1.Rotate(test, 30) viewer3D1.Update() viewpoint3D1 = viewer3D1.Viewpoint3D viewer3D1.Viewpoint3D = viewpoint3D1 ElseIf Modus = 5 Then camera3D1 = cameras1.Item(Modus) viewpoint3D1 = camera3D1.Viewpoint3D viewer3D1.ZoomIn() viewer3D1.Viewpoint3D = viewpoint3D1 ElseIf Modus = 2 Then camera3D1 = cameras1.Item(Modus) viewpoint3D1 = camera3D1.Viewpoint3D viewer3D1.Viewpoint3D = viewpoint3D1 viewpoint3D1 = viewer3D1.Viewpoint3D viewer3D1.Viewpoint3D = viewpoint3D1 End If viewer3D1.Viewpoint3D = viewpoint3D1 'Screenshot erzeugen ################################################################ 'Setzen der Hintergrundfarbe ------------------------------------------------- Dim color0(2) Dim color(2) 'Hintergundfarbe in Weiß setzen viewer3D1.GetBackgroundColor(color0) color(0) = 1 color(1) = 1 color(2) = 1 viewer3D1.PutBackgroundColor(color) Thread.Sleep(100) viewer3D1.CaptureToFile(5, Picname) viewer3D1.PutBackgroundColor(color0) 'Original-Hintergrundfarbe wieder herstellen specsAndGeomWindow1.Layout = 2 ---------------------------------------------------------- Jens Hansen ------------------ Inoffizielle CATIA-Hilfeseite http:\\catia.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
Beiträge: 4755 Registriert: 27.09.2000 Dell precision M4300, 4GB Arbeitsspeicher NVidia FX360M Windows XP professional SP3 CATIA V5 R16SP9, R17SP8, R18SP8, R19SP4 Adobe Acrobat 8 Linux: Ubuntu 8.04LTS
|
erstellt am: 25. Jan. 2006 06:33 <-- editieren / zitieren --> Unities abgeben: Nur für CEROG
Hallo Jens, erst mal ein Dankeschön für deinen Code. Das mit der fest vvorgegebenden Ansicht muß ich mir mal genaueer anschauen. 3D-Modelle werden ja selten in einer bestimmten Ansicht abgespeichert. Durch deine Manipulationen des Viewpoints muß ich mich erst Mal durcharbeiten. Irgendwie sind sie auf dem ersten Blick verwirrend. Vor allem solche Passagen scheinen auf den ersten Blick sinnlos:
Code: viewpoint3D1 = viewer3D1.Viewpoint3D viewer3D1.Viewpoint3D = viewpoint3D1
Ich muß mal genau durchspielen, was damit gemeint ist und was das bewirkt. Viele Grüße, Roland ------------------ Inoffizielle Linux-Hilfeseite Meine Firma Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 25. Jan. 2006 09:03 <-- editieren / zitieren --> Unities abgeben: Nur für CEROG
|
AlexE78 Mitglied Ing.
Beiträge: 49 Registriert: 29.08.2005
|
erstellt am: 25. Jan. 2006 09:29 <-- editieren / zitieren --> Unities abgeben: Nur für CEROG
Guten Morgen, Habe mich auch mit einem solchen Tool beschäftigt und kann Euch schon mal ein paar Tipps geben. Kompass ausschalten: (englisch) CATIA.StartCommand "CompassDisplayOff" Hintergrundfarbe setzen: (rot, grün, blau ;jeweils 0 - 1) CATIA.ActiveWindow.ActiveViewer.PutBackgroundColor array(1, 1, 1) Blickrichtung festlegen: Zwei Vektoren (x,y,z), einer in Blickrichtung, der andere bestimmt, wo oben sein soll. Der zweie Vektor muß nicht unbedingt senkrecht auf dem ersten stehen. Beispiel für Isometrie-Ansicht: CATIA.ActiveWindow.ActiveViewer.Viewpoint3D.PutSightDirection Array(1, 1, -1) CATIA.ActiveWindow.ActiveViewer.Viewpoint3D.PutUpDirection Array(0, 0, 1) Ein Problem, an dem ich noch verzweifle, ist der Umstand, daß das Ganze im Batch-Mode auf Unix-Maschinen nicht funktioniert: Da sind ALLE ScreenShots SCHWARZ... falls jemand weiß, was man dagegen tun kann... bitte Bescheid geben. mfg Alex
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
Beiträge: 4755 Registriert: 27.09.2000 Dell precision M4300, 4GB Arbeitsspeicher NVidia FX360M Windows XP professional SP3 CATIA V5 R16SP9, R17SP8, R18SP8, R19SP4 Adobe Acrobat 8 Linux: Ubuntu 8.04LTS
|
erstellt am: 25. Jan. 2006 10:06 <-- editieren / zitieren --> Unities abgeben: Nur für CEROG
|
Ex-Mitglied
Beiträge: 4755 Registriert: 27.09.2000 Dell precision M4300, 4GB Arbeitsspeicher NVidia FX360M Windows XP professional SP3 CATIA V5 R16SP9, R17SP8, R18SP8, R19SP4 Adobe Acrobat 8 Linux: Ubuntu 8.04LTS
|
erstellt am: 25. Jan. 2006 14:59 <-- editieren / zitieren --> Unities abgeben: Nur für CEROG
|
Bertel Mitglied
Beiträge: 300 Registriert: 03.04.2002 CATIA V5 R26SP3HF21 Win10 Lenovo P52 Intel Xenon 16GB Ram NVIDIA Quadro P2000 EUKLID V14 ViCADo 2015
|
erstellt am: 09. Okt. 2006 12:57 <-- editieren / zitieren --> Unities abgeben: Nur für CEROG
Hallo AlexE78, Zitat: ------------------------------------------- Kompass ausschalten: (englisch) CATIA.StartCommand "CompassDisplayOff" ------------------------------------------- wenn das bei mir nicht funktioniert, kann das an meiner deutschen Oberfläche liegen? Heißt es dann etwa "KompassAnzeigeAus" ??? Gruß Bertel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AlexE78 Mitglied Ing.
Beiträge: 49 Registriert: 29.08.2005
|
erstellt am: 09. Okt. 2006 18:05 <-- editieren / zitieren --> Unities abgeben: Nur für CEROG
Genau so ist es... wie der deutsche Befehl lautet, kann ich dir allerdings nicht sagen. und mit wort für wort übersetzen ... kann funktionieren, muß aber nicht. am besten ist es wohl, wenn man unter Tools/Customize mal über alle befehle drüber schaut und sich den passenden raussucht. zum überprüfen kann man dann unter rechts in der Kommandozeile "c:COMMAND" (engl.) bzw. "b:BEFEHL" (dt.) den jeweiligen string ausprobieren. hoffe das hilft dir weiter
mfg Alex
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Animexx Mitglied
Beiträge: 15 Registriert: 15.08.2008 Windows XP SP2 Catia V5 R19 Visual Studie 2008 Pro
|
erstellt am: 13. Sep. 2008 21:22 <-- editieren / zitieren --> Unities abgeben: Nur für CEROG
|
V5Playaz Mitglied Dipl.-Ing (BA)
Beiträge: 447 Registriert: 12.07.2005 DELL PRECISION 390 3,25 GB RAM WIN XP PRO SP2 CATIA V5 R16-19 Delmia V5 R19 VB6, VB2008 Adobe Acrobat 9 Pro Extended
|
erstellt am: 29. Sep. 2008 14:39 <-- editieren / zitieren --> Unities abgeben: Nur für CEROG
Hallo, versuche es mal hiermit: Code: Set myViewpoint = myViewer.Viewpoint3D myViewpoint.PutSightDirection Array(1.414, 1.414, 0)myViewer.Viewpoint3D = CATIA.ActiveDocument.Cameras.Item(1) myViewer.Reframe
grüße Dominik Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThomasJay Mitglied Dipl-Ing
Beiträge: 159 Registriert: 19.04.2011 CATIA V5 R19
|
erstellt am: 03. Feb. 2014 13:21 <-- editieren / zitieren --> Unities abgeben: Nur für CEROG
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 03. Feb. 2014 14:52 <-- editieren / zitieren --> Unities abgeben: Nur für CEROG
|
ThomasJay Mitglied Dipl-Ing
Beiträge: 159 Registriert: 19.04.2011 CATIA V5 R19
|
erstellt am: 03. Feb. 2014 15:59 <-- editieren / zitieren --> Unities abgeben: Nur für CEROG
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 03. Feb. 2014 16:13 <-- editieren / zitieren --> Unities abgeben: Nur für CEROG
|
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 04. Feb. 2014 11:21 <-- editieren / zitieren --> Unities abgeben: Nur für CEROG
Habe Vorschläge zur Fehlereingrenzung: * definier vorher mal das Array und übergib es dann * Ruf Rotate mit CALL auf ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
QuickSB Mitglied Konstrukteur
Beiträge: 21 Registriert: 15.09.2009 V5 R19 SP9 HF19, Windows 7 64-bit Intel Xeon W3530, NV Quadro 4000, 12GB RAM
|
erstellt am: 05. Feb. 2014 09:57 <-- editieren / zitieren --> Unities abgeben: Nur für CEROG
Ich positioniere meine Daten über folgende Zeilen: oViewpoint.PutOrigin array(-310,0,0) oViewpoint.PutSightDirection array(0,0,1) oViewpoint.PutUpDirection array(0,0,0) oViewpoint.Zoom = 0.0015 Gruß Sebbo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThomasJay Mitglied Dipl-Ing
Beiträge: 159 Registriert: 19.04.2011 CATIA V5 R19
|
erstellt am: 06. Feb. 2014 17:23 <-- editieren / zitieren --> Unities abgeben: Nur für CEROG
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 06. Feb. 2014 17:32 <-- editieren / zitieren --> Unities abgeben: Nur für CEROG
Servus Kannst du mal weitere Infos liefern? - um was für ein Dokument handelt es sich ggf mal Screenshot posten - handelt es sich um CATScript, catvba? - was zeigt dir was Watchfenster an - den Viewer ggf mal als Viewer3D deklarieren Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThomasJay Mitglied Dipl-Ing
Beiträge: 159 Registriert: 19.04.2011 CATIA V5 R19
|
erstellt am: 07. Feb. 2014 08:57 <-- editieren / zitieren --> Unities abgeben: Nur für CEROG
- PartDocument (aber das dürfte doch keine Rolle spielen oder?) - catvba - watchfenster zeigt gar nix, da sobaled ich das Makro starte eine Meldung kommt: "Compile Error: Function or Interface marked as restricted, or the function uses an Automatoin type not supported in Visual Basic" - der Viewer ist als Viewer3D deklariert. Die Autovervollständigung bietet mir auch den "Rotate"-Befehl an. Wenn ich das Makro ausführen möchte kommt aber oben genannte Fehlermeldung und "Rotate" wird als Ursache hervorgehoben. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 07. Feb. 2014 09:01 <-- editieren / zitieren --> Unities abgeben: Nur für CEROG
|
| Duales Studium Maschinenbau (B.Sc.) (m/w/d) | Die SAF-HOLLAND SE ist ein international führender Hersteller von fahrwerksbezogenen Baugruppen und Komponenten für Trailer, Lkw und Busse. Die Produktpalette umfasst unter anderem Achs- und Federungssysteme für Trailer, Sattelkupplungen für Lkw und Kupplungssysteme für Lkw, Anhänger und Sattelauflieger sowie Brems- und EBS-Systeme. Daneben entwickelt SAF-HOLLAND innovative Produkte zur Erhöhung der Effizienz, Sicherheit und Umweltfreundlichkeit von Nutzfahrzeugen.... | Anzeige ansehen | Maschinenbau |
|
ThomasJay Mitglied Dipl-Ing
Beiträge: 159 Registriert: 19.04.2011 CATIA V5 R19
|
erstellt am: 07. Feb. 2014 10:39 <-- editieren / zitieren --> Unities abgeben: Nur für CEROG
|
Antelito Mitglied
Beiträge: 88 Registriert: 27.11.2013 CATIA R24 WIN 10 x64
|
erstellt am: 27. Mrz. 2014 12:37 <-- editieren / zitieren --> Unities abgeben: Nur für CEROG
Hallo, ich arbeite derzeit auch mit automatisierten Screenshots und es läuft eigentlich alles wie es soll, bis auf den Umstand, dass man bei ca. 95% der Screenshots die Schweißpunkte an den Bauteilen nicht sieht, weil das Bauteil nicht in dem optimalen Blickwinkel liegt, oder aber der Fügepartner die Sicht versperrt. Der erste Lösungsversuch war, einfach viele Screenshots mehr zu machen (natürlich auch den Blickwinkel häufiger ändern) in der Hoffnung, dass eben ein paar mehr brauchbare Bilder dabei sind - was zwar auch der Fall ist - aber insgesamt immernoch ungenügend ist. Alle nicht relevanten Teile sind natürlich ausgeblendet, sodass nur die Schweißpunkte und die Fügepartner eingeblendet sind. Hat jemand eine Idee, wie man automatisch genau diesen Blickwinkel findet, wo der Schweißpunkt deutlich zu sehen ist??? Danke! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |