精华内容
下载资源
问答
  • 但是打开新生成的odb文件时会报错,软件直接退出。代码和报错如下,请问是为什么呀。 <p style="text-align:center"><img alt="" height="1080" src=...
  • 1. 示例文件获取 在Abaqus Command 中输入 abaqus fetch job=viewer_tutorial

    1. 示例文件获取

    在Abaqus Command 中输入 ,然后会在工作目录中出现viewer_tutorial.odb.

    abaqus fetch job=viewer_tutorial

    2. 示例代码

    按照代码文件,在Abaqus命令行窗口,一行行输入命令。

    # ODb commands available
    from odbAccess import *
    from abaqusConstants import *
    
    # material and section Odb commands available
    from odbMaterial import *
    from odbSection import *
    
    # opening an output database
    odb = openOdb(path=r'C:\AbaqusWorkfile\test_pythonOdb\viewer_tutorial.odb')
    
    # Reading model data
    
    # The root assembly
    myAssembly = odb.rootAssembly
    
    # Part instance determine how many instances
    for instanceName in odb.rootAssembly.instances.keys():
      print instanceName
    
    # Regions: A Node set  An element set A surface
    
    for NodeSets in odb.rootAssembly.instances[
      'PART-1-1'].nodeSets.keys():
      print 'Node sets = ', NodeSets
    
    # dispaly the nodes sets and the element sets
    print 'Node sets = ', odb.rootAssembly.instances[
        'PART-1-1'].nodeSets.keys()
    print 'Element sets = ', odb.rootAssembly.instances[
        'PART-1-1'].elementSets.keys()
    
    # ssigns a variable (topNodeSet) to the 'TOP' node set in the PART-1-1 part instance:
    topNodeSet = odb.rootAssembly.instances['PART-1-1'].nodeSets['TOP']
    
    # Reading results data
    # Steps
    for stepName in odb.steps.keys():
      print stepName
    
    step1 = odb.steps.values()[0]
    print step1.name
    #Frames  the last frame
    lastFrame = odb.steps['Step-1'].frames[-1]
    
    # Reading field output data
    for fieldName in lastFrame.fieldOutputs.keys():
        print fieldName
    for fieldName in lastFrame.fieldOutputs.values():
        print fieldName
    
    # use the following to view all the available field data in a frame:
    # For each field output value in the last frame,
    # print the name, description, and type members.
    
    for f in lastFrame.fieldOutputs.values():
        print f.name, ':', f.description
        print 'Type: ', f.type
        # For each location value, print the position.
        for loc in f.locations:
            print 'Position:', loc.position
        print
    # Results
    # COPEN    TARGET/IMPACTOR: Contact opening
    # Type:  SCALAR
    # Position: NODAL
    
    # CPRESS   TARGET/IMPACTOR: Contact pressure
    # Type:  SCALAR
    # Position: NODAL
    
    # CSHEAR1  TARGET/IMPACTOR: Frictional shear
    # Type:  SCALAR
    # Position: NODAL
    
    # CSLIP1   TARGET/IMPACTOR: Relative tangential motion direction 1
    # Type:  SCALAR
    # Position: NODAL
    
    # LE: Logarithmic strain components
    # Type:  TENSOR_2D_PLANAR
    # Position: INTEGRATION_POINT
    
    # RF: Reaction force
    # Type:  VECTOR
    # Position: NODAL
    
    # RM3: Reaction moment
    # Type:  SCALAR
    # Position: NODAL
    
    # S: Stress components
    # Type:  TENSOR_2D_PLANAR
    # Position: INTEGRATION_POINT
    
    # U: Spatial displacement
    # Type:  VECTOR
    # Position: NODAL
    
    # UR3: Rotational displacement
    # Type:  SCALAR
    # Position: NODAL
    
    displacement = lastFrame.fieldOutputs['U']
    fieldValues = displacement.values
    
    mises = lastFrame.fieldOutputs['S']
    fieldValues1 = mises.values
    
    # For each displacement value, print the nodeLabel
    # and data members.
    
    
    for v in fieldValues:
        print 'Node = %d U[x] = %6.4f, U[y] = %6.4f' % (v.nodeLabel,
        v.data[0], v.data[1])
    
    for v in fieldValues1:
        print 'Element = %d Mises = %6.4f' % (v.elementLabel, v.mises)
    
    # lists all the members of a particular FieldValue
    fieldValues[1].__members__
    # The resulting output is
    # ['instance', 'elementLabel', 'nodeLabel', 'position',
    #  'face', 'integrationPoint', 'sectionPoint',
    #  'localCoordSystem', 'type', 'data', 'magnitude',
    #  'mises', 'tresca', 'press', 'inv3', 'maxPrincipal',
    #  'midPrincipal', 'minPrincipal', 'maxInPlanePrincipal',
    #  'minInPlanePrincipal', 'outOfPlanePrincipal']
    
    # Using regions to read a subset of field output data
    center = odb.rootAssembly.instances['PART-1-1'].nodeSets['PUNCH']
    # get displacement of subset
    # The arguments to getSubset are a region, an element type, a position, or section point data
    centerDisplacement = displacement.getSubset(region=center)
    centerValues = centerDisplacement.values
    
    for v in centerValues:
        print v.nodeLabel, v.data
    
    ## another example
    topCenter = \
        odb.rootAssembly.instances['PART-1-1'].elementSets['CENT']
    stressField = odb.steps['Step-2'].frames[3].fieldOutputs['S']
    
    # The following variable represents the stress at
    # integration points for CAX4 elements from the
    # element set "CENT."
    
    field = stressField.getSubset(region=topCenter,
                                  position=INTEGRATION_POINT, elementType='CAX4')
    # position argument  INTEGRATION_POINT NODAL ELEMENT_NODEL CENTROID
    fieldValues2 = field.values
    for v in fieldValues2:
        print 'Element label = ', v.elementLabel,
        if v.integrationPoint:
            print 'Integration Point = ', v.integrationPoint
        else:
            print
    # For each tensor component.
        for component in v.data:
    
      # Print using a format. The comma at the end of the
      # print statement suppresses the carriage return.
    
            print 'S = %10.5f' % component,
    
    # After each tuple has printed, print a carriage return.
    #     print
    
    ## write file and reading history outputdata
    from odbAccess import *
    step2 = odb.steps['Step-2']
    region = step2.historyRegions['Node PART-1-1.1000']
    u2Data = region.historyOutputs['U2'].data
    dispFile = open('disp.dat', 'w')
    for time, u2Disp in u2Data:
        dispFile.write('%10.4E   %10.4E\n' % (time, u2Disp))
    else:
        dispFile.close()
    
    
    
    

    3. 我的代码

    目的:用python将米勒指数从odb文件中提取出来。

    from abaqusConstants import*
    from odbAccess import*
    import os
    from textRepr import*
    import numpy as np
    myodb = openOdb(path=r'C:\AbaqusWorkfile\FIB\try-model-210601-1.odb')
    
    myFrames = myodb.steps["Step-1"].frames
    
    # ff = (["SDV52"]["SDV65"]["SDV78"]
    # ["SDV91"]["SDV104"]["SDV117"])
    sdv52field = myFrames[-1].fieldOutputs["SDV52"]
    
    
    elementSets = odb.rootAssembly.instances['PART-1-1'].elementSets
    bb = elementSets.keys()
    
    CRY = []
    for a in bb:
        cc = odb.rootAssembly.instances['PART-1-1'].elementSets[a]
        CRY.append(cc)
    
    
    field = []
    for a in CRY:
        dd = sdv52field.getSubset(region=a,
                                  position=INTEGRATION_POINT, elementType='C3D8R')
        field.append(dd)
    
    average = []
    
    for a in field:
        fieldValues = a.values
        temp1 = []
        for v in fieldValues:
            temp1 = []
            for value in fieldValues:
                temp1.append(value.data)
        ee = np.mean(temp1)
        average.append(ee)
    
    average = np.array(average)
    np.savetxt(r"C:\AbaqusWorkfile\test_pythonOdb\miller.txt", average, fmt="% .10f")
    

     

    展开全文
  • 用py程序提取abaqus计算结果odb文件中的点集的结果数据。 本程序以顶面(TOP)的反力(RF)为例。
  • 目前在用ABAQUS做参数化的模型,会计算生成很多odb文件。如果说全部计算完毕,再一个一个用ABAQUS读取脚本,提取数据,就非常耗时,耗电脑内存。 现在想做的一点就是如何在计算完毕之后,自动拾取odb文件,并打开odb...
  • Abaqus中输出场文件odb的数据结构及Python读取

    万次阅读 多人点赞 2017-10-16 15:41:26
    Abaqus所生成的Odb文件对象,包含了我们建模中的模型信息,比如:part;assembly;material;section;profiles;interaction等模型信息;在考虑结果数据的情况下,我们可以把Odb对象与Model对象相对比看,他们包含了...

    Abaqus所生成的Odb文件对象,包含了我们建模中的模型信息,比如:part;assembly;material;section;profiles;interaction等模型信息;在不考虑结果数据的情况下,我们可以把Odb对象与Model对象相对比开看,他们包含了有限元模型的大部分信息,Odb对象的成员信息如下:
    这里写图片描述

    下面是一个小实例,读取odb文件中的模型信息:

     o = session.openOdb(name='HertzContact.odb',readOnly = False)#通过已有odb文件来创建Odb对象
    >>> p = o.parts#获取访问odb对象中的part仓库
    >>> print p 
    {'ASSEMBLY': 'Part object', 'BALL': 'Part object', 'BASE': 'Part object'}
    >>> m = o.materials#访问材料仓库
    >>> print m
    {'STEEL': 'Material object'}
    >>> print m.keys
    <AbaqusMethod  session.openOdb(r'C:/windows/system32/HertzContact.odb').models['Default Model'].materials.keys>
    >>> m0 = m[m.keys()[0]]
    >>> print m0.name
    STEEL
    #获取材料的模型键值对信息
    >>> print m0.density.table
    ((7.9e-09,),)
    >>> print m0.elastic.table
    ((210000.0, 0.3),)
    >>> print m0.elastic.type
    ISOTROPIC

    下面我们通过构造函数对odb对象进行操作:新建材料对象和属性

    #在当前odb对象o中创建Newsteel的新材料属性对象
    m1 = o.Material(name='NewSteel')
    #为m1添加密度对象参数
    >>> m1.Density(table=((7.9e-09,),))
    session.openOdb(r'C:/windows/system32/HertzContact.odb').models['DefaultModel'].materials['NewSteel'].options['density']
    #为m1添加弹性对象属性
    >>> m1.Elastic(table=((210000.0,0.3),),type=ISOTROPIC)
    >>> print m.keys()
    ['NewSteel', 'STEEL']#已经创建到材料库中

    一、网格信息
    从Odb结果文件中,我们可以得到就有独立网格部件的model对象,这是因为Odb对象存储了模型的基本网格组织信息,Odb对象中的孤立网格信息存在于rootAssembly对象。rootAseembly是odbAssembly的实例对象。
    其中rootAssembly对象中具有以下的信息:
    rootAssembly对象成员信息

    以上各属性的访问方式充分体现面向对象的编程思想,通过实例化类的实例来调用对象的属性,和属性值。
    另外一部分就是结果信息,而Odb对象中的结果数据都是保存在steps对象仓库中;分为场变量结果(fieldOutputs)和历史变量结果(historyOutputs);

    Odb的模型数据结构在参考手册的图解为:
    这里写图片描述

    根据图解路径所示,我们要访问Odb文件中的场输出数据就必须指定正确的访问路径和场路径索引;
    如:
    odb.steps[].frames[].filedOutputs[].values[]
    odb.historyRegions[].historyOutput[]
    其中‘[ ]’中我们可以指定具体的名称或者索引值。

    一:场变量数据的对象信息:


    这里写图片描述


    二,应用实例:读取odb文件中的节点和坐标

    # -*- coding: mbcs -*-
    import os, os.path, sys
    from odbAccess import *
    from abaqusConstants import *
    def extractNodes(odbname, tname, tpath=None):
        if tpath==None:
            tpath = os.getcwd()
        tname = tname + '.inp'
        oname = odbname+'.odb'
        tFile=os.path.join(tpath,tname)
        oPath=os.path.join(tpath,oname)
        f = open(tFile, 'w')
        o = openOdb(path=oPath)
        instes = o.rootAssembly.instances
        for key in instes.keys():
            labels, xyz = [], []
            for node in instes[key].nodes:
                labels.append(node.label)
                xyz.append(node.coordinates)
            cc = dict(zip(labels, xyz))
            aa = sorted(labels)
            bb = [cc[item] for item in aa]
            f.write('*Instance '+instes[key].name+'\n')
            for i in range(len(aa)):
                tepS = str(aa[i])+', '+str(bb[i][0])+', '+str(bb[i][1])+', '+\
                str(bb[i][2])+'\n'
                f.write(tepS)
        f.close()
        o.close()
    
    if __name__=="__main__":
        extractNodes(odbname='HertzContact', tname='hertzcontact')
    展开全文
  • abaqus版本众多,有些下载inp文件因版本过低导致无法打开,这里介绍一种使用低版本打开高版本的方法
  • 图1 金属长方体约束加载示意图01Python库导入声明对于图上的命令流,我们分为几部分拆开研究,首先是下面第一部分需要在Abaqus导入相关Python库的代码,比如matplotlib库、numpy库、xlwt库和math库。#! /user/bin/py...

    一个金属长方体,我们需要对其做拉伸的加载约束示意图如图1,并在完成后采用Python命令流读取参考点的位移、体积、应变随加载时间的变化情况。

    图1 金属长方体约束加载示意图

    01

    Python库导入声明

    对于图上的命令流,我们分为几部分拆开研究,首先是下面第一部分需要在Abaqus导入相关Python库的代码,比如matplotlib库、numpy库、xlwt库和math库。

    #! /user/bin/python

    # -*- coding:UTF-8 -*-

    import matplotlib.pyplot as plt

    import numpy as np

    from visualization import *

    from odbAccess import *

    import xlwt

    import math第3行导入Python经常用于绘图的matplotlib库;

    第4行导入Python处理数组矩阵的numpy库;

    第5行和第6行用于导入Abaqus的后处理功能,即visualization和odbAccess;

    第7行用于导入Python与excel进行交互的xlwt库;

    第8行用于导入Python的math库。

    在利用Python生成excel数据之前,先采用一个getInputs函数(代码如下)生成图2所示的对话框与用户进行交互,需要用户在在其中输入模型的名字(model name),部件例子的名字(instance name)以及后处理odb的名字(odbname)。这样做有个好处,每次都可以根据不同模型、不同部件实例和相应的后处理odb名字进行相应结果提取。

    modelName,instanceName,odbname= getInputs(

    fields=(('Model Name:', 'Test'),('Instance Name:', 'Part-2-1'),('odbname:', 'TEST.odb')),

    label='Enter information', dialogTitle='Enter information.')

    图2 getInputs函数生成的对话框

    02

    计算初始边长

    node = mdb.models[modelName].rootAssembly.instances[instanceName].nodes

    Xmin = 9999

    Xmax = -9999

    Ymin = 9999

    Ymax = -9999

    Zmin = 9999

    Zmax = -9999

    for i in range(len(node)):

    x = node[i].coordinates[0]

    y = node[i].coordinates[1]

    z = node[i].coordinates[2]

    if Xmin > x:

    Xmin = x

    elif Xmax < x:

    Xmax = x

    if Ymin > y:

    Ymin = y

    elif Ymax < y:

    Ymax = y

    if Zmin > z:

    Zmin = z

    continue

    if Zmax < z:

    Zmax = z

    continue

    print 'Xmin,Xmax,Ymin,Ymax,Zmin,Zmax=',(Xmin, Xmax, Ymin, Ymax, Zmin, Zmax)

    CubeWidth=abs(Xmax-Xmin)

    # the length of model along x directionCubeHeight=abs(Ymax-Ymin)

    # the length of model along y directionCubeLength=abs(Zmax-Zmin)

    # the length of model along z direction第1行基于之前输入的modelname,instancename来调用部件实例(instance)的节点。

    第8行for i in range(len(node)):表示对每个节点进行循环,每次循环中都要提取该节点的x,y,z坐标信息。

    Xmin,Xmax为通过循环找出X方向的最小、最大X坐标,Ymin、Ymax以及Zmin、Zmax都同理。计算这部分的代码可能大家表面无法直接看懂理解,我举一个例子好了。

    例子:对于第12行到第15行,比如当i=0时,随便提取了第1个节点的x,y,z信息(0,0.1,0.2),由于Xmin=9999>x=0,所以x=0赋予Xmin;同样的,当i=1时,又随便提取模型的一个节点(0.05,0.1,0.2),由于现在Xmin=0x=0.06,则Xmin和Xmax则处于不变,因为x在这两者之间,因此通过以上程序就可以找出模型在x方向的最大值和最小值(结果见图3),然后最大值减去最小值则得到了模型沿x方向的长度。同样的方式得到模型沿y方向和z方向的长度。

    图3 查看Xmin、Xmax、Ymin、Ymax、Zmin、Zmax

    另一方面,我们可以如图4进行相应验证,我们先查看下模型在x方向的宽度,在Abaqus中的query中选取distance,然后选中模型中的两个点,可以看到这两个点的坐标是point1(0,0.1,0.2),point2(0.1,0.1,0.2),则两点之间在x方向的距离为0.1,即为模型的宽度(模型沿x方向的长度)。Abaqus模型计算的结果与之前程序计算的结果相互验证了。

    图4 查看模型在x方向的宽度

    03

    用python将位移导入excel

    odb=openOdb(path=odbname)

    wbkName='NodalDisplacement'

    wbk1=xlwt.Workbook()

    sheet=wbk1.add_sheet('Sheet1')

    RefPointSet=odb.rootAssembly.nodeSets['U-XYZ']

    frameRepository=odb.steps['Step-1'].frames

    for i in range(3):

    sheet.write(0,i,('U'+str(i+1)+'(U-XYZ)'))

    第1行表示打开odb计算结果文件。

    第2行表示生成的excel文件名为NodalDisplacement。

    第3行和第4行表示添加Sheet1工作表。

    第5行建立节点SetU-XYZ,方便后续对该Set进行位移提取。

    第6行表示Step-1里的帧(frames)对象。

    第7行和第8行通过循环在excel第1行第i列(也就是代码中的0,i),写入U1(U-XYZ),U2(U-XYZ),U3(U-XYZ),如图5所示,其中Python编程用+可以实现字符连缀,str(i)可以将数字变量i改为字符i。

    iframes=len(frameRepository)

    RefDataU1= np.zeros((iframes,1))

    RefDataU2= np.zeros((iframes,1))

    RefDataU3= np.zeros((iframes,1))

    jingdu=15

    for i in range(iframes):

    U=frameRepository[i].fieldOutputs['U']

    RefU=U.getSubset(region=RefPointSet)

    RefUValues=RefU.values

    RefDataU1[i]=RefUValues[0].data[0]

    sheet.write(i+1,0,round(RefDataU1[i],jingdu))

    RefDataU2[i]=RefUValues[0].data[1]

    sheet.write(i+1,1,round(RefDataU2[i],jingdu))

    RefDataU3[i]=RefUValues[0].data[2]

    sheet.write(i+1,2,round(RefDataU3[i],jingdu))

    wbk1.save(wbkName+'.xls')

    第一行是统计frames的帧数。

    第2行到第4行基于numpy定义三个数组存储三个方向的位移,并事先赋予初值零。

    第5行设置一个变量,方便用于控制输出到excel里数的精度。

    第6行到第15行就是通过for循环,一帧一帧地输出U-XYZ这个点Set的三个方向的位移值,并存储到excel。U-XYZ这个点Set如图5所示。

    图5 U-XYZ点Set

    对于第7行表示提取该帧的位移U的场变量并赋值给U,然后在第8行采用getSubset基于U提取RefPointSet区域的位移值。

    图6在ABAQUS命令行接口(基于Python的Abaqus静力分析操作实例)表示的应该是最后一次循环后各变量的值,可以看出RefU表示的nodeSets['U-XYZ']的位移值,图6中显示为一个索引;而RefUValues则表示该节点集中每个节点的位移值,体现在values中;而values[0]表示第一个节点的位移值,由于存在三个方向的位移,U1,U2,U3,则后续通过data[0],data[1],以及data[2]分别表示三个方向的位移值。

    图6 运行相关结果查看(通过ABAQUS命令行接口)

    特别的,由于U-XYZ只有一个点存在于Set中,如果我们在这里用values[1],看会出现什么样的效果?如图7。可以明显看到Sequence index out of range表示超出了范围,因为RefUValues[1]表示提取第二个节点,但我们这里只有一个节点存在于U-XYZ点Set中,所以出现了范围超过的报错提示。

    图7 可以存在RefUValues[1]吗?(通过ABAQUS命令行接口)

    需要说一下的,如果大家觉得ABAQUS命令行接口的查看范围太窄,可以往上拉动窗口,这样就可以看到更多的代码,如图8所示,但与之相反的就是模型就会显得很小,与我们一般的常规abaqus操作有点相反。

    图8 ABAQUS命令行接口显示更多的内容

    再对代码中的Python round函数做个说明,通过下面的例子我们可以看到round函数是四舍五入函数,一般为四舍五入后为整数,round(a,b)中的a为需要进行四舍五入的数,而b为需要保留的小数位数,如图9所示。

    图9 关于Python round 函数的例子

    最后就是第17行代码,这个代码也很重要,不输入这个代码就不会生成excel表,一般生成excel位置为设置好的工作目录(比如D:\temp),生成好的excel如图10所示。而excel总共有625行,说明一共有625帧,也就是上述代码的变量iframes为625。

    图10 生成的NodalDisplacement.xls的excel文件

    04

    结果验证

    将上述excel表格中的结果绘制成曲线,即U-XYZ点三个方向的位移随帧数变化的曲线,如图11所示。根据图12,再结合odb文件中的变形图(第623帧)可以判断U-XYZ点在后期的X(U1)为负,Y(U2)为正,Z(U3)为正,与图11曲线是一致的。

    图11 U-XYZ点三个方向的位移随帧数变化的曲线

    图12 模型后处理结果图(第623帧)

    最后再与在Abaqus里进行GUI(即点点点)对U-XYZ三个方向位移处理的结果图进行对比,即通过XY Data对U-XYZ三个方向的位移进行输出绘图,注意到坐标轴为时间,与Python后处理图11的帧数是一一对应的。可以知道,Python后处理结果与ABAQUS的GUI操作得到的结果几乎完全一致。

    图13 Abaqus里进行GUI操作的后处理结果(关于U-XYZ三方向位移)

    该模型关于体积、应变、应力等方面(包括场输出和历史输出)的Python导入excel的后处理留在下期,敬请关注。

    最后,欢迎大家通过微信公众号联系我们。

    微信公众号:320科技工作室。

    同时,更多ABAQUS二次开发的精彩内容,欢迎大家关注微信公众号: 土木科研编程与数值模拟

    展开全文
  • ABQ提取模型和應力Prepared by :Adam YuDate : 2013/01/17ABQ提取模型和應力Utility: 通過ABQ得到ODB中變形后的模型數據以及應力數據,作為後續分析的initial conditions。可應用于諸如從drop的結果中某一特定...

    ABQ提取模型和應力

    Prepared by :Adam Yu

    Date : 2013/01/17

    ABQ提取模型和應力

    Utility: 通過ABQ得到ODB中變形后的模型數據以及應力

    數據,作為後續分析的initial conditions。可應

    用于諸如從drop的結果中某一特定component

    的變形模型和應力,作為後續分析的initial con-

    ditions。

    ABQ提取模型和應力

    Step1 配置插件:

    將附件中的Extract_model.py及Extract_model_plugin.py複製到

    installation_directory\Abaqus610ef\6.10EF1\abaqus_plugins

    目錄下,并打開abaqus。

    ABQ提取模型和應力

    Step2 抽取模型節點和單元數據:

    輸入odb文件路徑

    點擊 輸入需要保存的inp文

    件名(不加擴展名)

    輸入需要提取的frame ,可為任意

    frames(-1表示最後一frame)。

    抽取模型基本數據。

    ABQ提取模型和應力

    Step3 抽取應力數據:

    輸入odb文件路徑

    輸入需要保存的inp文

    點擊 件名(不加擴展名)及step

    輸入需要提取的frame ,可為任意

    frames(-1表示最後一frame)。

    抽取應力數據。

    ABQ提取模型和應力

    Step4 使用HM建模:

    導入beam_Model.inp

    ABQ提取模型和應力

    Step5 編輯inp :

    添加關鍵詞:

    *INCLUDE,INPUT=beam_InitialCondition.inp

    用編輯器打開HM建模完

    成後的模型。

    提交job

    ABQ提取模型和應力

    Step6 查看結果:

    如需进行结构分析、热传、锻压、

    模流、以及hyperworks和abaqus

    二次开发请联系QQ: 2906077684

    展开全文
  • 可以有两种方法:1 直接使用abaqus软件CAE操作产生的rpt文件,具体程序为:from abaqus import *from abaqusConstants import *import numpy as npN_label='264140'odb_file_name='temp.odb'file_name_save='abaqus_...
  • 原标题:Abaqus-利用python处理有多个instances的odb文件,得到inp模型数据用于前处理在一些情况下,odb文件中包含有多个instances,instances之间会有节点和单元是重合。很多情况下需要得到该odb模型数据,并将其...
  • ABAQUS保存绘制的曲线到ODB

    千次阅读 2018-10-07 16:19:00
    在后处理之中绘制完成曲线后,右键曲线,通过Copy to ODB选项复制到ODB中, 若使用默认方式打开ODB,则在此处会报错,因为ODB打开时选择了只读。 此时关闭当前ODB,重先打开该ODB,打开时不要选勾选中“Read Only...
  • 1.refer to URL:http://ifcuriousthenlearn.com/blog/2015/04/02/Abaqus-FEA-Scripting-with-python/#Beam_Example_Code 2.The demo of beam  code: """ beamExample.py Reproduce the cantilever beam example
  • 我可能错了,但是没有办法调用某个方法来替换odb中的现有值。但是,您可以做的是创建一个新的步骤和帧(或者只是现有步骤中的一个帧),然后使用新值创建一个新的field output对象。在如果您能接受这种方法,请查看...
  • ABAQUS产生几类文件:有些是在运行是产生,运行后自动删除;其它一些用于分析、重启、后处理、结果转换或其它软件的文件则被保留,详细如下:1. model_database_name.cae模型信息、分析任务等2. model_database_name...
  • 创建或多或少空白的odb的另一种方法是使用“datacheck”选项向Abaqus服务器提交一个新的分析。但是这个odb仍然包含来自输入文件的步骤,但是没有帧。在要去掉这些步骤,您需要提交一个没有*step/*end step关键字的...
  • 基于Python的ABAQUS二次开发在飞机蒙皮锤铆中的应用在飞机蒙皮铆接技术中,锤铆是用一个小冲击力循环累计施加到铆钉使之变形的过程。根据锤铆铆接工艺和铆枪结构原理,铆钉的塑性变形是由铆枪的活塞循环碰撞冲锤而多...
  • 使用abaqus.odb文件在Fe-safe中进行疲劳分析 (2015-04-13 08:36:06) 转载 标签? \t "/s/_blank" it ? \t "/s/_blank" 产品开发 ? \t "/s/_blank" 仿真 ? \t "http:/
  • tecplot360 2015 R1读abaqus后处理文件

    千次阅读 2019-11-04 16:54:40
    tecplot360 2015 R1读abaqus后处理文件odb报错,尝试用fil 解决问题: [分析处理] ABAQUS生成fi|文件详细步骤inp转换fil ABAQUS结合疲劳分析软件fe -safe或者fatigue进行疲劳分析,要导入ABAQUS分析结果生成的文件...
  • 您需要创建xydata:session.xyDataListFromField(odb=odb,outputPosition=ELEMENT_NODAL,variable=(( 'S', INTEGRATION_POINT), ),elementSets=('PART-1-1.SETNAME', ))这将为每个元素的每个节点和每个应力分量(即...
  • 谢谢来信,数据量小,是提取各个单元的损伤值。600帧时内存就用到2G了。下面是耗内存的代码段。谢谢了!odb_SequenceFrame&allFramesInStep=curstep.frames();intnumFrames=allFramesInStep.size();for...
  • abaqus里调用python模块的问题可能abaqus自带有sqlite3,与python2.6所带sqlite3有冲在import时,优先搜索了abaqus自带的sqlite3了。可以在import sqlite3,先指定正确的sqlite3所在位置:比如是c:\\python26\\lib\\...
  • ABAQUS Python Script中Odb处理手册1 Odb操作命令:1.1 Odb对象1.1.1进入Odb对象的途径import odbAccesssession.odbs[name]1.1.2 Odb()该方法创建一个新的Odb对象,格式为:session.Odb()A.必须参数1)name:用于指定...
  • 这是报错提示。我的abaqus版本是6.14-4,nCode版本是2018win32位。有朋友可以提供一下解决办法吗?
  • AbaqusODB2Pavaview python脚本将ODB格式的Abaqus结果转换为vtk格式,在Paraview中可以为红色
  • 利用abaqus解决地应力平衡利用abaqus解决地应力平衡
  • 您能给解答一下吗?我的abaqus版本是6.14-4,nCode是2018。
  • abaqus里如何修改odb里图例字体大小

    千次阅读 2018-11-23 15:22:12
    工具栏viewport&amp;gt;viewport annotation options&amp;gt;legend(选项卡)&amp;gt;text(选项)&...size,修改size选项中的数字,就可以修改图例大小了。...如果保存到Home下,设置文件
  • abaqus odb文件转化为vtk文件
  • 利用Python对Abaqus进行后处理结果输出-----中大_戚超_2016.10.31概述在Abaqus的二次开发过程中,通常需要采用Python脚本语言将Abaqus的计算结果进行输出,然后再进行处理。Python使Abaqus的内核语言,使用较为方便...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 269
精华内容 107
关键字:

abaqus打不开odb文件

友情链接: Screen.rar