Jump to content

Recommended Posts

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
https://qualityforum.zeiss.com/topic/526-skalieren-von-soll-elementen/
Share on other sites

  • 2 weeks later...
×
×
  • Create New...