复合材料元胞

复合材料元胞(Unit Cell)是复合材料层合板中的代表性单元,其在层合板中具有周期性,也被称为Representative Unit Cell (RUC)。RUC 是中尺度模型(Mesoscale model),同时也有RVE(Representative Volume Element),是微尺度模型(Microscale level)。Unit cell (UC)经常被用来代替整个复合材料平板模拟复合材料在不同工况下的力学性能。因此能够准确建立元胞模型并用于ABAQUS等有限元的模拟中,就显得尤为重要。

但是通常通过CAD软件,如SolidWorks (SW),建立复合材料元胞是一个复杂且费时的过程。我们不仅需要了解编织复合材料预制件的各种制造参数,而且还需要通过3D绘图软件成功建立出不同样式的元胞。这样就会造成大量的时间和经历的浪费。


现在已经有很多的开源软件可以用来制造中尺度的元胞模型,如诺丁汉大学的开业软件:TexGen (中尺度模型的建立),Prof Shuguang Li,Laurent Jeanmeure 和 Qing Pan编写的UnitCell软件 ,还有 DIGIMAT复合材料建模平台(微尺度模型的建立)等等。其中TexGen是通过Python框架建立的,据我目前的了解,好像它是通过建立VTK文件,之后进行转换文件格式来生成代表性单元。

虽然有这些前辈们在复合材料代表性单元模型建立上的努力,如果我们需要更好的掌握编织复合材料制造的过程,那么我觉得通过自己搭建以及编写代码来创建复合材料模型,更能加深对其了解。但是如果只是想得到复合材料RUC或者RVE单元,那么通过上面提到的两个软件,我们可以轻松建立任何所需要的单元模型。


在这里将介绍如何通过 Python 调用 SolidWorks 来建立 Woven composite preform。内容将涵盖:

  • 有关Woven preform 编织复合材料的制造过程的 literature review;
  • 数学建模;
  • Python PyQt 搭建人机交互界面;
  • Python 调用 SolidWorks 接口的建立;

工具:

  • Python
  • SolidWorks2018

需求:

  • 对Python有基础认识
  • 对SolidWorks 操作有基础认识
  • 对SolidWorks VBA语言有基础认识(如果没有,请看我这一篇博客:SolidWorks VBA 简介(还没总结…))

Woven composite preform 参数

Python + SolidWorks

对于python的安装及使用就不多说了,网上有大量的资源可以帮助到大家对python有个基础的认识。

通过Python 对SolidWorks进行宏操作

首先通过cmd pip安装一下pywin32:

1
pip install pywin32

如果我们想要调用SW,那么在代码最前面一定要先根据自己电脑中的SW版本来设置一下:

1
2
3
4
import win32com.client
import pythoncom
swYearLastDigit = 8
sw = win32com.client.Dispatch("SldWorks.Application.%d" % (20+(swYearLastDigit-2)))

因为我使用的是2018版本的SW,所以这里的swYearLastDigit我设置为8。

接下来就和VBA的代码使用差不多了,首先先进行一下设置:

1
2
3
4
5
6
model = sw.ActiveDoc
modelExt = model.Extension
selMgr = model.SelectionManager
featureMgr = model.FeatureManager
sketchMgr = model.SketchManager
eqMgr = model.GetEquationMgr