AutoCAD VBA平台下纤维过滤模型的构建
2016-04-20赵雄辉王世选施银桃夏东升
赵雄辉,涂 辉,王世选,孙 磊,施银桃,夏东升
(武汉纺织大学 环境工程学院,湖北 武汉 430200)
AutoCAD VBA平台下纤维过滤模型的构建
赵雄辉,涂 辉,王世选,孙 磊,施银桃,夏东升
(武汉纺织大学 环境工程学院,湖北 武汉 430200)
摘要:为了构建纤维束三维模型,在ANAYS Fluent平台下进行了纤维过滤器流体模拟,通过AutoCAD的VBA平台下编程的方法,研究了三维规则与随机纤维模型的构建,结果为在AutoCAD2014平台下在VBA语言编程条件下,达到三维规则与随机纤维模型快速、精确构建,并且成功导入ANAYS ICEM的效果,表明了AutoCAD的VBA平台下编程构建三维纤维模型,进行后期数值模拟是可行的。
关键词:VBA;AutoCAD;数值模拟;纤维建模;ANSYS ICEM
1引言
ANSYS Workbench 集成了自身的模型构造软件ICEM CFD拥有强大的网格划分能力,但是相比较传统的CAD软件如AutoCAD ,Solidworks,其几何建模能力仍显不足。VBA是Auto CAD二次开发软件中最为简单易用的工具之一,对于非专业计算机人员也能高效快速的进行模型构建。因此利用AutoCAD VBA建模而后导入ICEM CFD进行网格划分,将提高模型前处理的效率。
2窗体的创建
运行AutoCAD 。单位设置为mm。输入vbaman命令,打开vba管理器。左击新建,创建新的工程。左击Visual Basic管理器,进入代码窗口。在代码窗口中,选择插入/用户窗体,向当前工程添加一个用户窗体(图1)。
部分控件设置见表1。
对所需进行定义。在窗体中创建“确定”按钮单击事件,根据上图所示的多页空间页面,创建与其对应的纤维模型。
Private Sub cmdOk_Click()
ZoomExtents
Select Case MultiPage1.Value
Case 1 ’规则模型
Call Box
Call Fibres
Case 2 '随机模型
Call Box
Call Cc
End Select
frmMain.Hide
End Sub
表1 窗体部分控件设置
3矩形容器的建立
纤维素过滤器为一矩形容器,其中心位于center处,而后移动矩形容器至所建纤维模型中心处。
部分代码如下:
’建立矩形体容器
Public Sub Box()
定义矩形体
center(0)=txtBX.Text
center(1)=txtBY.Text
center(2)=txtBZ.Text
Length=txtLength.Text
Width=txtWidth.Text
Height=txtHeight.Text
在模型空间中建立矩形体(3DSolid)对象,长度两侧分别预留150mm作为首位导流段。
Set Boxobj=ThisDrawing.ModelSpace.AddBox(center, Length +300, Width, Height)
将矩形容器移动至预定位置
Dim ptTo(0 To 2) As Double
ptTo(0)=0.5 * Length
ptTo(1)=0.5 * Width
ptTo(2)=0
Boxobj.Move center, ptTo
ZoomAll
End Sub
4三维规则纤维模型构建
建立纤维圆柱体
Public Sub Fibres()
Dim Radius As Double ’纤维半径
Dim HeightOfFibre As Double ’纤维长度
Radius=txtRadiusOfFibre.Text
HeightOfFibre=txtHeightOfFibre.Text
’用户输入纤维长度数值HeightOfFibre>容器高度Height时,发出提示信息
If HeightOfFibre > Height Then
MsgBox (“输入的纤维长度数据必须不大于容器高度,请重新输入!”)
End If
’创建首圆柱
Dim objCylinder As Acad3DSolid
Dim ptCen(0 To 2) As Double
ptCen(0)=center(0)+2*Radius:ptCen(1)=center(1)+2*Radius:ptCen(2)=center(2)
Set objCylinder=ThisDrawing.ModelSpace.AddCylinder(ptCen, Radius, HeightOfFibre)
采用矩阵函数ArrayRectangular将上述所建纤维圆柱体阵列形成规则纤维集合。
distanceBwtnColumns=txtdistanceBwtnColumns.Text+2 * Radius
distanceBwtnRows=txtdistanceBwtnRows.Text+2 * Radius
distanceBwtnLeves=0
numberOfColumns=LengthdistanceBwtnColumns
numberOfRows=WidthdistanceBwtnRows
numberOfLeves=1
’建立对象的阵列
Dim retObj As Variant
retObj=objCylinder.ArrayRectangular(numberOfRows,numberOfColumns,numberOfLeves,distanceBwtnRows,distanceBwtnColumns,distanceBwtnLeves)
ZoomAll
End Sub
输入如下参数:生成随机模型,见图2,图3。
5三维随机纤维模型构建
部分代码如下:
Dim upperbound As Integer
Dim lowerbound As Integer
r=txtRadiusOfFibre1.Text
d=txtMaxDisOfFibre.Text/r
HeightOfFibres=txtLengthOfFibre.Text
m=txtLength.Text/(d * r)
n = txtWidth.Text/(d * r)
’用户输入纤维长度数值HeightOfFibres>容器高度Height时,发出提示信息
If HeightOfFibres > Height Then
MsgBox(“输入的纤维长度数据必须不大于容器高度,请重新输入!”)
End If
设置For函数对纤维圆心进行随机循环排列。排列思路见图4。
主要代码如下
For i=0 To m-1
For j=0 To n-1
upperbound=(d - 1) * r
lowerbound=r
x(0)=0 ’预排列初始值
y(0)=0
’随机生成x坐标轴方向 圆心坐标
x(i+1)=d * i * r+Int((upperbound-lowerbound+1) * Rnd+lowerbound)
y(j+1)=d * j * r+Int((upperbound-lowerbound+1) * Rnd+lowerbound)
p(0)=x(i + 1)
p(1)=y(j + 1)
p(2)=0
’以点P为中心,r为半径建立长度为HeightOfFibres的纤维柱体
Dim objCylinder As Acad3DSolid
Set objCylinder=ThisDrawing.ModelSpace.AddCylinder(p,r,HeightOfFibres)
Next j
Next i
输入如下参数:生成随机模型,见图5,图6。
设置最大间隔距离,调解容器内纤维数量。分别设置最大距离d=32,d=40得到如下模型,见图7,图8。
验证:按照实验思路,当最大距离设置为两倍半径时,随机圆模型呈现规则形状排列。运行程序得到模型,见图9,图10。
模型符合,验证通过。
图8随机纤维模型(d=40)
6模型导出
在AutoCAD中文件/输出为IGES格式文件,导入到ANSYS ICEM CFD形成图10所示几何模型,从而进行后续网格划分及分析处理(图11)。
7结语
利用AutoCAD内嵌语言VBA编程构建几何模型,具有以下特点。
(1)界面明了。
(2)便于操作。
(3)运行速度快。
(4)接口适应性广泛。
进一步,通过不同函数的编译,亦可以创建曲线纤维模型等更为真实准确的几何模型。
参考文献:
[1]苏茜.AutoCAD VBA函数库查询辞典(附光盘)[M].北京:中国铁道出版社,2003.
[2]张帆.AutoCAD VBA开发精彩实例教程[M].北京:清华大学出版社,2004.
[3]张帆.AutoCAD VBA二次开发教程[M].北京:清华大学出版社,2006.
[4]Liang Li,Kan Wu,Da-Wei Zhou.AutoCAD-based prediction of 3D dynamic ground movement for underground coal mining[J].International Journal of Rock Mechanics and Mining Sciences,2014(71):194~203.
[5]翟利军,张燎军,陈文龙.基于AutoCAD VBA的有限元快速建模技术[J].华北水利水电学院学报,2003,24(4):15~17.
[6]潘晋,邓安福,干腾君.AUTOCAD VBA开发技术在有限元前处理程序中的应用[J].地下空间与工程学报,2003,23(1):52~55.
[7]Jun L I,Su-Hong L I. Design for evaluating straightness and roundness error software based on AutoCAD VBA[J].Machinery Design & Manufacture,2010(11).
[8]严飞,詹美礼,速宝玉.AutoCAD中VBA语言在渗流有限元前处理中的应用[J].水利水电科技进展,2003,23(1):28~29.
[9]Huang Z.Solid Modeling of Non-circular Gear based on AutoCAD VBA[J].Journal of Mechanical Transmission,2011(11).
[10]胡坤.ANSYS ICEM CFD工程实例详解[M].北京:人民邮电出版社,2014.
[11]纪兵兵.ANSYS ICEM CFD 网格划分技术实例详解[M].北京:中国水利水电出版社,2012.
文章编号:1674-9944(2016)02-0177-04
中图分类号:X506
文献标识码:A
作者简介:赵雄辉(1989—),男,湖北襄阳人,武汉纺织大学环境工程学院硕士研究生。
收稿日期:2015-11-09