| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. | | |  | KISTERS 3DViewStation mit neuer Zerschneidefunktionen und erweitertem PMI-Support, eine Pressemitteilung
|
Autor
|
Thema: Python Skripting: Beispiel aus Doku + eigener Teil aus Marco-Rec (1538 mal gelesen)
|
sakaguchinet Mitglied

 Beiträge: 31 Registriert: 18.05.2010 Abaqus 6.11, Python 3.1
|
erstellt am: 05. Jan. 2012 15:19 <-- editieren / zitieren --> Unities abgeben:         
Hallo, habe heute angefangen mich stärker mit dem Python Skripting zu befassen (mit MSC Marc ging das deutlich einfacher als mit Abaqus - dort sah man die Befehle direkt in der Befehlszeile beim Klicken in der GUI). Im Folgenden habe ich einen Teil eines Skriptes aus der Abaqus Doku und einen Teil selbst hinzugefügt, den ich aus der Marco Record Funktion habe. Der erste Teil funktioniert wunderbar und ich sehe das A auf dem Bildschirm. Beim zweiten Teil (ab dem Comment) kommt in der GUI die Fehlermeldung: IndentationError 'unexpected indent',('C:/TempAbaqus/20110105_test.py',62,4,' myModel.DatumCsysByDefault(CARTESIAN)\n')) Was mir schon spanisch vorkommt sind die verschiedenen Bezeichnungen(z.B. myModel und a1 oder p). Kann ich nicht einfach den aufgenommenen Marco Code in ein weiter laufendes Skript übernehmen? Zitat:
""" modelAExample.pyA simple example: Creating a part. """ from abaqus import * from abaqusConstants import * backwardCompatibility.setValues(includeDeprecated=True, reportDeprecated=False) import section import regionToolset import displayGroupMdbToolset as dgm import part import material import assembly import step import interaction import load import mesh import optimization import job import sketch import visualization import xyPlot import displayGroupOdbToolset as dgo import connectorBehavior myModel = mdb.Model(name='Model-1') mySketch = myModel.ConstrainedSketch(name='Sketch A', sheetSize=200.0) xyCoordsInner = ((-5 , 20), (5, 20), (15, 0), (-15, 0), (-5, 20)) xyCoordsOuter = ((-10, 30), (10, 30), (40, -30), (30, -30), (20, -10), (-20, -10), (-30, -30), (-40, -30), (-10, 30)) for i in range(len(xyCoordsInner)-1): mySketch.Line(point1=xyCoordsInner[i], point2=xyCoordsInner[i+1]) for i in range(len(xyCoordsOuter)-1): mySketch.Line(point1=xyCoordsOuter[i], point2=xyCoordsOuter[i+1]) myPart = myModel.Part(name='Part A', dimensionality=THREE_D, type=DEFORMABLE_BODY) myPart.BaseSolidExtrude(sketch=mySketch, depth=20.0) myViewport = session.Viewport(name='Viewport for Model A', origin=(10, 10), width=150, height=100) myViewport.setValues(displayedObject=myPart) myViewport.partDisplay.setValues(renderStyle=SHADED) ## Ab hier neuer Skriptteil aus Macro Recording (Instance in Assembly einfügen und Step erstellen) a1 = mdb.Models['Model-1'].rootAssembly a1.DatumCsysByDefault(CARTESIAN) p = mdb.models['Model-1'].parts['Part A'] a1.Instance(name='Part A-1', part=p, dependent=ON) a = mdb.models['Model-1'].rootAssembly session.viewports['Viewport for Model A'].setValues(displayedObject=a) session.viewports['Viewport for Model A'].assemblyDisplay.setValues( adaptiveMeshConstraints=ON, optimizationTasks=OFF, geometricRestrictions=OFF, stopConditions=OFF) mdb.models['Model-1'].StaticStep(name='Step-1', previous='Initial') session.viewports['Viewport for Model A'].assemblyDisplay.setValues( step='Step-1')
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
sakaguchinet Mitglied

 Beiträge: 31 Registriert: 18.05.2010 Abaqus 6.11, Python 3.1
|
erstellt am: 05. Jan. 2012 15:30 <-- editieren / zitieren --> Unities abgeben:         
Nachdem ich die Einrückung passend gemacht habe sieht es so aus: Zitat:
""" modelAExample.pyA simple example: Creating a part. """ from abaqus import * from abaqusConstants import * backwardCompatibility.setValues(includeDeprecated=True, reportDeprecated=False) import section import regionToolset import displayGroupMdbToolset as dgm import part import material import assembly import step import interaction import load import mesh import optimization import job import sketch import visualization import xyPlot import displayGroupOdbToolset as dgo import connectorBehavior myModel = mdb.Model(name='Model-1') mySketch = myModel.ConstrainedSketch(name='Sketch A', sheetSize=200.0) xyCoordsInner = ((-5 , 20), (5, 20), (15, 0), (-15, 0), (-5, 20)) xyCoordsOuter = ((-10, 30), (10, 30), (40, -30), (30, -30), (20, -10), (-20, -10), (-30, -30), (-40, -30), (-10, 30)) for i in range(len(xyCoordsInner)-1): mySketch.Line(point1=xyCoordsInner[i], point2=xyCoordsInner[i+1]) for i in range(len(xyCoordsOuter)-1): mySketch.Line(point1=xyCoordsOuter[i], point2=xyCoordsOuter[i+1]) myPart = myModel.Part(name='Part A', dimensionality=THREE_D, type=DEFORMABLE_BODY) myPart.BaseSolidExtrude(sketch=mySketch, depth=20.0) myViewport = session.Viewport(name='Viewport for Model A', origin=(10, 10), width=150, height=100) myViewport.setValues(displayedObject=myPart) myViewport.partDisplay.setValues(renderStyle=SHADED) ## Ab hier neuer Skriptteil aus Macro Recording (Instance in Assembly einfuegen und Step erstellen) a1 = mdb.Model['Model-1'].rootAssembly a1.DatumCsysByDefault(CARTESIAN) p = mdb.model['Model-1'].parts['Part A'] a1.Instance(name='Part A-1', part=p, dependent=ON) a = mdb.model['Model-1'].rootAssembly session.viewports['Viewport for Model A'].setValues(displayedObject=a) session.viewports['Viewport for Model A'].assemblyDisplay.setValues( adaptiveMeshConstraints=ON, optimizationTasks=OFF, geometricRestrictions=OFF, stopConditions=OFF) mdb.model['Model-1'].StaticStep(name='Step-1', previous='Initial') session.viewports['Viewport for Model A'].assemblyDisplay.setValues( step='Step-1')
Nun habe ich folgenden Fehler: line 61 in <module> a1 = mdb.Model['Model-1'].rootAssembly TypeError: 'AbaqusMethod' object is unsubscriptable Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |