[Er...] Posted November 8, 2021 Share Posted November 8, 2021 Hallo! Ich versuche eine Script zu erstellen, bei dem die 3D Koordinaten sämtlicher Soll-Geometrien um einen Gewissen Punkt und einen Gewissen Faktor skaliert werden sollen. Mit dieser Schleife Frage ich alle Elemente ab und gebe deren Name und Koordiante aus. for elem in gom.ElementSelection ({'category': ['key', 'elements', 'explorer_category', 'nominal', 'object_family', 'geometrical_element']}): print (elem.name, elem.center_coordinate.x, elem.center_coordinate.y, elem.center_coordinate.z) Gleichzeitig werden so auch die Normalen ausgelesen, welche aber unverändert bleiben sollen. Xvec = elem.normal.x Yvec = elem.normal.y Zvec = elem.normal.z Die Umrechnung zum Skalieren stellt auch kein Problem dar. Nur bei der Wertesetzung hapert es. Die Neuen Koordinaten Heißen dann: Xscal Yscal Zscal Eine Zuweisung der Skalierten Werte habe ich bisher nur über die Anpassung einer Aufzeichnung hinbekommen (bisher auch nur bei Flächenpunkten erfolgreich versucht): gom.script.sys.edit_creation_parameters ( auto_apply=True, element=elem, point={'interpolated': False, 'normal': gom.Vec3d (Xvec, Yvec,Zvec), 'point': gom.Vec3d (Xscal, Yscal , Zscal), 'target': gom.app.project.nominal_elements['all_cad_groups']}) Problem: Bei Elementen ohne Normale (Punkt) funktioniert das Script natürlich nicht, da diese keinen Vector haben. Wie muss eine Abfrage aussehen, (die in die Schleife eingebunden wird), ob eine Element überhaupt eine Normale hat. Gibt es eine andere Alternative die veränderten Werte den Elementen zuzuweisen? Bin für jeden Vorschlag dankbar. Grüße Link to comment Share on other sites More sharing options...
[Na...] Posted November 17, 2021 Share Posted November 17, 2021 Hallo Eric, wenn von einem Element ohne Normale, z.B. ein Punkt die Normale abgefragt wird, kommt zumindest ein "None" zurück. Das könntest Du als Abfrage einbauen. Gruß, Nanno Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in