Jump to content

Skalieren von Soll Elementen


---
 Share

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
Share on other sites

  • 2 weeks later...

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.

Snag_1a73c6d4.png.4f6ef3dc59b07900e8a858997aa54777.png

Gruß,

Nanno

Link to comment
Share on other sites

 Share

×
×
  • Create New...