因为我需要在ansa上做材料库相关的二次开发,把ansa api官方文档中的材料可能要用到的相关函数翻译如下。
(1) ansa.base.ReadMaterialDatabase(deck,path)
从文件加载对应面板(deck,例如constant.ABAQUS)的材料。
参数: deck:面板常量
path:字符串。对应文件的全路径。
返回值:永远返回0
返回值类型:Integer
可能引起的错误:如果文件路径不存在则引起IOError
例子:
import ansa
from ansa import base
from ansa import constants
def main():
base.ReadMaterialDatabase(constant.LSDYNA,"/home/material_data/dyna_mat_db.key")
(2) ansa.base.ClearMaterialDatabase(DECK)
这个函数删除了对应面板的材料数据库中所有材料和它们的辅助实体.
参数:DECK(常量):需要清理的面板
返回值:永远返回0
返回类型:Integer
例子:
import ansa
from ansa import base
from ansa import constants
def main():
base.ClearMaterialDatabase(constants.LSDYNA)
(3) ansa.base.SetMaterialDatabase(DECK,MDB_PATH)
对面板DECK设置默认的材料数据库路径。
参数:DECK:整型。面板常量
MDB_PATH:字符串,材料数据库的文件路径
返回值:如果成功返回0,失败返回1
返回类型:Integer
例子:
import ansa
from ansa import base
from ansa import constants
def main():
result=base.SetMaterialDatabase(constants.NASTRAN,"/root/users/user_20/mat_files/nas_mat_database_4.bdf")
(4) ansa.base.GetMaterialDatabase(deck,all_paths)
获取对应面板下的默认材料数据库路径和ANSA启动时会加载的数据库。
参数: deck :整型面板常量
all_paths(boolean):布尔值。如果需要返回所有默认的材料路径的时候传入True,需要
返回第一个路径的时候传入False。
返回值:如果all_paths=False,返回一个材料数据库的路径字符串;如果all_paths=True,返回一个包含所有路径的list。
例子:
import ansa
from ansa import base
from ansa import constants
def main():
result=base.GetMaterialDatabse(constants.NASTRAN)
print(result)
paths=base.GetMaterialDatabase(constants.NASTRAN,all_path=True)
print(paths)
(5)ansa.base.CompressMaterials(DECK,MATERIAL_MATRIX,COMPARE_BY_NAMES,COMPARE_BY_VALUES,DELETE_DUPLICATED)
对于面板DECK,压缩MATERIAL_MATRIX中的材料,方式为按照名称或者值压缩使其不再使用或者删除它们。
参数:DECK:面板常数
MATERIAL_MATRIX:一组包含了需要压缩的材料。如果为空,这个面板下的所有材料都会被压缩。
COMPARE_BY_NAMES:[0|1]表示允许或者不允许用名称来比较
COMPARE_BY_VALUES:[0|1]表示允许或者不允许按照值比较
DELETE_DUPLICATED:[0|1]表示删除/不删除多余项
返回值:永远返回0。返回值类型为整数。
例子:
import ansa
from ansa import base
from ansa import constants
def main():
base.CompressMaterials(constants.LSDYNA,None,1,0,1)