Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Lines aufdicken, CaptureToFile funktioniert nicht automatisiert

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Lines aufdicken, CaptureToFile funktioniert nicht automatisiert (1191 / mal gelesen)
Philip Mueller
Mitglied
Student

Sehen Sie sich das Profil von Philip Mueller an!   Senden Sie eine Private Message an Philip Mueller  Schreiben Sie einen Gästebucheintrag für Philip Mueller

Beiträge: 2
Registriert: 13.03.2018

erstellt am: 13. Mrz. 2018 09:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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.VisProperties

Sub 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


Sehen Sie sich das Profil von roccat an!   Senden Sie eine Private Message an roccat  Schreiben Sie einen Gästebucheintrag für roccat

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Philip Mueller 10 Unities + Antwort hilfreich

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

Sehen Sie sich das Profil von Philip Mueller an!   Senden Sie eine Private Message an Philip Mueller  Schreiben Sie einen Gästebucheintrag für Philip Mueller

Beiträge: 2
Registriert: 13.03.2018

erstellt am: 13. Mrz. 2018 14:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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 >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz