APP下载

AutoCAD VBA平台下纤维过滤模型的构建

2016-04-20赵雄辉王世选施银桃夏东升

绿色科技 2016年2期
关键词:数值模拟

赵雄辉,涂 辉,王世选,孙 磊,施银桃,夏东升

(武汉纺织大学 环境工程学院,湖北 武汉 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

展开全文▼
展开全文▼

猜你喜欢

数值模拟
跨音速飞行中机翼水汽凝结的数值模拟研究
双螺杆膨胀机的流场数值模拟研究
一种基于液压缓冲的减震管卡设计与性能分析