2014-04-01 145 views
1

我試圖通過命令行將變量傳遞給abaqus腳本文件(.psf)。每次執行另一個腳本時都會執行命令行調用,並且每次調用中的變量都有不同的值。在這方面,我可以在使用的命令語法方面提供幫助。我試過os.systemsubprocess.Popen,都出現了某種錯誤。使用abaqus將變量傳遞給python腳本文件python 2.6.2

在我的主要腳本(.py文件),它會調用.psf

Xa=150000 
abaqusCall = 'abaqus script=tt_Par.psf' 
runCommand = 'cmd.exe /c ' + abaqusCall 
process = subprocess.Popen(runCommand, cwd=workDir, args=Xa) 

和.psf

它接受變量這種格式..

import sys,os 
    for item in sys.argv 
     x1 = sys.argv[0] 
     x2 = sys.argv[1] 
     print x1,x2 

誰能給在這方面的方向?

謝謝你提前

回答

0

試試這個。我不知道psf文件是什麼,但我只是使用py文件。

def abaqus_cmd(mycmd): 
    ''' 
    used to execute abaqus commands in the windows OS console 
    inputs : mycmd, an abaqus command 
    ''' 
    import subprocess, sys 
    try: 
     retcode = subprocess.call(mycmd,shell=True) 
     if retcode < 0: 
      print >>sys.stderr, mycmd+"...failed during execution", -retcode 
     else: 
      print >>sys.stderr, mycmd+"...success" 
    except OSError as e: 
     print >>sys.stderr, mycmd+"...failed at execution", e 

運行一個簡單的命令來完成這一

abaqus_cmd('abaqus fetch job=beamExample') 

傳遞變量,但是你可以做到這一點

odbfile = 'test.odb' 
abaqus_cmd('abaqus python odb_to_txt.py '+odbfile) 

,這僅僅是在ABAQUS一個Python實例,你不能訪問這裏是abaqus的核心。要訪問abaqus核心,您需要像這樣運行腳本。

abaqus_cmd('abaqus cae noGUI=beamExample.py') 

I HAVE NOT 想出如何變量傳遞到在ABAQUS內核腳本,請參閱我的評論

+0

還檢查了http://stackoverflow.com/questions/22750272/can-i-傳遞命令行-參數到ABAQUS-蟒?全息= 1#28773379 – nagordon