使用omniORB和omniORBpy的部分文件作为ANSYS MAPDL接口
项目描述
此Python模块提供了连接到ANSYS APDL服务器所需的最小支持。虽然它设计为作为pyansys的支持模块,但也可以单独使用,向APDL实例发送文本命令,但没有任何语法检查或错误处理功能。简而言之,如果您在这里,除非您真的需要从Python驱动ANSYS APDL的快速而简单的解决方案,否则请安装pyansys。
此模块依赖于ANSYS APDL提供的文档,并使用来自omniORB的源文件编译的库。有关Linux构建说明,请参阅GitHub上的shell文件存储库。为Windows构建是一场噩梦。
安装
对于Linux和Windows,Python 2.7、3.5和3.6,都有预编译的二进制文件可用。如果您需要其他版本,请提交问题。Python 3.7不可用,因为源代码无法编译。等待4.2.3或更高版本发布。请联系维护者omniORB。
安装很简单
pip install ansys_corba
用法
再次提醒,您真的应该使用 pyansys。它负责确定 mapdl_broadcasts.txt 文件的位置以及何时与服务器建立连接。如果您想尝试冒险,以下是打开 ANSYS、连接到 CORBA 服务器并发送几个命令的方法:
import sys
import time
import os
from ansys_corba import CORBA
import subprocess
# edit this to match your ansys exe
ansys_loc = 'C:\\Program Files\\ANSYS Inc\\v170\\ansys\\bin\winx64\\ANSYS170.exe'
# ansys apdl logging here:
logfile = 'mapdl_broadcasts.txt'
if os.path.isfile(logfile):
os.remove(logfile)
# make temporary input file to stop ansys from prompting the user
with open('tmp.inp', 'w') as f:
f.write('FINISH')
# start ANSYS
command = '"%s" -aas -i tmp.inp -o out.txt -b' % ansys_loc
subprocess.Popen(command, stdout=subprocess.PIPE)
# monitor log file and wait for connection
print('Starting ANSYS...')
while True:
try:
if os.path.isfile(logfile):
with open(logfile, 'r') as f:
text = f.read()
if 'visited:collaborativecosolverunitior' in text:
print('ANSYS started')
break
time.sleep(0.1)
except KeyboardInterrupt:
sys.exit()
with open('./aaS_MapdlId.txt') as f:
key = f.read()
# create server
orb = CORBA.ORB_init()
mapdl = orb.string_to_object(key)
# run simple commands to demonstrate this works
mapdl.executeCommand('/prep7')
out = mapdl.executeCommandToString('cylind, 2, , , 2, 0, 90')
print(out.replace('\\n', '\n'))
mapdl.executeCommand('FINISH')
mapdl.terminate() # could use exit, but it returns an error
这里可能会出现几个问题,例如,ANSYS 的路径或查找 mapdl_broadcasts.txt 文件。如果这个 Python 脚本没有在 ANSYS 相同的目录中运行,它将挂起,直到您终止进程或使用键盘中断退出。
更多文档
一旦您已打开到 ANSYS 的连接,实际上只需要使用三个命令。以下文档无耻地取自 sharcnet。
executeCommand:
向连接的 Mechanical APDL 会话发出命令。命令的输出不会返回。
executeCommandToString
向连接的 Mechanical APDL 会话发出命令,并以字符串的形式返回输出。
terminate
终止连接的 Mechanical APDL 服务器会话。
有关更多详细信息,请参阅 sharcnet 文档。
注意事项
由于需要在外部编译共享库,因此无法使用 PyPi 进行源代码安装。我已经包含了 docker_buildlinux.sh 和 docker.sh,这些文件可以用于构建 Linux 的源代码。对于 Windows 的构建更为复杂,需要遵循 omniorb 源代码中的说明,并进行一些尝试和错误。
许可证和致谢
此代码根据 MIT 许可证授权。
此模块 ansys_corba 对 ANSYS 不做任何商业声明。该工具通过添加 Python 接口扩展了 ANSYS 的功能,包括文件接口和交互式脚本,而不会更改原始软件的核心行为或许可证。使用 ansys_corba 的交互式 APDL 控制需要合法许可的本地 ANSYS 复制。
此外,如果没有 omniORB,此模块将无法实现,因为大部分源代码直接来自 omniORBpy,仅在文件结构和添加特定于 ANSYS 的文档方面进行了少量修改。
项目详细信息
哈希值 for ansys_corba-0.1.1-cp38-cp38-manylinux2010_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 169a160ed8feada3e4b2e6c11b7a97adff4b923c1f125c7a47a2cc05ad015ca0 |
|
MD5 | e59e62a0c578e3cf89bb95bb79cd8a6e |
|
BLAKE2b-256 | 390eab4a3f97e02f9cb81e96168aa90222680739e7d062d8c5e12598ffb5abca |
哈希值 for ansys_corba-0.1.1-cp37-cp37m-manylinux2010_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d69bfc4fd926b508d25fb881e98f1ae2f37981d4b4fc0968db9d5f4a276135c0 |
|
MD5 | 7d1f0461905748d239cc3858d711d694 |
|
BLAKE2b-256 | 7f3cac7ffaa546bd1d9b5223f8ee3e72bb92ee207d7c6deb71e4441929d553e4 |
哈希值 for ansys_corba-0.1.1-cp36-cp36m-manylinux2010_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0c75a1d8015d0da63578e790085bfb74088351fbef0923088e7770cca594bf91 |
|
MD5 | ac56bfd73d1522ff91489bfcdf703217 |
|
BLAKE2b-256 | 895f1d926792d974f07897c3f944cd642d01562c109e972cafbb07722ec503ea |
哈希值 for ansys_corba-0.1.1-cp35-cp35m-manylinux2010_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | cf1df422a37d93cae796960aabf8943f012aeec6f2635f41ed86651d1b05b267 |
|
MD5 | 0aa1c3486fe9d49f0509655c2f5702d8 |
|
BLAKE2b-256 | ec43e90b6781b7f4acddf79fdaf68f64c762b9a000aeee7b764f6c6117839bab |
哈希值 for ansys_corba-0.1.1-cp27-cp27mu-manylinux2010_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 999672942bb5d8f2dbf6717e9b929e8514df010c3da16bc17f33dc892d077469 |
|
MD5 | 59f675c4d2cb4d251a07d74ccf25c702 |
|
BLAKE2b-256 | 209de6a1ddbed559ee3a0239c13162bfe48cfcdaa2b6528ccf4dc09de23ae1e2 |
哈希值 用于 ansys_corba-0.1.1-cp27-cp27m-manylinux2010_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c416aed0df3021aaf8db94b0b589e0b694dded0f84ca6f42521aacf138b5342f |
|
MD5 | 9b21ff63f3317d2d3936d27e51401691 |
|
BLAKE2b-256 | b56a4810fec6f7da008e79eece98b731d267df88ea1f16ca2ab601c6f86d7272 |