一、说明
邵尔硬度和C01/C10材料常数的对应关系表,在做防水橡胶圈的非线性仿真过程中需要用到。在设计之余利用闲暇时间写的笔记,截取部分图以示说明:
二、代码示例
#!/usr/bin/env python
# -*- coding = utf-8 -*-
# @Time : 2021/3/19 9:55
# @Author : Leuanghing
# @File : 计算C01/C10材料常数
# @Software : PyCharm
import xlwt #进行excel操作
double_constant = []
constant_list = []
def Material_constant():
HA = input("请输入邵尔硬度HA:")
R = input("请输入C01/C10比值:")
E = (15.75+2.15*float(HA))/(100-float(HA))
C10 = float(E)/(6*(1+float(R)))
C01 = float(R)*float(E)/(6*(1+float(R)))
C10 = round(C10, 4) # 保留四位有效数字
C01 = round(C01, 4)
return C10, C01
def Material_constant_form():
for HA in range(99):
HA = HA + 1
for R in range(100):
R = R + 1
E = (15.75 + 2.15 * float(HA)) / (100 - float(HA))
C10 = float(E) / (6 * (1 + 0.01 * float(R)))
C01 = 0.01 * float(R) * float(E) / (6 * (1 + 0.01 * float(R)))
C10 = round(C10, 4) # 保留四位有效数字
C01 = round(C01, 4)
# double_constant.append(C10)
# double_constant.append(C01)
double_constant.append("({},{})".format(C10, C01))
return double_constant
# 保存数据
def saveData(datalist, savepath):
print("save......")
book = xlwt.Workbook(encoding="utf-8", style_compression=0) # 创建workbook对象
sheet = book.add_sheet('材料常数C10与C01查询表', cell_overwrite_ok=True) # 创建工作表
# 创建行名
row = ["", ]
for row_name in range(0, 100):
row_cell_text = "邵尔硬度{}HA".format(row_name+1)
row.append(row_cell_text)
# 创建列名
col = ["", ]
for col_name in range(1, 100):
constant = round(0.01*col_name, 2)
col_cell_text = "C01/C10={}".format(constant)
col.append(col_cell_text)
for r in range(0, 100):
sheet.write(0, r, row[r]) # 写入行名
for c in range(0, 100):
sheet.write(c, 0, col[c]) # 写入列名
num = 0
for i in range(1, 100):
print("第%d行" % (i+1))
for j in range(1, 100):
sheet.write(i, j, datalist[num]) # 数据
num += 1
book.save(savepath)
if __name__ == '__main__':
# while 1:
# constant = Material_constant()
# print("C10, C01分别为:{}MPa、{}MPa".format(constant[0], constant[1]))
datalist = Material_constant_form()
savepath = r'.\\材料常数C10与C01查询表.xls'
saveData(datalist, savepath)
三、结果
需要excel的请自取:材料常数C10与C01查询表.xls