Autor
|
Thema: Mittels Python einen Knoten über SDV plotten (975 mal gelesen)
|
rosebud Mitglied Student
Beiträge: 4 Registriert: 19.12.2007
|
erstellt am: 18. Jan. 2008 15:14 <-- editieren / zitieren --> Unities abgeben:
Hallo Ich versuche gerade in Python ein Script zu schreiben mit dem ich folgendes erreichen will: Ich habe eine odb-Datei, diese möchte ich mit dem Script automatisch öffnen. Dann hätte ich es gerne, das ich nur für einen bestimmten Knoten (Nr. 1109) einen Plot für die Variable SDV3 bekomme. "Manuell" gehe ich da so vor, für ABAQUS 6.5.1: Tools - XV Data - Create - ODB field Output - Variables - Position: Unique Nodal - SDV3 - Elements/Nodes - Node Labels: Part Instance Part-1-1, Node Labels 1109 - Steps/Frames: Step-7 - dann nur noch auf Plot drücken und fertig. Mein Python- Script sieht dafür nun so aus: from abaqus import * from abaqusConstants import * import visualization myViewport = session.Viewport(name='Probe', origin=(0, -90), width=200, height=200) Odb_1 = visualization.openOdb(path='G:/res001.odb') myViewport.setValues(displayedObject=Odb_1) session.xyDataObjects.xyDataListFromField(outputPosition=NODAL, variable=('SDV3',Nodal,,),), steps='step-7', nodeLabels=('part-1-1',(1109),),) Wenn ich das Script starte bekomme ich folgende Fehlermeldung: File "C:/Temp/test.py", line 9 variable=('SDV3', Nodal,,),), steps='step-7', ^ SyntaxError: invalid syntax Was mache ich falsch? Vielen Dank.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nicksen Mitglied wissenschaftlicher Mitarbeiter
Beiträge: 239 Registriert: 04.05.2007
|
erstellt am: 21. Jan. 2008 08:35 <-- editieren / zitieren --> Unities abgeben: Nur für rosebud
Mir scheint es so, als wuerdest du nur eine oeffnende Klammer zu wenig haben. Das steht bei dir: variable=('SDV3',Nodal,,),), steps='step-7', nodeLabels=('part-1-1',(1109),),) Die genaue Sytanx weiß ich auch nicht, aber du schließt noch vor der "step"- Angabe eine Klammer, die nie geoeffnet wurde. Mag sein, dass der Durchlauf deswegen schon meckert. Kann mich aber auch irren. Viel Erfolg weiterhin. mfg Nuxxin ------------------ ========== == Dingsen == ========== Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas79 Mitglied Student
Beiträge: 134 Registriert: 16.12.2004
|
erstellt am: 21. Jan. 2008 09:28 <-- editieren / zitieren --> Unities abgeben: Nur für rosebud
|
rosebud Mitglied Student
Beiträge: 4 Registriert: 19.12.2007
|
erstellt am: 21. Jan. 2008 14:00 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank. Ich habe diese Änderung übernommen, nun sieht das Script so aus: from abaqus import * from abaqusConstants import * import visualization myViewport = session.Viewport(name='Probe', origin=(0, -90), width=200, height=200) Odb_1 = visualization.openOdb(path='G:/res001.odb') myViewport.setValues(displayedObject=Odb_1) session.xyDataObjects.xyDataListFromField(outputPosition=NODAL, variable=(('SDV3',NODAL,),), steps='step-7', nodeLabels=(('part-1-1',('1109',)),)) Der alte Fehler ist damit weg, aber das Script läuft noch nicht durch. Nun tritt der folgende Fehler auf: File "C:/Temp/test.py", line 9, in ? session.xyDataObjects.xyDataListFromField(outputPosition=NODAL, AttributeError: 'xypK_XYDataDictIntObj' object has no attribute 'xyDataListFromField' Was kann ich denn da nun tun? Ich kann in dem ABAQUS Scripting Reference Manual nichts über so einen Fehler finden. Vielen Dank. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
carsten1983 Mitglied Doktorand
Beiträge: 125 Registriert: 11.10.2007
|
erstellt am: 21. Jan. 2008 16:28 <-- editieren / zitieren --> Unities abgeben: Nur für rosebud
Ich schieß mal ins Blaue: Dein Object 'xypK_XYDataDictIntObj' hat kein Attribut 'xyDataListFromField' heißt eigentlich nur du versuchst mit einem Object etwas, was es nicht kann. Du solltest vielleicht mal im Reference Manual gucken für welchen Objekttyp du diesen Befehl verwenden kannst bzw welche Attribute dein Objekt hat. mfg Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas79 Mitglied Student
Beiträge: 134 Registriert: 16.12.2004
|
erstellt am: 22. Jan. 2008 09:01 <-- editieren / zitieren --> Unities abgeben: Nur für rosebud
Änder mal ('SDV3',NODAL,) in ('SDV3',INTEGRATION_POINT,) Das Einfachste wäre allerdings Du machst es mal in CAE und schaust Dir danach die .rpy-Datei an. Dort stehen dann alle Python-Befehle, die ausgeführt wurden. Dann nur noch in eine Datei kopieren und Dein Skript ist fertig. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rosebud Mitglied Student
Beiträge: 4 Registriert: 19.12.2007
|
erstellt am: 10. Feb. 2008 20:21 <-- editieren / zitieren --> Unities abgeben:
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|