学习abaqus中自带的rsg与录制功能,获取输入材料代码格式,利用python进行修改,达到可以通过插件添加常用材料的功能,减少手动输入材料性能的时间。
为了实现在不同model与filed下的材料输入,添加了选择model与field的选项。
具体代码如下:
# -*- coding: mbcs -*-
# Do not delete the following import lines
from abaqus import *
from abaqusConstants import *
import __main__
#The name of model,material,field
def defined(Model,Name,Field):
import material
import part
model=str(Model)
#Supporting material
if Name == "SM400A" or "S303" or "A7N01":
if Name == "SM400A":
mdb.models[model].Material(name="SM400A")
# Using TEMP material
if Field == "TEMP":
mdb.models[model].materials['SM400A'].Density(temperatureDependency=ON,
table=(
(7.8e-09, 0.0), (7.73e-09, 300.0), (7.69e-09, 600.0),
(7.68e-09,
700.0), (7.67e-09, 750.0), (7.66e-09, 800.0),
(7.63e-09, 900.0), (
7.63e-09, 1200.0), (7.62e-09, 1400.0),
(7.61e-09, 1450.0), (7.6e-09,
1500.0)))
mdb.models[model].materials['SM400A'].Conductivity(
temperatureDependency=ON, table=((51.0, 0.0), (47.0, 300.0), (38.0,
600.0), (33.0, 700.0), (31.0, 750.0),
(29.0, 800.0), (30.0, 900.0), (
31.0, 1200.0), (32.0, 1400.0), (33.0, 1450.0),
(111.0, 1500.0)))
mdb.models[model].materials['SM400A'].SpecificHeat(
temperatureDependency=ON, table=((420000000.0, 0.0), (600000000.0,
300.0), (820000000.0, 600.0),
(900000000.0, 700.0), (1200000000.0,
750.0), (710000000.0, 800.0),
(720000000.0, 900.0), (760000000.0,
1200.0), (790000000.0, 1400.0),
(1110000000.0, 1450.0), (822000000.0,
1500.0)))
# Using MECH material
elif Field == "MECH":
mdb.models[model].materials['SM400A'].Density(temperatureDependency=ON,
table=(
(7.8e-09, 0.0), (7.73e-09, 300.0), (7.69e-09, 600.0),
(7.68e-09,
700.0), (7.67e-09, 750.0), (7.66e-09, 800.0),
(7.63e-09, 900.0), (
7.63e-09, 1200.0), (7.62e-09, 1400.0),
(7.61e-09, 1450.0), (7.6e-09,
1500.0)))
mdb.models[model].materials['SM400A'].Conductivity(
temperatureDependency=ON, table=((51.0, 0.0), (47.0, 300.0), (38.0,
600.0), (33.0, 700.0), (31.0, 750.0),
(29.0, 800.0), (30.0, 900.0), (
31.0, 1200.0), (32.0, 1400.0), (33.0, 1450.0),
(111.0, 1500.0)))
mdb.models[model].materials['SM400A'].SpecificHeat(
temperatureDependency=ON, table=((420000000.0, 0.0), (600000000.0,
300.0), (820000000.0, 600.0),
(900000000.0, 700.0), (1200000000.0,
750.0), (710000000.0, 800.0),
(720000000.0, 900.0), (760000000.0,
1200.0), (790000000.0, 1400.0),
(1110000000.0, 1450.0), (822000000.0,
1500.0)))
mdb.models[model].materials['SM400A'].Elastic(temperatureDependency=ON,
table=((206000.0, 0.3, 0.0), (187000.0, 0.33, 300.0),
(148000.0, 0.36,
600.0), (130000.0, 0.365, 700.0),
(110000.0, 0.37, 750.0), (100000.0,
0.38, 800.0),
(50000.0, 0.4, 900.0), (19000.0, 0.42, 1200.0),
(18500.0,
0.43, 1400.0), (18000.0, 0.44, 1450.0),
(17000.0, 0.45, 1500.0)))
mdb.models[model].materials['SM400A'].Plastic(temperatureDependency=ON,
table=((300.0, 0.0, 0.0), (240.0, 0.0, 300.0),
(120.0, 0.0, 600.0), (
100.0, 0.0, 700.0), (60.0, 0.0, 750.0),
(18.0, 0.0, 800.0), (17.0, 0.0,
900.0),
(16.0, 0.0, 1200.0), (15.5, 0.0, 1400.0),
(15.2, 0.0, 1450.0),
(15.0, 0.0, 1500.0)))
mdb.models[model].materials['SM400A'].Expansion(table=((5.5e-05, 0.0), (
5.1e-05, 300.0), (3.8e-05, 600.0), (3.6e-05, 700.0), (3e-05, 750.0), (
2.6e-05, 800.0), (2.8e-05, 900.0),
(2.9e-05, 1200.0), (3e-05, 1400.0),
(6e-05, 1450.0), (0.0001, 1500.0)),
temperatureDependency=ON)
else:
print("Wrong field name,please choose one of the following field:TEMP,MECH")
elif Name == "S303":
mdb.models[model].Material(name="S303")
if Field == "TEMP":
mdb.models[model].materials['S303'].Density(temperatureDependency=ON,
table=(
(7.9e-09, 0.0), (7.88e-09, 100.0), (7.83e-09, 200.0),
(7.79e-09,
300.0), (7.75e-09, 400.0), (7.66e-09, 600.0),
(7.56e-09, 800.0), (
7.37e-09, 1200.0), (7.32e-09, 1300.0),
(7.32e-09, 1500.0)))
mdb.models[model].materials['S303'].Conductivity(temperatureDependency=ON,
table=((14.6, 0.0), (15.1, 100.0), (16.1, 200.0),
(17.9, 300.0), (18.0,
400.0), (20.8, 600.0),
(23.9, 800.0), (32.2, 1200.0),
(33.7, 1300.0), (
120.0, 1500.0)))
mdb.models[model].materials['S303'].SpecificHeat(temperatureDependency=ON,
table=((462000000.0, 0.0), (496000000.0, 100.0),
(512000000.0, 200.0),
(525000000.0, 300.0), (540000000.0, 400.0),
(577000000.0, 600.0), (
604000000.0, 800.0),
(676000000.0, 1200.0),
(692000000.0, 1300.0), (
700000000.0, 1500.0)))
elif Field == "MECH":
mdb.models[model].materials['S303'].Density(temperatureDependency=ON,
table=(
(7.9e-09, 0.0), (7.88e-09, 100.0), (7.83e-09, 200.0),
(7.79e-09,
300.0), (7.75e-09, 400.0), (7.66e-09, 600.0),
(7.56e-09, 800.0), (
7.37e-09, 1200.0), (7.32e-09, 1300.0),
(7.32e-09, 1500.0)))
mdb.models[model].materials['S303'].Conductivity(temperatureDependency=ON,
table=((14.6, 0.0), (15.1, 100.0), (16.1, 200.0),
(17.9, 300.0), (18.0,
400.0), (20.8, 600.0),
(23.9, 800.0), (32.2, 1200.0),
(33.7, 1300.0), (
120.0, 1500.0)))
mdb.models[model].materials['S303'].SpecificHeat(temperatureDependency=ON,
table=((462000000.0, 0.0), (496000000.0, 100.0),
(512000000.0, 200.0),
(525000000.0, 300.0), (540000000.0, 400.0),
(577000000.0, 600.0), (
604000000.0, 800.0),
(676000000.0, 1200.0),
(692000000.0, 1300.0), (
700000000.0, 1500.0)))
mdb.models[model].materials['S303'].Elastic(temperatureDependency=ON,
table=((198500.0, 0.294, 0.0), (193000.0, 0.295, 100.0),
(185000.0,
0.301, 200.0), (176000.0, 0.31, 300.0),
(167000.0, 0.318, 400.0), (
159000.0, 0.326, 600.0),
(151000.0, 0.333, 800.0), (60000.0, 0.339,
1200.0),
(20000.0, 0.342, 1300.0),
(10000.0, 0.388, 1500.0)))
mdb.models[model].materials['S303'].Plastic(temperatureDependency=ON,
table=((265.0, 0.0, 0.0), (218.0, 0.0, 100.0),
(186.0, 0.0, 200.0), (
170.0, 0.0, 300.0), (155.0, 0.0, 400.0),
(149.0, 0.0, 600.0), (91.0,
0.0, 800.0),
(25.0, 0.0, 1200.0), (21.0, 0.0, 1300.0),
(10.0, 0.0,
1500.0)))
else:
print("Wrong field name,please choose one of the following field:TEMP,MECH")
elif Name == "A7N01":
mdb.models[model].Material(name="A7N01")
if Field == "TEMP":
mdb.models[model].materials['A7N01'].Density(temperatureDependency=ON,
table=(
(2.78e-09, 20.0), (2.76e-09, 100.0), (2.73e-09, 250.0),
(
2.7e-09, 400.0), (2.66e-09, 550.0),
(2.45e-09, 700.0), (2.43e-09,
850.0), (2.42e-09, 1000.0)))
mdb.models[model].materials['A7N01'].Conductivity(temperatureDependency=ON,
table=(
(156.0, 20.0), (164.0, 100.0), (174.0, 250.0),
(182.0, 400.0), (
189.0, 550.0), (88.0, 700.0), (92.0, 850.0),
(105.0, 1000.0)))
mdb.models[model].materials['A7N01'].SpecificHeat(temperatureDependency=ON,
table=((869000000.0, 20.0), (912000000.0, 100.0),
(981000000.0, 250.0),
(1040000000.0, 400.0),
(1189000000.0, 550.0),
(1110000000.0, 700.0), (
1066000000.0, 850.0),
(1015000000.0, 1000.0)))
elif Field == "MECH":
mdb.models[model].materials['A7N01'].Density(temperatureDependency=ON,
table=(
(2.78e-09, 20.0), (2.76e-09, 100.0), (2.73e-09, 250.0),
(
2.7e-09, 400.0), (2.66e-09, 550.0),
(2.45e-09, 700.0), (2.43e-09,
850.0), (2.42e-09, 1000.0)))
mdb.models[model].materials['A7N01'].Conductivity(temperatureDependency=ON,
table=(
(156.0, 20.0), (164.0, 100.0), (174.0, 250.0),
(182.0, 400.0), (
189.0, 550.0), (88.0, 700.0), (92.0, 850.0),
(105.0, 1000.0)))
mdb.models[model].materials['A7N01'].SpecificHeat(temperatureDependency=ON,
table=((869000000.0, 20.0), (912000000.0, 100.0),
(981000000.0, 250.0),
(1040000000.0, 400.0),
(1189000000.0, 550.0),
(1110000000.0, 700.0), (
1066000000.0, 850.0),
(1015000000.0, 1000.0)))
mdb.models[model].materials['A7N01'].Elastic(temperatureDependency=ON,
table=((70000.0, 0.3, 20.0), (66000.0, 0.31, 100.0),
(56500.0, 0.32,
250.0), (26000.0, 0.33, 400.0),
(10700.0, 0.34, 550.0), (5000.0, 0.35,
700.0),
(3800.0, 0.36, 850.0), (3000.0, 0.37, 1000.0)))
mdb.models[model].materials['A7N01'].Plastic(temperatureDependency=ON,
table=((295.0, 0.0, 20.0), (285.0, 0.0, 100.0),
(125.0, 0.0, 250.0), (
48.0, 0.0, 400.0), (12.0, 0.0, 550.0),
(5.0, 0.0, 700.0), (5.0, 0.0,
850.0), (5.0, 0.0, 1000.0)))
else:
print("Wrong field name,please choose one of the following field:TEMP,MECH")
else:
print("Wrong material name,please choose one of the following materials: SM400A,S303,A7N01")



