Seite 1 von 1

catia programmierung change color invalid literal for int()

Verfasst: Mittwoch 16. Dezember 2015, 11:46
von Pixilated
Folgendes Problem treibt mich derweil zum Wahnsinn:
Ich möchte die Farbe eines Elements in CATIA(CAD Anwendung zur Konstruktion) ändern.

Die Anwendung liest den neuen FarbCode aus einer Datei ein und gibt dann folgende Fehlermeldung aus.

invalid literal for int() with base 10: '(237, 203, 84, 0)'

Code: Alles auswählen

visPropertySet1.SetRealColor (config3.get(v.get(), 'cLinien'))
Es handelt sich um Python 2.6 :
Weise ich den farbcode direkt zu funktioniert es ohne Probleme:

Code: Alles auswählen

visPropertySet1.SetRealColor (237, 203, 84, 0)

Über Hilfe würde ich mich sehr freuen !!

Re: catia programmierung change color invalid literal for int()

Verfasst: Mittwoch 16. Dezember 2015, 11:57
von Sirius3
@Pixilated: Die Funktion erwartet 4 Zahlen und Du übergibst einen String, das kann nicht funktionieren.

Code: Alles auswählen

color_lines = config3.get(v.get(), 'cLinien')
visPropertySet1.SetRealColor(*map(int, color_lines.lstrip('(').rstrip(')').split(',')))

Re: catia programmierung change color invalid literal for int()

Verfasst: Mittwoch 16. Dezember 2015, 12:05
von BlackJack
Alternativ:

Code: Alles auswählen

import ast

line_color = ast.literal_eval(config3.get(v.get(), 'cLinien'))
visPropertySet1.SetRealColor(*line_color)
Die Zahlen die an die Namen angehängt sind, sehen übrigens nach einem „code smell“ aus.

Re: catia programmierung change color invalid literal for int()

Verfasst: Mittwoch 16. Dezember 2015, 12:12
von Pixilated
Super Danke !!!!

Re: catia programmierung change color invalid literal for int()

Verfasst: Mittwoch 16. Dezember 2015, 21:08
von Pixilated
ich versuche einen schritt weiter zu gehen und nach objekten mit ausgewählter farbe zu suchen.
den ausgelesenen farbcode in die suche zu integrieren bringt folgenden fehler.
vielleicht weiss auch hier jemand wies richtig geht ....
lieben Dank für jegliche Hilfe !

TypeError: not all arguments converted during string formatting


Code: Alles auswählen

    selection1.Search ("Color='visPropertySet1.SetRealColor(%),all"%line_color)

Re: catia programmierung change color invalid literal for int()

Verfasst: Mittwoch 16. Dezember 2015, 23:18
von Sirius3
Ich bekomme da die Fehlermeldung:
ValueError: unsupported format character ')' (0x29) at index 37