许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  ABAQUS Python终止:Abaqus命令提示符索引器中脚本中止错误1

ABAQUS Python终止:Abaqus命令提示符索引器中脚本中止错误1

阅读数 8
点赞 0
article_banner

我得到错误IndexError: -1

我试图在命令提示符下运行Python脚本。当我在Abaqus CAE中运行它时,它是有效的。当我尝试使用不带GUI的命令提示符运行时,我得到了错误。在

我可以完成这项工作,但我的脚本也会打开输出数据库。在这一步出现错误。在

我试过在谷歌上搜索,但没有变得更聪明。这在Python中通常意味着什么?为什么我的脚本在abaqus中工作,但命令提示符只运行了一半?在

谢谢你!在from time import gmtime, strftime

import time, os

from abaqus import *

from part import *

from material import *

from section import *

from assembly import *

from step import *

from interaction import *

from load import *

from mesh import *

from job import *

from sketch import *

from visualization import *

from connectorBehavior import *

from odbAccess import *

mdb = openMdb(pathName='X:\MinPreload-VaryingBC')

modelName = 'minPreload'

cMdb = mdb.models[modelName]

date = strftime("%Y-%d-%b", gmtime())

logPath_bu = 'C:\Users\yyt\maxMin-%s.txt' %date

logObj_bu = open(logPath_bu, 'a')

TopOfThePage = 'JobName\tCFNM at Preload\tTime Finished\tPreload\n\n'

logObj_bu.write(TopOfThePage)

logObj_bu.close()

output = open('C:\yyt\Output-%s.txt' %date, 'a')

output.write('Job \t\t\t'+'PS723\t\t'+'PS721\t\t'+'PL\t\t'+'FRIC\n\n')

output.close()

jobName = ""

maxCf = 0.0

#Temperature

minTemp = -49

maxTemp = 101

temperature = [minTemp, maxTemp]

bcTemp = 'Temperature'

#Friction

friction = [0.1, 0.1, 0.2, 0.2, 0.3, 0,3, 0.4, 0,4, 0.5, 0.5]

interactionProperty = 'Contact Seal Coupler'

#PressureSwitcher

Pressure = True

internalPressure = 76

cMdb.loads['IP'].resume('Pressure')

internalPressBC = cMdb.loads['IP']

setInternalPressureBC = internalPressBC.setValues(magnitude=internalPressure)

externalPressure = 33

cMdb.loads['ExtP'].resume('Pressure')

externalPressBC = cMdb.loads['ExtP']

setExternalPressureBC = externalPressBC.setValues(magnitude=externalPressure)

# Preload

adjustedPreload = 0

PLipht = 10

PLiplt = 10

PLextpht = 10

PLextplt = 10

for temp in temperature:

output = open('C:\yyt\Output-%s.txt' %date, 'a')

output.write('\n')

output.close()

tempBC = cMdb.boundaryConditions[bcTemp]

setTemp = tempBC.setValues(magnitude=temp)

if temp == minTemp:

adjustedPreload = 0.10315

else:

adjustedPreload = -0.21288

for fric in friction:

tangProp = cMdb.interactionProperties[interactionProperty].tangentialBehavior

tangProp.setValues(table=((fric,),))

if Pressure:

cMdb.loads['IP'].resume('Pressure')

cMdb.loads['ExtP'].suppress('Pressure')

press = 'IP'

else:

cMdb.loads['ExtP'].resume('Pressure')

cMdb.loads['IP'].suppress('Pressure')

press = 'ExtP'

if temp == maxTemp and Pressure:

PLi = PLipht

elif temp == minTemp and Pressure:

PLi = PLiplt

elif temp == maxTemp and Pressure:

PLi = PLextpht

elif temp == minTemp and Pressure:

PLi = PLextplt

for PL in range (PLi, 100):

axPL = float(PL)/100

preloadBC = cMdb.boundaryConditions['axial_move']

setPreloadBC = preloadBC.setValuesInStep('Pre', u2=axPL)

clampBC = cMdb.boundaryConditions['clamp']

modifyBottomCoupler = clampBC.setValuesInStep('Temp', -adjustedPreload )

setPreloadBC = preloadBC.setValuesInStep('Temp', u2=(axPL+adjustedPreload))

#Create a job

fricInt = fric*10

jobName = date + '_%dC-0_%df-%s-0_%dPLl' %(temp, fricInt, press, PL)

mdb.Job(model=modelName, name=jobName)

#submit Job

mdb.jobs[jobName].submit(consistencyChecking=OFF)

#Wait for job to complete

status = str(mdb.jobs[jobName].messages[-1].type)

mdb.jobs[jobName].waitForCompletion()

#Collect data from job

lastStepName = 'Pressure'

odb = session.openOdb(name=jobName+'.odb')

region = odb.steps[lastStepName].historyRegions['NodeSet Z000002']

region2 = odb.steps[lastStepName].historyRegions['NodeSet Z000001']

CFNM1 = region.historyOutputs['CFNM ASSEMBLY_SLAVEBOT/ASSEMBLY_MASTERBOT'].data

CFNM2 = region2.historyOutputs['CFNM ASSEMBLY_SLAVESURFTOP/ASSEMBLY_MASTERTOP'].data

for i, var in enumerate(CFNM1):

if i == len(CFNM1) - 1:

maxCf1 = var[-1]

print str(maxCf1) + 'CFNM1 724/723'

for i, var in enumerate(CFNM2):

if i == len(CFNM2) - 1:

maxCf2 = var[-1]

print str(maxCf2) + 'CFNM2 722/721'

output = open('C:\yyt\Output-%s.txt' %date, 'a')

output.write(jobName+'\t\t'+str(maxCf1)+'\t\t'+str(maxCf2)+'\t\t'+'0.'+str(PL)+'\t\t'+str(fric)+'\n')

output.close()

if maxCf1 >= 10000 and maxCf2 >= 10000:

time_done = strftime("%H:%M:%S", gmtime())

logObj_bu = open(logPath_bu, 'a')

logObj_bu.write(jobName+'\t'+' CFNM1 = ' + str(maxCf1)+' CFNM2 = ' + str(maxCf2)+'\t' + time_done + '%d\n\n' %PL)

logObj_bu.close()

Pressure = not Pressure

if temp == maxTemp and Pressure:

PLipht = axPL-0.02

elif temp == minTemp and Pressure:

PLiplt = axPL-0.02

elif temp == maxTemp and Pressure:

PLextpht = axPL-0.02

elif temp == minTemp and Pressure:

PLextplt = axPL-0.02

break

我得到了什么

^{pr2}$



免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空