dabauer82 Mitglied
Beiträge: 121 Registriert: 22.11.2007 Pro/E WiFi3 M050 Win 7 ABQ 6-14
|
erstellt am: 22. Jun. 2011 08:36 <-- editieren / zitieren --> Unities abgeben:
Hi, ich habe mittels Python die Punkte einer Punktewolke in Abaqus geladen und dort in einer Richtung ge-spline-t. Nun möchte ich diese Splines loften und habe ein Problem bei der Generierung meiner Sequence 'loftsection' wie sie für den shellLoft-Befehl benötigt wird. Die Anzahl an Splines ist variabel - hängt also von der Text-Datei ab die ich einlese. Angenommen meine Textdatei hat 15 Splines, dann müsste der ShellLoft-Befehl so aussehen: Code: myLoftPart.ShellLoft(loftsections=((mySurfaceEdges[7], ), (mySurfaceEdges[6], ), (mySurfaceEdges[8], ), (mySurfaceEdges[5], ), (mySurfaceEdges[9], ), (mySurfaceEdges[4], ), (mySurfaceEdges[10], ), (mySurfaceEdges[3], ), (mySurfaceEdges[11], ), (mySurfaceEdges[2], ), (mySurfaceEdges[12], ), (mySurfaceEdges[1], ), (mySurfaceEdges[13], ), (mySurfaceEdges[0], ), (mySurfaceEdges[14], )), startCondition=NONE,endCondition=NONE)
Allerdings ist das nun hardgecodet, ich hätte aber gerne eine Variante, bei der die loftsections durch den Quellcode generiert werden. Dafür habe ich folgenden Ansatz versucht. Angenommen meine 15 Spplines stecken in der Variable mySplineQuantity, dann habe ich mit myLoftCrossSection1 und mit myLoftCrossSection2 die Splinereihenfolge erzeugt die ich mit zip() dann auch erhalte. Wer genau hinsieht wird oben erkennen, dass die Reihenfolge der LoftSections beginnend bei der Splinehälfte eine steigende und eine fallende Zahlenreihe enthält. Diese habe ich dann im Endeffekt mit der Variable loftsections zur Verfügung. Zumindest erhoffe ich mir das. Aber ich bekomme die Fehlermeldung, invalid Sequence... Kann mir jemand helfen wie ich die Variable Loftsections erzeugen kann oder wie ich den Loft-Befehl ausführen kann? Code: print '>>> Erzeuge Loft' ) myLoftCrossSection1 = range((mySplineQuantity/2-1),-1,-1) myLoftCrossSection2 = range((mySplineQuantity/2),mySplineQuantity,1) myLoftSection = zip(myLoftCrossSection2,myLoftCrossSection1) loftsections = []mySurfaceEdges = myLoftPart.edges for i in myLoftSection: loftsections.append('(mySurfaceEdges['+str(i[0])+'], ), ') loftsections.append('(mySurfaceEdges['+str(i[1])+'], ), ') #myLoftPart.ShellLoft(loftsections, startCondition=NONE,endCondition=NONE)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |