Autor
|
Thema: PYTHON SCRIPTING (1614 mal gelesen)
|
Stuttgarter87 Mitglied Student
Beiträge: 3 Registriert: 07.04.2014 ABAQUS
|
erstellt am: 07. Apr. 2014 08:40 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute! Vorab ich bin neu hier und auch ein neuling was Python betrifft, seid bitte nachsichtig wenn ich nicht die schlausten Fragen stelle Meine Problem ist folgendes: Ich habe ein Skript für eine Finite Elemet Analyse eines Fachwerks erhalten, dass ich mittels ABAQUS SCRIPTING ablaufen lassen kann und es funktioniert auch alles so wie gewünscht, nur glaube ich dass bestimmte Zeilen bzw Befehle anders formuliert werden könnte (siehe unten) x=(Xcoordin[3]+Xcoordin[4])/2 y=(Ycoordin[3]+Ycoordin[4])/2 myEdgekey=myWire.edges.getClosest(coordinates=((x,y,0),)) myEdgeinfo=myEdgekey[0] myEdge=myEdgeinfo[0] h=myEdge.index trusshalfSet=myWire.Set(name='Stabhalbset', edges=myEdges[h:h+1]) myWire.SectionAssignment(region=trusshalfSet, sectionName='Stabhalb-section') Hier soll ein Stab ausgewählt werden und dann diesem eine Section zugewiesen werden. Nur wird der ausgewählte Stab (myEdgekey) dann erneut deklariert mit (-info) und dann im Set "edges" auf den index "h" geschoben. Ich dachte mir dieser Umweg wäre unnötig und ich könnte bei der Sectionzuweisung direkt... myWire.SectionAssignment(region=myEdgekey, sectionName='Stabhalb-section') ... eingeben. Jedoch mag das Programm dies nicht. Meine Frage: gibt es hier eine bessere Methode einem einzelnen Stab im Set "edges" gesondert eine Section zuzuweisen? Das selbe Problem habe ich beim setzen der Randbedinungen, auch hier wird ein Umweg über eine Indizierung gemacht, statt direkt die Punkte für die jeweilige RB einzusetzen. Meine Befürchtung ist, dass das Programm für "region=" nicht jeden Wert bzw Formal nimmt. Ich hoffe, dass ich mein Problem erklären konnte und mir jmd behilflich sein kann.
Viele Grüße aus Stuttgart!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
FEM User 2011 Mitglied
Beiträge: 25 Registriert: 01.12.2011
|
erstellt am: 07. Apr. 2014 14:40 <-- editieren / zitieren --> Unities abgeben: Nur für Stuttgarter87
Hallo Stuttgarter87, hier ist ein Code-Ausschnitt aus "Python scripts for Abaqus" von Gautam M. Puri. Die Koordinaten repräsentieren den Mittelpunkt der Stäbe/Balken. # --------------------------------------------------------------------------------------- # Create a section and assign the truss to it import section trussSection = trussModel.TrussSection(name='Truss Section', material ='AISI 1005 Steel', area=3.14E-4) edges_for_section_assignment = trussPart.edges.findAt(((1.0, 0.0, 0.0), ), ((3.0, 0.0, 0.0), ), ((5.0, 0.0, 0.0), ), ((1.0, -1.5, 0.0), ), ((3.0, -1.5, 0.0), ), ((1.0, -0.75, 0.0), ), ((3.0, -0.75, 0.0), ), ((5.0, -0.75, 0.0), ), ((2.0, -0.75, 0.0), ), ((4.0, -0.75, 0.0), )) truss_region = regionToolset.Region(edges=edges_for_section_assignment) trussPart.SectionAssignment(region=truss_region, sectionName='Truss Section') Ich hoffe es hilft Dir weiter. MfG FEM User 2011 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stuttgarter87 Mitglied Student
Beiträge: 3 Registriert: 07.04.2014 ABAQUS
|
erstellt am: 09. Apr. 2014 10:01 <-- editieren / zitieren --> Unities abgeben:
Danke dir, FEM User 2011! Soweit ich verstehe dient die Funktion "regionToolset" den von mir gewünschten Stab in die passende Form "Region" für die SectionAssignment zu bringen, stimmt das? Beim Setzen der Randbedingungen habe ich nun gleiches Problem und versuche es mit der Funktion "regionToolset" zu lösen: hier möchte ich an Knoten 1 eine Lagerung setzen und eine Kraft aufbringen #Punkt1 Lagerung Last x=Xcoordin[0] y=Ycoordin[0] myVertice=myWire.vertices.findAt(coordinates=(x,y,0)) myBCregion = regionToolset.Region(vertices=myVertice) myModel.DisplacementBC(name='horizontale Lagerung 1', createStepName='Initial', region=myBCregion, u1=UNSET, u2=SET, ur3=UNSET, amplitude=UNSET, distributionType=UNIFORM, fieldName='', localCsys=None) myModel.ConcentratedForce(name='F', createStepName='Belastung 1', region=myBCregion, cf2=-f, distributionType=UNIFORM, field='', localCsys=None) doch beim fett gedruckten code, kommt ein Fehler auf "Vertices, found Vertex, expecting Geo. Sequence". Was mach ich hier falsch? Grüße Stuttgarter 87 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
adaptiveMesh Mitglied
Beiträge: 67 Registriert: 25.05.2006
|
erstellt am: 09. Apr. 2014 11:02 <-- editieren / zitieren --> Unities abgeben: Nur für Stuttgarter87
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|