catia programmierung change color invalid literal for int()

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Pixilated
User
Beiträge: 16
Registriert: Samstag 27. Juni 2015, 14:09

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 !!
Sirius3
User
Beiträge: 17747
Registriert: Sonntag 21. Oktober 2012, 17:20

@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(',')))
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.
Pixilated
User
Beiträge: 16
Registriert: Samstag 27. Juni 2015, 14:09

Super Danke !!!!
Pixilated
User
Beiträge: 16
Registriert: Samstag 27. Juni 2015, 14:09

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)
Sirius3
User
Beiträge: 17747
Registriert: Sonntag 21. Oktober 2012, 17:20

Ich bekomme da die Fehlermeldung:
ValueError: unsupported format character ')' (0x29) at index 37
Antworten