“ SimSolid是一款不基于网格的仿真工具,特别适合产品工程师使用。在汽车副车架多工况强度分析中,一般面临大量的数据,如果依靠人工去一点点输入,那么将会浪费大量的时间。所以我设计了一个小脚本,可以完成常用的载荷文件(excel)到SimSolid支持的csv结构转化。”
由于该脚本要使用excel文件,所以我们将引用将字母转化为数字---26进制中的函数。
01
—
SimSolid Remote Load Imported
批量导入工况载荷的界面如下:
02
—
Python脚本
import pandas as pd
def write_case_csv(file, sheet, coordinate, cases):
"""
用于转化excel载荷文件至simsolid可以使用的remote load可以使用的csv格式文件
:param file: excel文件
:param sheet: sheet
:param coordinate: 坐标所在列号, A列为第一列
:param cases: 在和工况所在的列好, A列为第一列
:return: 无返回值, 直接写出所有工况csv
"""
temps_dict = pd.read_excel(io=file, sheet_name=[sheet])
for s in [sheet]:
temps = temps_dict.get(s)
points = temps[temps.columns[coordinate-1]]
# print(points)
loadcases = temps.columns[(cases-1):]
for loadcase in loadcases:
fm = temps[loadcase]
loader = {}
for i in temps.index:
if isinstance(points[i], str):
point = points[i]
loader[point] = ","+str(fm[i])
else:
loader[point] += ","+str(fm[i])
with open(loadcase+".csv", "w", encoding="utf8") as f:
f.write("X,Y,Z,Fx,Fy,Fz,Mx,My,Mz" + "\n")
for k, v in loader.items():
item = (k+v).replace(" ", "")
f.write(item+"\n")
脚本将生成以各个工况名称名命名的符合SimSolid导入条件的csv文件。
write_case_csv("demo.xlsx", "前副车架", alphabet2num("c"), alphabet2num("f"))
03
—
导入
04
—
SimSolid Multi_loadcases分析思路