揭秘瓶子抵达消费者前的吹制历程

开始之前先来点技术科普:

Abaqus:成熟、老牌、多学科(结构、热、流体、电磁等)高精度的统一有限元分析软件。能够处理非常复杂的非线性问题。Abaqus有两大求解器Standard以及Explicit。

Isight: 著名参数优化软件,江湖人称软件机器人。为啥这么叫,因为用Isight基本可以把你应用的所有工程软件串联成工作流程,在完成优化的同时能够帮助用户把成熟的仿真流程在Isight内搭建成流程模板,完成浅层次企业技术知识固化(深层次知识固化需要企业工程师开发专门的解决方案软件)

Tosca:无参优化(结构优化、流道优化)结构优化涉及到:拓扑优化,形状优化、尺寸优化、钣金起劲优化。流道优化结果能够实现流道最小压力损失。

fe-safe:耐久性分析,结构的低周、高周疲劳,还具有国际首款认证的橡胶疲劳分析功能以及焊缝疲劳分析功能。最新增加了针对汽轮机的高温蠕变疲劳分析模块。



此处划重点:目前以上四款软件可以通过采购一个license全部激活使用,实现一站式结构设计、优化、计算总体解决方案。

下面开始讲吹瓶之后的一个技术要点:提取瓶体厚度分布数据

在计算完一个瓶体的吹塑之后,我们一般能够得到一个包含瓶体厚度分布的计算结果(ODB)文件。Abaqus与Python无缝集成,这就极大的方便了客户实现自动化前后处理的需求。Python这门语言比较容易学习,我们在今后的文章中可以逐步介绍。

直接上代码:

(以下代码需要简单修改才能应用到您的模型)


from abaqus import *

from abaqusConstants import *

import __main__from odbAccess import *

from viewerModules import *

from string import *

from abaqus import getWarningReply, YES, NO

import visualization

import xyPlot

#

odbName=session.viewports[session.currentViewportName].odbDisplay.name

nodes=session.odbs[odbName].rootAssembly.instances['BOTTLE-1'].nodes

nodesNumber=len(nodes)

session.viewports[session.currentViewportName].odbDisplay.display.setValues(plotState=(CONTOURS_ON_DEF, ))

fileName=open(odbName+".txt", "w")

fileName.write("#        X         Y         Z Thickness"+"\n")

for order in range(nodesNumber):          

session.Path(name='Path-1', type=NODE_LIST, expression=(('BOTTLE-1', (str(nodes[order].label)+':'+str(nodes[order].label), )), ))          

pth = session.paths['Path-1']          

session.viewports[session.currentViewportName].odbDisplay.setPrimaryVariable(variableLabel='U', outputPosition=NODAL, refinement=(COMPONENT, 'U1'))          

session.XYDataFromPath(name='XYData-1', path=pth, includeIntersections=False, pathStyle=PATH_POINTS, numIntervals=10, shape=DEFORMED, labelType=SEQ_ID)          

Coord1=session.xyDataObjects['XYData-1'].data[0][1]          

del session.xyDataObjects['XYData-1']          

session.viewports[session.currentViewportName].odbDisplay.setPrimaryVariable(variableLabel='U', outputPosition=NODAL, refinement=(COMPONENT, 'U2'))          

session.XYDataFromPath(name='XYData-1', path=pth, includeIntersections=False, pathStyle=PATH_POINTS, numIntervals=10, shape=DEFORMED, labelType=SEQ_ID)          

Coord2=session.xyDataObjects['XYData-1'].data[0][1]          

del session.xyDataObjects['XYData-1']          

session.viewports[session.currentViewportName].odbDisplay.setPrimaryVariable(variableLabel='U', outputPosition=NODAL, refinement=(COMPONENT, 'U3'))          

session.XYDataFromPath(name='XYData-1', path=pth, includeIntersections=False, pathStyle=PATH_POINTS, numIntervals=10, shape=DEFORMED, labelType=SEQ_ID)          

Coord3=session.xyDataObjects['XYData-1'].data[0][1]          

del session.xyDataObjects['XYData-1']          

session.viewports[session.currentViewportName].odbDisplay.setPrimaryVariable(variableLabel='STH', outputPosition=INTEGRATION_POINT)          

session.XYDataFromPath(name='XYData-1', path=pth, includeIntersections=False, pathStyle=PATH_POINTS, numIntervals=10, shape=DEFORMED, labelType=SEQ_ID)          

STH=session.xyDataObjects['XYData-1'].data[0][1]          

del session.xyDataObjects['XYData-1']          

del session.paths['Path-1']          

if Coord3>=0:              

fileName.write("  "+str(Coord1)+"  "+str(Coord2)+"  "+str(Coord3)+"  "+str(STH)+"\n")              

fileName.flush()fileName.close()


通过阅读代码,我们可以看到本次数据提取,我们使用了:

  1. session 模块,取得所需要的数据源,并对数据进行过滤提取。
  2. viewports模块,获得当前ODB文件名
  3. 建立一个文本文件,并把所有节点数据(坐标X、坐标Y、坐标Z、厚度)写入该文本文件。

运行完这个脚本,一个瓶子的厚度分布数据就提取出来了。在此感谢娃哈哈机电研究所 模具与包装研究所提供的瓶体CAD模型。

吹瓶(2)——一个瓶子遇到消费者之前的故事的图1

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空