Мне нужно преобразовать скрипт Python, разработанный в ABAQUS PDE, в исполняемый файл.

Я хочу преобразовать скрипт Python в исполняемый файл. Этот скрипт Python вызовет другой скрипт Python, что является требованием.

Скрипт:

from abaqus import *
from abaqusConstants import *
import __main__
import allAbaqusMacros

def Macro1():

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
import os

execfile('C:\\\\Users\\\\Me\\\\Desktop\\\\Sample.py')""") - This also works

Однако код работает только в ABAQUS PDE (аналогично редактору VBA в Excel).

Чтобы отслеживать использование нескольких скриптов Python, я делаю это. Я знаю, что мы можем запустить его из File->RunScript или в CLI с помощью команды Abaqus. Но это не требование.

Я хочу его в виде файла, который будет запускать другой нужный скрипт одним щелчком мыши. Кроме того, я попробовал его как пакетный файл для запуска в командной строке.

Пакетная команда:

"C:\SIMULIA\Abaqus\6.14-3\code\bin\abq6143.exe" cae script =C:\Users\Me\Desktop\Sample.py %*

Это работает, но начинается новый сеанс. Я использовал «noGUI» вместо скрипта, но

Я получаю это сообщение об ошибке

getInputs cannot be used with the -noGUI option.

Кроме того, я попытался запустить его, используя приведенную ниже команду.

C:\Python27\python.exe C:\Users\Me\Desktop\Sample.py

Для этого сообщение об ошибке было

Traceback <most recent call last>:
  File "C:\Users\Me\Desktop\Sample.py", line 1, in <module>
    from abaqus import *
  File "SMAPyModules\SMAPyaAbqPy.m\src\abaqus.py", line 5 in <module>
  File "SMAPyModules\SMAPyaUtilsPy.m\src\i18n.py", line 1 in <module>
  File "SMAPyModules\SMAPyaUtiPy.m\src\uti.py", line 5 in <module>
  File "SMAPyModules\SMAPyaUtiPy.m\src\utiinternal.py", line 52 in <module>
  File "SMAPyModules\SMAPyaUtiPy.m\src\uticty.py", line 145 in <module>
  File "SMAPyModules\SMAPyaUtiPy.m\src\uticty.py", line 136 in _loadAbaqusDll
Value Error : dll not found : ABQSMABasShared.dll

Press any key to contuinue...

Есть ли способ преобразовать сценарий Python, разработанный в Abaqus PDE или любой среде разработки подключаемых модулей, в исполняемый файл? Пожалуйста помоги


person imran khan    schedule 10.07.2017    source источник


Ответы (1)


API Abaqus/Python полезен для различных целей, включая задачи предварительной и последующей обработки, создание графического интерфейса и создание макросов. Я вижу, что вы только начинаете и действуете в соответствии с рядом неправильных представлений, поэтому я мягко подтолкну вас к внимательному чтению официальной документации, которая очень полно отвечает на все ваши вопросы и многое другое1.

Однако, поскольку в этих документах может показаться, что нужно усвоить довольно много информации, я попытаюсь дать вам несколько полезных советов для начала.

  1. Вы не можете получить доступ к модулям Abaqus, используя только стандартную установку Python, как вы пытались с помощью команды python file_name.py.
  2. Вы можете запускать общие скрипты Python из системной оболочки (например, CMD или Bash), используя тот же Python, связанный с Abaqus, используя abaqus python [file_name.py].
  3. Вы можете запустить интерактивный сеанс Python из системной оболочки, если наберете только abaqus python. Обратите внимание, что это не является частью процесса ядра Abaqus — это означает, что вы не можете импортировать никакие модули, связанные с Abaqus, таким образом, но стандартная библиотека Python должна быть доступна.
  4. Модули Abaqus требуют доступа к ядру CAE (и лицензии), если требуемый объект/функциональность предоставляется через базу данных модели (Mdb). Вы можете вызывать такие сценарии из системной оболочки, используя abaqus cae file_name.py. Эта команда запускает новый сеанс CAE и запускает ваш сценарий.
  5. Вы можете запустить сценарий, который обращается к ядру CAE без запуска нового сеанса CAE, используя альтернативу: abaqus cae noGUI=file_name.py.
  6. Некоторые функции недоступны без графического сеанса CAE, например getInputs, поскольку для этого требуется всплывающее окно с графическим интерфейсом.
  7. Вместо этого вы можете передать аргументы командной строки из системной оболочки, например: abaqus cae noGUI=MyScript.py -- value1. Вы можете использовать столько аргументов командной строки, сколько хотите. В качестве альтернативы поместите аргументы в файл и откройте/прочитайте файл из скрипта.
  8. Вам нужно будет импортировать соответствующие модули. Например, вам больше не нужно import __main__. Если возникают ошибки, трассировка Python обычно сообщает вам, что не так.
  9. Вы можете поместить команды выполнения Abaqus в пакетный скрипт, если хотите, чтобы запустить его двойным щелчком.
  10. Вместо execfile вы можете использовать функции/объекты в других скриптах Python с оператором import. Например, from File_A import function1, from File_B import function2 и т. д. Эти импортированные скрипты Python обычно называются модулями.

Эти подсказки должны помочь вам начать работу, но помните, что это, так сказать, только верхушка айсберга. Для получения дополнительной информации о вариантах выполнения и подробностях см. Руководство пользователя Abaqus Analysis > Введение, пространственное моделирование и выполнение > Выполнение задания > Процедуры выполнения.

1В частности, см. Руководство пользователя Abaqus Analysis для получения инструкций о том, как вызывать/выполнять скрипты Python из системной оболочки, и см. Руководство пользователя Abaqus Scripting для получения полезных примеров и объяснений того, как работает Python. используется с Абакусом. Его следует читать вместе со Справочным руководством по скриптам Abaqus, где доступна полная информация об API.

person Matt P    schedule 11.07.2017