在abaqus中利用python语言建模例子.doc_第1页
在abaqus中利用python语言建模例子.doc_第2页
在abaqus中利用python语言建模例子.doc_第3页
在abaqus中利用python语言建模例子.doc_第4页
在abaqus中利用python语言建模例子.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

3.1Creating a partThe first example shows how you can use an Abaqus/CAE script to replicate the functionality of Abaqus/CAE. The script does the following: Creates a new model in the model database. Creates a two-dimensional sketch. Creates a three-dimensional, deformable part. Extrudes the two-dimensional sketch to create the first geometric feature of the part. Creates a new viewport. Displays a shaded image of the new part in the new viewport.The new viewport and the shaded part are shown in Figure 31. Figure 31 The example creates a new viewport and a part.The example scripts from this manual can be copied to the users working directory by using the Abaqus fetch utility: abaqus fetch job=scriptNamewhere scriptName.py is the name of the script (see “Execution procedure for fetching sample input files,” Section 3.2.12 of the Abaqus Analysis Users Manual). Use the following command to retrieve the script for this example:abaqus fetch job=modelAExampleNote: Abaqus does not install the sample scripts by default during the installation procedure. As a result, if the Abaqus fetch utility fails to find the sample script, the script may be missing from your Abaqus installation. You must rerun the installation procedure and request Abaqus sample problems from the list of items to install.To run the program, do the following: 1. Start Abaqus/CAE by typing abaqus cae.2. From the startup screen, select Run Script.3. From the Run Script dialog box that appears, select modelAExample.py.4. Click OK to run the script.Note: If Abaqus/CAE is already running, you can run the script by selecting FileRun Script from the main menu bar.3.1.1The example scriptmodelAExample.pyA simple example: Creating a part.from abaqus import *import testUtilstestUtils.setBackwardCompatibility()from abaqusConstants import *import sketchimport partmyModel = mdb.Model(name=Model A)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=xyCoordsInneri, point2=xyCoordsInneri+1)for i in range(len(xyCoordsOuter)-1): mySketch.Line(point1=xyCoordsOuteri, point2=xyCoordsOuteri+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)3.1.2How does the script work?This section explains each portion of the example script. from abaqus import *This statement makes the basic Abaqus objects accessible to the script. It also provides access to a default model database using the variable named mdb. The statement, from abaqusConstants import *, makes the Symbolic Constants defined by the Abaqus Scripting Interface available to the script. import sketchimport partThese statements provide access to the objects related to sketches and parts. sketch and part are called Python modules. The next statement in the script is shown in Figure 32. You can read this statement from right to left as follows: 1. Create a new model named Model A.2. Store the new model in the model database mdb.3. Assign the new model to a variable called myModel.Figure 32 Creating a new model.mySketch = myModel.ConstrainedSketch(name=Sketch A, sheetSize=200.0)This statement creates a new sketch object named Sketch A in myModel. The variable mySketch is assigned to the new sketch. The sketch will be placed on a sheet 200 units square. Note the following: A command that creates something (an “object” in object-oriented programming terms) is called a constructor and starts with an uppercase character. You have seen the Model and Sketch commands that create Model objects and Sketch objects, respectively. The command uses the variable myModel that we created in the previous statement. Using variables with meaningful names in a script makes the script easier to read and understand.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)These two statements define the X- and Y-coordinates of the vertices that form the inner and outer profile of the letter “A.” The variable xyCoordsInner refers to the vertices of the inner profile, and the variable xyCoordsOuter refers to the vertices of the outer profile.for i in range(len(xyCoordsInner)-1): mySketch.Line(point1=xyCoordsInneri, point2=xyCoordsInneri+1)This loop creates the inner profile of the letter “A” in mySketch. Four lines are created using the X- and Y-coordinates of the vertices in xyCoordsInner to define the beginning point and the end point of each line. Note the following: Python uses only indentation to signify the start and the end of a loop. Python does not use the brackets of C and C+. The len() function returns the number of coordinate pairs in xyCoordsInnerfive in our example. The range() function returns a sequence of integers. In Python, as in C and C+, the index of an array starts at zero. In our example range(4) returns 0,1,2,3. For each iteration of the loop in the example the variable i is assigned to the next value in the sequence of integers.Similarly, a second loop creates the outer profile of the “A” character. myPart = myModel.Part(name=Part A, dimensionality=THREE_D, type=DEFORMABLE_BODY)This statement creates a three-dimensional, deformable part named Part A in myModel. The new part is assigned to the variable myPart. myPart.BaseSolidExtrude(sketch=mySketch, depth=20.0)This statement creates a base solid extrude feature in myPart by extruding mySketch through a depth of 20.0. myViewport = session.Viewport(name=Viewport for Model A, origin=(20,20), width=150, height=100)This statement creates a new viewport named Viewport for Model A in session. The new viewport is assigned to the variable myViewport. The origin of the viewport is at (20, 20), and it has a width of 150 and a height of 100. myViewport.setValues(displayedObject=myPart)This statement tells Abaqus to display the new part, myPart, in the new viewport, myViewport. myViewport.partDisplayOptions.setValues(renderStyle=SHADED)This statement sets the render style of the part display options in myViewport to shaded. As a result, myPart appears in the shaded render style. 3.2Reading from an output databaseThe second example shows how you can use the Abaqus Scripting Interface to read an output database, manipulate the data, and display the results using the Visualization module in Abaqus/CAE. The Abaqus Scripting Interface allows you to display the data even though you have not written it back to an output database. The script does the following: Opens the tutorial output database. Creates variables that refer to the first and second steps in the output database. Creates variables that refer to the last frame of the first and second steps. Creates variables that refer to the displacement field output in the last frame of the first and second steps. Creates variables that refer to the stress field output in the last frame of the first and second steps. Subtracts the displacement field output from the two steps and puts the result in a variable called deltaDisplacement. Subtracts the stress field output from the two steps and puts the result in a variable called deltaStress. Selects deltaDisplacement as the default deformed variable. Selects the von Mises invariant of deltaStress as the default field output variable. Plots a contour plot of the result.The resulting contour plot is shown in Figure 33. Figure 33 The resulting contour plot.Use the following commands to retrieve the script and the output database that is read by the script:abaqus fetch job=odbExampleabaqus fetch job=viewer_tutorial3.2.1The example scriptodbExample.pyScript to open an output database, superimpose variablesfrom the last frame of different steps, and display a contourplot of the result.from abaqus import *from abaqusConstants import *import visualizationmyViewport = session.Viewport(name=Superposition example, origin=(10, 10), width=150, height=100)# Open the tutorial output database.myOdb = visualization.openOdb(path=viewer_tutorial.odb)# Associate the output database with the viewport.myViewport.setValues(displayedObject=myOdb)# Create variables that refer to the first two steps.firstStep = myOdb.stepsStep-1secondStep = myOdb.stepsStep-2# Read displacement and stress data from the last frame# of the first two steps.frame1 = firstStep.frames-1frame2 = secondStep.frames-1displacement1 = frame1.fieldOutputsUdisplacement2 = frame2.fieldOutputsUstress1 = frame1.fieldOutputsSstress2 = frame2.fieldOutputsS# Find the added displacement and stress caused by# the loading in the second step.deltaDisplacement = displacement2 - displacement1deltaStress = stress2 - stress1# Create a Mises stress contour plot of the result.myViewport.odbDisplay.setDeformedVariable(deltaDisplacement)myViewport.odbDisplay.setPrimaryVariable(field=deltaStress, outputPosition=INTEGRATION_POINT, refinement=(INVARIANT, Mises)myViewport.odbDisplay.display.setValues(plotState=(CONTOURS_ON_DEF,)3.2.2How does the script work?This section explains each portion of the example script. from abaqus import *from abaqusConstants import *These statements make the basic Abaqus objects accessible to the script as well as all the Symbolic Constants defined in the Abaqus Scripting Interface. import visualizationThis statement provides access to the commands that replicate the functionality of the Visualization module in Abaqus/CAE (Abaqus/Viewer). myViewport = session.Viewport(name=Superposition example)This statement creates a new viewport named Superposition example in the session. The new viewport is assigned to the variable myViewport. The origin and the size of the viewport assume the default values. odbPath = viewer_tutorial.odbThis statement creates a path to the tutorial output database. myOdb = session.openOdb(path=odbPath)This statement uses the path variable odbPath to open the output database and to assign it to the variable myOdb. myViewport.setValues(displayedObject=myOdb) This statement displays the default plot of the output database in the viewport. firstStep = myOdb.stepsStep-1secondStep = myOdb.stepsStep-2These statements assign the first and second steps in the output database to the variables firstStep and secondStep. frame1 = firstStep.frames-1frame2 = secondStep.frames-1These statements assign the last frame of the first and second steps to the variables frame1 and frame2. In Python an index of 0 refers to the first item in a sequence. An index of 1 refers to the last item in a sequence. displacement1 = frame1.fieldOutputsUdisplacement2 = frame2.fieldOutputsUThese statements assign the displacement field output in the last frame of the first and second steps to the variables displacement1 and displacement2. stress1 = frame1.fieldOutputsSstress2 = frame2.fieldOutputsSSimilarly, these statements assign the stress field output in the last frame of the first and second steps to the variables stress1 and stress2. deltaDisplacement = displacement2 - displacement1This statement subtracts the displacement field output from the last frame of the two steps and puts the resulting field output into a new variable deltaDisplacement. deltaStress = stress2 - stress1Similarly, this statement subtracts the stress field output and puts the result in the variable deltaStress. myViewport.odbDisplay.setDeformedVariable(deltaDisplacement) This statement uses deltaDisplacement, the displacement field output variable that we created earlier, to set the deformed variable. This is the variable that Abaqus will use to display the shape of the deformed model. myViewport.odbDisplay.setPrimaryVariable(field=deltaStress, outputPosition=INTEGRATION_POINT, refinement=(INVARIANT, Mises) This statement uses deltaStress, our stress field output variable, to set the primary variable. This is the variable that Abaqus will display in a contour or symbol plot. myViewport.odbDisplay.display.setValues(plotState=(CONTOURS_ON_DEF,)The final statement sets the plot state to display a contour plot on the deformed model shape. 3.3SummaryThe examples illustrate how a script can operate on a model in a model database or on the data stored in an output database. The details of the commands in the examples are described in later sections; however, you should note the following: You can run a script from the Abaqus/CAE startup screen when you start a session. After a session has started, you can run a script from

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论