Autor
|
Thema: Lines aufdicken, CaptureToFile funktioniert nicht automatisiert (1190 / mal gelesen)
|
Philip Mueller Mitglied Student
Beiträge: 2 Registriert: 13.03.2018
|
erstellt am: 13. Mrz. 2018 09:33 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, Ich sitze jetzt schon zwei Tage an dem Problem, dass Linien nicht aufgedickt (SetVisibleWidth) werden und Ihre Farbe ändern (von weiß zu schwarz). Ich möchte mit meinem Makro automatisiert einen Rahmen um verschiedene Punkte erzeugen und anschließend ein Bild erzeugen um dieses später in eine Powerpoint zu übertragen. Nun, das alles funktioniert ohne weiteres. Die Screenshots werden auf weißem Hintergrund gemacht, sodass ich den Rahmen Schwarz haben möchte und ihn aufdicke (Sub PrePic). Dies bereitet eigentlich auch keine Probleme. Wenn ich nun das Makro mit dem Sub für den Rahmen und dem Sub für das CaptureToFile ausführe, sind die entstehenden Bilder mit dünnem Rahmen und nicht in Schwarz gefärbt. Führe ich den selben Code manuell mit F8 aus ist jedoch alles so wie ich es haben will. Warum nun das Makro funktioniert wenn ich es Schritt für Schritt durchgehe, jedoch nicht wenn ich es einfach laufen lasse, übersteigt meine Kenntnis. Ich habe gehofft hier einen Lösungsansatz zu finden. Im Internet bin ich bislang nicht fündig geworden... Vielen Dank schonmal
Code: '=========== CAT VBA Skript ================================================================== Set P1 = CATIA.ActiveDocument.Part Set Selection1 = CATIA.ActiveDocument.Selection Set oViewer = CATIA.ActiveWindow.ActiveViewer Set oViewpoint = oViewer.Viewpoint3D Set hybridShapeFactory1 = P1.HybridShapeFactory Set VisProperties1 = Selection1.VisPropertiesSub PrePic() 'Neues Geoset erstellen für neue Gruppe GrpNbr = GrpNbr + 1 Set hybridBody1 = P1.HybridBodies.Item("Auswertung") P1.InWorkObject = hybridBody1 Set hybridBodies1 = hybridBody1.HybridBodies Set hybridBody1 = hybridBodies1.Add() hybridBody1.Name = "Gruppe_" & Format(GrpNbr, "00") & "_mit_" & Format(Tol, "00") & "mm_Freigang" '....' '....' 'Einfärben und aufdicken der Linien Selection1.Add hybridBody1.HybridShapes.Item("Rechte_Seite") Selection1.Add hybridBody1.HybridShapes.Item("Linke_Seite") Selection1.Add hybridBody1.HybridShapes.Item("Beschnitt2_Line_Min_X") Selection1.Add hybridBody1.HybridShapes.Item("Beschnitt2_Line_Max_X") VisProperties1.SetRealWidth 10, 1 VisProperties1.SetRealColor 0, 0, 0, 1 'schwarz VisProperties1.SetVisibleWidth 10, 1 VisProperties1.SetVisibleColor 0, 0, 0, 1 Selection1.Clear 'Bild erzeugen Kamera_Zone End Sub Sub Kamera_Zone() ' Change the viewpoint oViewer.FullScreen = True oViewpoint.PutSightDirection Array(0, 1, 0) 'Right View oViewpoint.PutUpDirection Array(0, 0, 1) oViewer.Reframe oViewer.Update oViewpoint.GetOrigin Origin oViewpoint.PutOrigin Origin oViewpoint.ProjectionMode = catProjectionCylindric
' Update the viewer oViewpoint.Zoom = 0.00115 oViewer.Update P1.Update CATIA.ActiveDocument.Selection.Clear oViewer.CaptureToFile catCaptureFormatJPEG, Speicherort & Format(GrpNbr, "00") & ".jpg" oViewer.Update End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
roccat Mitglied Konstrukteur
Beiträge: 172 Registriert: 19.02.2010 WinXP/Win7 Office XP/2007 Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR VB .Net 2010
|
erstellt am: 13. Mrz. 2018 12:10 <-- editieren / zitieren --> Unities abgeben: Nur für Philip Mueller
Hallo, evtl. hilft ein "DoEvents" oder ein "CATIA.RefreshDisplay = True" zwischen deiner Linienformatierung und der Bild-Erzeugung. mfG Mario ------------------ Wenn das die Lösung sein soll, will ich mein Problem zurück !! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Philip Mueller Mitglied Student
Beiträge: 2 Registriert: 13.03.2018
|
erstellt am: 13. Mrz. 2018 14:47 <-- editieren / zitieren --> Unities abgeben:
Danke für die schnelle Antwort! Ich habe den DisplayRefresh mehrmals an verschiedenen Positionen eingebaut, jedoch ist das Ergebnis das selbe. Hättest du ein Beispiel für DoEvents? Ich finde viele Beispiele zu Modulus, sodass zum Beispiel alle 1000 Durchgänge die Funktion verlassen. Dies Brauche ich hier jedoch nicht. Grüße Philip Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|