当前位置: 首页 > news >正文

ABAQUS脚本运行总是出错

WIN11系统

ABAQUS2023版本

运行结果

# -*- coding: utf-8 -*-
from abaqus import *
from abaqusConstants import *
import math

# ========================== 1. 基础参数定义 ==========================
# 工件尺寸 (mm)
WP_LENGTH = 500.0 # 长度
WP_HEIGHT = 200.0 # 高度
WP_THICK = 10.0 # 厚度

# 刀具参数
RAKE_ANGLE = 10.0 # 前角
CLEAR_ANGLE = 5.0 # 后角
TOOL_HEIGHT = 300.0 # 刀具高度
TOOL_LENGTH = 150.0 # 刀具宽度

# 切削参数
vc = 50.0 * 1000 / 60.0 # 50 m/min → 转换为 mm/s (Abaqus标准单位)
f = 0.15 # 进给量 mm/r

# 网格参数
MESH_SIZE = 5.0 # 网格大小

# ========================== 2. 创建模型 ==========================
modelName = "OrthogonalCutting_TC4"
mdb.Model(name=modelName, modelType=STANDARD_EXPLICIT)
mod = mdb.models[modelName]

# ========================== 3. 建立工件几何(500×200mm) ==========================
sketch_wp = mod.ConstrainedSketch(name="WP_Sketch", sheetSize=2000.0)
sketch_wp.rectangle(point1=(0.0, 0.0), point2=(WP_LENGTH, WP_HEIGHT))

part_wp = mod.Part(
name="Workpiece",
dimensionality=TWO_D_PLANAR,
type=DEFORMABLE_BODY
)
part_wp.BaseShell(sketch=sketch_wp)

# ========================== 4. 建立刀具几何(前角10°,后角5°) ==========================
sketch_tool = mod.ConstrainedSketch(name="Tool_Sketch", sheetSize=2000.0)
tan_r = math.tan(math.radians(RAKE_ANGLE))
tan_c = math.tan(math.radians(CLEAR_ANGLE))

# 刀具四点坐标
p1 = (0.0, 0.0)
p2 = (TOOL_LENGTH, 0.0)
p3 = (TOOL_LENGTH - tan_r * TOOL_HEIGHT, TOOL_HEIGHT)
p4 = (-tan_c * TOOL_HEIGHT, TOOL_HEIGHT)

sketch_tool.Line(point1=p1, point2=p2)
sketch_tool.Line(point1=p2, point2=p3)
sketch_tool.Line(point1=p3, point2=p4)
sketch_tool.Line(point1=p4, point2=p1)

# 修复:使用正确的常量 ANALYTIC_RIGID_SURFACE
part_tool = mod.Part(
name="Tool",
dimensionality=TWO_D_PLANAR,
type=ANALYTIC_RIGID_SURFACE
)
part_tool.AnalyticRigidSurf2DPlanar(sketch=sketch_tool)

# ========================== 5. 定义材料 Ti6Al4V (TC4) ==========================
mat = mod.Material(name="Ti6Al4V")
mat.Density(table=((4.43e-9,),)) # 密度 (t/mm³)
mat.Elastic(table=((110E3, 0.34),)) # 弹性参数 (MPa)

# Johnson-Cook 塑性本构(TC4标准参数)
mat.Plastic(
table=((860.0, 650.0, 450.0, 0.001, 1200.0, 0.31, 0.48),),
hardening=JOHNSON_COOK
)

# 热参数(温度场)
mat.Conductivity(table=((6.8,),))
mat.SpecificHeat(table=((560.0,),))
mat.Expansion(table=((9.0e-6,),))

# ========================== 6. 截面与网格(CPE4R) ==========================
# 截面属性
mod.HomogeneousSolidSection(
name="WP_Section",
material="Ti6Al4V",
thickness=WP_THICK
)
part_wp.Set(name="WP_Set", faces=part_wp.faces)
part_wp.SectionAssignment(region=part_wp.sets["WP_Set"], sectionName="WP_Section")

# 网格划分 CPE4R
part_wp.seedPart(size=MESH_SIZE)
part_wp.setMeshControls(regions=part_wp.faces, elemShape=QUAD, technique=STRUCTURED)
elemType = mesh.ElemType(elemCode=CPE4R, elemLibrary=EXPLICIT)
part_wp.setElementType(regions=part_wp.faces, elemTypes=(elemType,))
part_wp.generateMesh()

# ========================== 7. 装配模型 ==========================
assem = mod.rootAssembly
assem.DatumCsysByDefault(CARTESIAN)
instWP = assem.Instance(name="WP_Inst", part=part_wp, dependent=ON)
instTool = assem.Instance(name="Tool_Inst", part=part_tool, dependent=ON)

# 定位刀具到切削位置
assem.translate(instanceList=("Tool_Inst",), vector=(10.0, WP_HEIGHT, 0.0))

