Hallo zusammen,
ich habe die Vermutung dass ich die "PythonPartUtil"-Klasse etwas falsch verwende. Derzeit platziere ich über eine Schleife mehrere Zylinder als PythonParts auf meinem Teilbild. Hierbei wird bei jedem Part ggf. die Lage(x,y,z) und Zylinderhöhe angepasst. Die Anpassung der Lage wird in jedem Durchgang korrekt durchgeführt, lediglich die Höhe der Zylinder ist falsch. Alle Zylinder haben nämlich die Höhe des ersten platzierten Zylinders. Das komische hierbei ist, dass in der Vorschau in Allplan alle Zylinder mit korrekter Höhe angezeigt werden. Im Grunde genauso wie ich sie auch in ihrer Lage und Höhe haben möchte. Da die Vorschau richtig funktioniert, denke ich dass bis zu diesem Punkt alles richtig läuft und bei der eigentlichen Erstellung als PythonPart ein Fehler sein muss. Anbei habe ich euch meinen derzeitigen Code angehängt, vielleicht findet den Denkfehler jemand.
#----------------- Geometrie des Zylinders über Attribute festlege
zylinder = AllplanGeo.Cylinder3D()
zylinder.MajorRadius = 250
zylinder.MinorRadius = 250
zylinder.Apex = AllplanGeo.Point3D(0.0, 0.0, self.oberkante - self.unterkante)
zylinder.LocalPlacement = AllplanGeo.AxisPlacement3D(AllplanGeo.Point3D(0, 0, 0),AllplanGeo.Vector3D(1 , 0 , 0),AllplanGeo.Vector3D(0, 0, 1))
#----------------- Zylinderkörper erzeugen
körper = AllplanGeo.CreatePolyhedron(zylinder, 36)
körper = AllplanGeo.Cylinder3D(zylinder
#----------------- Platzieren des PP
startpunkt = AllplanGeo.Point3D(0.0, 0.0, 0.0)
endpunkt = AllplanGeo.Point3D(self.x_koord, self.y_koord, self.unterkante)
verschiebevektor = AllplanGeo.Vector3D(startpunkt, endpunkt)
placement_matrix = AllplanGeo.Matrix3D()
placement_matrix.SetTranslation(verschiebevektor)
local_placement_matrix = AllplanGeo.Matrix3D()
pythonpart = PythonPartUtil()
pythonpart.add_pythonpart_view_2d3d(körper)
zu_erstellende_elemente = pythonpart.create_pythonpart(build_ele, local_placement_matrix = local_placement_matrix, placement_matrix = placement_matrix)
Die Variablen self.oberkante, self.unterkante, self.x_koord, self.y_koord und self.unterkante nehmen nach jedem Durchgang neue Werte an.
Grüße
Niklas