Autor
|
Thema: komische Spline mit 21 Stückpunkte (884 mal gelesen)
|
s8r6 Mitglied Student
Beiträge: 16 Registriert: 08.02.2010
|
erstellt am: 25. Feb. 2010 15:27 <-- editieren / zitieren --> Unities abgeben:
hallo zusammen, ich versuche jetzt so eine spline kurve mit python zu skezieren. Die Stützpunke sind 21 und die Werte wurde kontrolliert(also richtig). aber wenn ich die macro py ausführe kommt eine komische kurve raus.(die sollte eine periode von sinus-kurve sein) man sieht dass die rechte halbe kurve wurde richtig dargestellt aber linke seite ziemlich durcheinander. kann jemand mir sagen? was ich falsch gemacht hab?? danke im voraus, lg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
carsten1983 Mitglied Doktorand
Beiträge: 125 Registriert: 11.10.2007
|
erstellt am: 26. Feb. 2010 07:46 <-- editieren / zitieren --> Unities abgeben: Nur für s8r6
|
carsten1983 Mitglied Doktorand
Beiträge: 125 Registriert: 11.10.2007
|
erstellt am: 26. Feb. 2010 08:45 <-- editieren / zitieren --> Unities abgeben: Nur für s8r6
Folgendes Script erzeugt dir aus Punkten den gewünschten Spline im Sketcher und macht ein Wire draus. Code:
#Daten vorgeben.. data_x=[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3, 3.1, 3.2,3.3,3.4,3.5,3.6,3.7,3.8,3.9,4.0,4.1,4.2,4.3,4.4,4.5,4.6,4.7,4.8,4.9,5.0,5.1,5.2,5.3,5.4,5.5,5.6,5.7,5.8,5.9,6.0,6.1,6.2] data_y=[] for x in data_x: data_y.append(sin(x))punkte=[] for x in xrange(len(data_x)): punkte.append((data_x[x],data_y[x])) #Abaqus skizzieren.. sketch = mdb.models['Model-1'].ConstrainedSketch(name='__profile__', sheetSize=200.0) sketch.setPrimaryObject(option=STANDALONE) sketch.Spline(points=(punkte)) part = mdb.models['Model-1'].Part(name='Part-1',dimensionality=THREE_D,type=DEFORMABLE_BODY) part.BaseWire(sketch=sketch) session.viewports['Viewport: 1'].setValues(displayedObject=part)
Vielleicht ist es das was du suchst. Übrigens die Fehler, die du hattest, hatte ich auch. Das lag aber lediglich an nem falschen x was in die Reihe gerutscht war.Edit: hab doppelte Definition entfernt [Diese Nachricht wurde von carsten1983 am 26. Feb. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
s8r6 Mitglied Student
Beiträge: 16 Registriert: 08.02.2010
|
erstellt am: 26. Feb. 2010 13:42 <-- editieren / zitieren --> Unities abgeben:
Hallo Carsten, vielen Danke für deine Antwort. ich werde mit deinen codes probieren. es sieht ja gut aus. inzwischen hab es so hingekriegt: a=20. l=100. x=range(21) # place holder for x, list y=range(21) # place holder for y, list x[10]=0 # middle point for i in range(1,11): # range(1,11) produces values from 1 to 10 x[10+i]=x[10]+i*l/20. x[10-i]=x[10]-i*l/20 #print x for i in range(21): y[i]=a*sin(2.*pi/l*x[i]) #in rad #print y xy_list=range(21) #place holer #xy_tuple=tuple(xy_list) #place holer point0=xy_list #place holer for i in range(21): xy_list[i]=[x[i],y[i]] #xy_tuple[i]=tuple(xy_list[i]) #point[i]=xy_tuple[i] point0[i]=xy_list[i] #print point0 point_0=() point_0=tuple(point0[0]) point_1=() point_1=tuple(point0[1]) point_2=() point_2=tuple(point0[2]) point_3=() point_3=tuple(point0[3]) point_4=() point_4=tuple(point0[4]) Es sieht ja nicht so elegant aus wie deine Codes aber es funktioniert. Hab k.a. wieso der abaqus anders raus******t als ich vorgegeben hab. Hab das Programmteil kopiert und in eine neue datei hinzugefügt und funktioniert... Ich hab so einen eindruck, dass "sketch.Spline(points=(punkte))" nur Tupels in "punkte" (auch als tuple) akzeptiert, oder?? also mit punkte als liste war ohne erfolg. (sry, bin totaler anfänger in Abaqus lg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|