# ========================== 8. 显式分析步 ==========================
mod.ExplicitDynamicsStep(
name="Cutting_Step",
previous="Initial",
timePeriod=WP_LENGTH / vc + 0.01,
nlgeom=ON
)

# ========================== 9. 接触与摩擦(库仑摩擦) ==========================
# 定义接触属性
mod.ContactProperty("Friction")
mod.interactions["Friction"].Table(type=FRICTION, table=((0.15,),))

# 创建接触相互作用
mod.ContactStd(name="Tool_WP_Contact", createStepName="Initial")

# ========================== 10. 边界条件 ==========================
# 工件底部完全固定
bottom_edges = instWP.edges.findAt(((WP_LENGTH/2, 0.0, 0.0),))
assem.Set(edges=bottom_edges, name="Bottom_Edge")
mod.EncastreBC(name="Fix_Workpiece", createStepName="Initial", region=assem.sets["Bottom_Edge"])

# 刀具水平匀速切削
# 创建参考点并施加速度
tool_ref_point = assem.ReferencePoint(point=(10.0, WP_HEIGHT, 0.0))
tool_ref_id = tool_ref_point.id
assem.Set(referencePoints=(assem.referencePoints[tool_ref_id],), name="Tool_Ref_Point")
mod.VelocityBC(
name="Tool_Move",
createStepName="Cutting_Step",
region=assem.sets["Tool_Ref_Point"],
v1=-vc, v2=0.0
)

# ========================== 11. 输出结果 ==========================
mod.FieldOutputRequest(
name="F_Output",
createStepName="Cutting_Step",
variables=("S", "PE", "PEEQ", "TEMP", "HFL", "STATUS")
)

# ========================== 12. 提交作业 ==========================
job = mdb.Job(
name="Job_TC4_Cutting",
model=modelName,
description="2D Orthogonal Cutting Ti6Al4V"
)
job.submit()
job.waitForCompletion()

运行结果

http://www.jsqmd.com/news/595149/

相关文章:

  • Arduino Mega 2560 + A4950驱动:手把手教你调出丝滑匀速的编码电机(附完整代码与避坑指南)
  • 2026年质量好的滚筒烘干机/煤泥滚筒烘干机/木屑滚筒烘干机/河沙滚筒烘干机公司选择指南 - 品牌宣传支持者
  • Linux 的 ln 命令
  • 告别马赛克!用PyTorch从零复现SRCNN,手把手教你让模糊老照片变清晰
  • SEO推广策划案如何进行用户体验优化
  • 2026年比较好的不锈钢风管/螺旋风管公司选择指南 - 品牌宣传支持者
  • 最新普通234滑块 _rand算法分析
  • 2026年靠谱的高度数配眼镜/配眼镜金属镜框厂家精选 - 品牌宣传支持者
  • 别再只把DBC当‘字典’了:它在CANape和MF4数据管理中的隐藏用法
  • Pixel Epic智识终端多场景落地:学术研究、产业分析、政策解读全覆盖
  • 保姆级教程:用YOWO和AVA数据集搞定视频中的人物动作检测(附代码)
  • 《道德经》被王弼篡改而掩藏了2000年的秘密
  • Z-Image-ComfyUI零基础入门:5分钟搭建阿里文生图大模型
  • 2026年口碑好的中空立体相框定制/密度板MDF相框定制公司口碑推荐 - 品牌宣传支持者
  • OpenClaw配置文件详解:定制化gemma-3-12b-it模型接入参数
  • 2026年评价高的秦皇岛环保板材生态板/无醛环保板材/环保板材实木橡胶木板/秦皇岛无醛环保板材可靠供应商推荐 - 品牌宣传支持者
  • OpenClaw代码审查助手:Qwen3-14b_int4_awq分析Git diff输出
  • OpenClaw日程管理:Qwen3-14B解析自然语言创建日历事件
  • OpenClaw低代码实践:Qwen3.5-9B图片分析任务零配置触发
  • OpenClaw自动化测试方案:Qwen3-32B驱动Python脚本执行与结果校验
  • OpenClaw移动办公:Qwen3-4B模型通过钉钉审批报销单
  • ORB_SLAM3鱼眼相机实战:从EuRoC数据集到自定义图像序列的全流程解析
  • OpenClaw智能剪辑:Qwen3.5-9B分析视频关键帧生成字幕
  • JAVA漫画小程序实现原理及开源uniapp代码片段
  • OpenClaw开发提效:Qwen3-4B-Thinking-2507-GPT-5-Codex-Distill-GGUF实现日志自动分析
  • 快速排序实战:如何修复一个遗留代码中的边界错误(附完整测试用例)
  • 极客玩法:OpenClaw+Qwen3-14B镜像控制智能家居的另类实践
  • gte-base-zh开发者实操手册:launch_model_server.py脚本深度解析
  • 《数据结构:二叉搜索树(Binary Search Tree)》
  • OpenClaw+千问3.5-9B开发辅助:自动生成代码与测试用例