基于宏命令建模的螺纹管换热器设计方法
文献发布时间:2023-06-19 11:54:11
技术领域
本发明涉及换热器传热研究领域,具体涉及一种为了数值计算进行螺纹管换热器建模的方法,特别是涉及一种基于Solidworks宏命令建模的螺纹管换热器设计方法。
背景技术
螺纹管在强化管中是非常具有代表性且具有显著的强化传热效果的一种强化管,但是由于管道加工复杂且成本较高,传统实验很难观察到结构对管内制冷剂流动沸腾的影响,因此需要通过一种CFD数值模拟方法对螺纹管换热器的换热过程进行模拟,解决传统经验公式和实验局限性大、展现问题不够直观的问题,能够解决传统实验耗时长、成本高的问题。数值模拟方法推进中首先需要对螺纹管换热器进行建模,而由于建模对象复杂,因此建模的过程耗时长,建模后的文件与数值计算软件不兼容等问题使得数值计算的问题难以进行。
发明内容
本发明的目的在于,提供一种基于Solidworks宏命令建模的螺纹管换热器设计方法,为螺纹管换热器的数值模拟提供模型。
为实现上述目的,本发明的实施方案提供了一种基于Solidworks宏命令建模的螺纹管换热器设计方法,包括:(1)打开Solidworks后,在上方菜单栏空白处调出宏(Macro)菜单;(2)选择新建宏,保存为Macro1.swp;(3)菜单栏-工具-引用,检查Solidworks相关库Library是否已经被正确引用,如果没有,需要手动添加;(4)内流体的Solidworks宏命令建模;(5)外管壁的Solidworks宏命令建模;(6)管壁与流体Solidworks组合划分;(7)导入ANSYS Fluent仿真的预处理。
所述内流体的Solidworks宏命令建模的步骤为:
1)删除原代码;
2)撰写新的宏命令代码:
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Sub main()
Set swApp = Application.SldWorks
End Sub ;
3)新的宏命令代码全部写在Main()函数中;
4)新建零件:在Main()函数中写入以下代码:
Dim swSheetWidth As Double
swSheetWidth = 0
Dim swSheetHeight As Double
swSheetHeight = 0
Set Part = swApp.NewDocument("C:\ProgramData\SolidWorks\
SOLIDWORKS 2020\templates\gb_part.prtdot", 0, swSheetWidth,swSheetHeight)
Dim swPart As PartDoc
Set swPart = Part
swApp.ActivateDoc2 "零件1", False, longstatus
Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized;
5)绘制基准圆;
6)绘制螺旋线;
7)绘制基准矩形;
8)绘制基准椭圆;
9)绘制流体流动区域;
10)沿螺旋线扫描削除螺纹;
11)保存内流体文件。
所述外管壁的Solidworks宏命令建模的步骤为:
1)绘制基准圆;
2)绘制螺旋线;
3)绘制基准矩形;
4)绘制基准椭圆;
5)绘制管体;
6)沿螺旋线扫描削除螺纹
7)保存外管壁文件。
所述管壁与流体Solidworks组合划分的步骤为:
1)打开保存好的外管壁建模文件,正视于前视基准面;
2)菜单中选择插入-零件,选择保存好的内流体文件;
3)将零件对齐到圆心的位置;
4)分别选择两个底面作为配合设定实体,打勾确认,零件插入完成;
5)菜单-插入-特征-组合;
6)操作类型选择删减,实体均选择扫描削除后的实体,打勾确认;
7)另存为螺纹管文件,螺纹管建模结束。
本发明能够有效的解决螺旋波纹管建模不够准确和耗时长的问题,为波纹管换热器数值计算的建模提供一种快速准确的解决方案。
具体实施方式
以具体实施例为例,详细说明本发明的实施方式。
实例一
1.Solidworks宏命令建模
1.1 Solidworks宏基本配置
打开Solidworks后,在上方菜单栏空白处调出宏(Macro)菜单。完成后会在左上角出现五个新按钮,分别用于运行宏、停止宏、录制/暂停宏、新建宏和编辑宏。选择新建宏,保存为Macro1.swp(swp格式为Solidworks内嵌编程环境VBA(Visual Basic forApplication)通用格式)。在上方菜单栏-工具-引用,检查Solidworks相关库(Library)是否已经被正确引用,如果没有,需要手动添加。
1.2 内流体的Solidworks宏命令建模
将原先的代码删除,改写成以下形式:
Dim swApp As Object
Dim Part As Object
Dim boolstatus As Boolean
Dim longstatus As Long, longwarnings As Long
Sub main()
Set swApp = Application.SldWorks
End Sub
接下来的宏命令代码全部写在Main()函数里,Main()函数以End Sub作为结束语句。
新建零件:由于之前已经新建好零件,本步骤可以跳过。若尚未新建零件,则在Main()函数中写入以下代码:
Dim swSheetWidth As Double
swSheetWidth = 0
Dim swSheetHeight As Double
swSheetHeight = 0
Set Part = swApp.NewDocument("C:\ProgramData\SolidWorks\
SOLIDWORKS 2020\templates\gb_part.prtdot", 0, swSheetWidth,swSheetHeight)
Dim swPart As PartDoc
Set swPart = Part
swApp.ActivateDoc2 "零件1", False, longstatus
Set Part = swApp.ActiveDoc
Dim myModelView As Object
Set myModelView = Part.ActiveView
myModelView.FrameState = swWindowState_e.swWindowMaximized
接下来每一段程序,如果是分段执行,需要在每一段前,加上:
Set Part = swApp.ActiveDoc来激活命令执行的模块;如果所有程序段是连续执行,只需要在最开始的程序段前加上:Set Part = swApp.ActiveDoc。
1.2.1 绘制基准圆程序
Set Part = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("前视基准面", "PLANE", 0, 0,0, False, 0, Nothing, 0)
Part.SketchManager.InsertSketch True
Part.ClearSelection2 True
Dim skSegment As Object
‘核心语句:函数参数:圆心x坐标,y坐标,z坐标,半径(单位:m),半径拉伸方向x坐标,y坐标
Set skSegment = Part.SketchManager.CreateCircle(0#, 0#, 0#, 0.011, 0,0#)
Part.ClearSelection2 True
Part.SketchManager.InsertSketch True
对基准圆重命名:
boolstatus = Part.Extension.SelectByID2("草图1", "SKETCH", 0, 0, 0,False, 0, Nothing, 0)
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("草图1", "SKETCH", 0, 0, 0,False, 0, Nothing, 0)
boolstatus = Part.SelectedFeatureProperties(0, 0, 0, 0, 0, 0, 0, 1,0, "基圆1")
1.2.2 绘制螺旋线
‘核心语句:函数参数:反向,顺时针,锥形,锥度外长,0(定义方式,范围0~3),高度(单位:m),螺距,圈数,锥形角度,起始角度(注意:3.1415926=180°)
Part.InsertHelix False, True, False, True, 0, 2, 0.025, 80, 0,6.2831853071796
恢复视图,正视于上视基准面:
boolstatus = Part.Extension.SelectByID2("上视基准面", "PLANE", 0, 0,0, False, 0, Nothing, 0)
1.2.3 绘制基准矩形
boolstatus = Part.Extension.SelectByID2("上视基准面", "PLANE", 0, 0,0, False, 0, Nothing, 0)
Part.SketchManager.InsertSketch True
Part.ClearSelection2 True
boolstatus = Part.Extension.SetUserPreferenceToggle(swUserPreferenceToggle_e
.swSketchAddConstToRectEntity,swUserPreferenceOption_e
.swDetailingNoOptionSpecified, False)
boolstatus = Part.Extension.SetUserPreferenceToggle(swUserPreferenceToggle_e
.swSketchAddConstLineDiagonalType,swUserPreferenceOption_e
.swDetailingNoOptionSpecified, True)
Dim vSkLines As Variant
‘核心语句:起始点x坐标,y坐标,z坐标,终止点x坐标,y坐标,z坐标(注意,
-2#=2000mm)
vSkLines = Part.SketchManager.CreateCornerRectangle(0.011, 0, 0, -0.011, -2#, 0)
Part.ClearSelection2 True
Part.SketchManager.InsertSketch True
1.2.4 绘制基准椭圆
boolstatus = Part.Extension.SelectByID2("上视基准面", "PLANE", 0, 0,0, False, 0, Nothing, 0)
Part.SketchManager.InsertSketch True
Part.ClearSelection2 True
‘核心语句:椭圆中心x坐标,y坐标,z坐标,长轴端点x坐标,y坐标,z坐标,短轴端点x坐标,y坐标,z坐标
Set skSegment = Part.SketchManager.CreateEllipse(0.011, 0, 0, 0.011,0.0022, 0, 0.0121, 0, 0.0011)
Part.ClearSelection2 True
Part.SketchManager.InsertSketch True
1.2.5 绘制流体流动区域
boolstatus = Part.Extension.SelectByID2("基圆1", "SKETCH", 0, 0, 0,False, 0, Nothing, 0)
Dim myFeature As Object
‘核心语句:第六项为拉伸长度(2=2000mm)
Set myFeature = Part.FeatureManager.FeatureExtrusion2(True, False,False, 0, 0, 2, 0.01, False, False, False, False, 0, 0, False, False, False,False, True, True, True, 0, 0, False)
对基准椭圆重命名:
boolstatus = Part.Extension.SelectByID2("草图3", "SKETCH", 0, 0, 0,False, 0, Nothing, 0)
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("草图3", "SKETCH", 0, 0, 0,False, 0, Nothing, 0)
boolstatus = Part.SelectedFeatureProperties(0, 0, 0, 0, 0, 0, 0, 1,0, "基准椭圆1")
1.2.6 沿螺旋线扫描削除螺纹
boolstatus = Part.Extension.SelectByID2("基准椭圆1", "SKETCH", 0, 0,0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("螺旋线/涡状线1", "REFERENCECURVES", 0, 0, 0, True, 0, Nothing, 0)
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("基准椭圆1", "SKETCH", 0, 0,0, False, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("螺旋线/涡状线1", "REFERENCECURVES", 0, 0, 0, True, 4, Nothing, 0)
Dim swFeat As Object
Dim swFeatMgr As Object
Set swFeatMgr = Part.FeatureManager
Dim swFeatData As Object
Set swFeatData = swFeatMgr.CreateDefinition(swFeatureNameID_e.swFmSweepCut)
swFeatData.AdvancedSmoothing = False
swFeatData.AlignWithEndFaces = 1
swFeatData.AssemblyFeatureScope = True
swFeatData.AutoSelect = True
swFeatData.AutoSelectComponents = True
swFeatData.D1ReverseTwistDir = False
swFeatData.Direction = -1
swFeatData.EndTangencyType = 0
swFeatData.FeatureScope = True
swFeatData.MaintainTangency = False
swFeatData.MergeSmoothFaces = True
swFeatData.PathAlignmentType = 10
swFeatData.PropagateFeatureToParts = False
swFeatData.StartTangencyType = 0
swFeatData.ThinFeature = False
swFeatData.ThinWallType = 0
swFeatData.TwistControlType = 0
swFeatData.SetTwistAngle 0
swFeatData.SetWallThickness True, 0
Set swFeat = swFeatMgr.CreateFeature(swFeatData)
End Sub
结束程序,另存为-修改名字:fluid.SLDPRT。
1.3 外管壁的Solidworks宏命令建模
外管壁的操作步骤和内流体相同,只需要修改特征参数即可。
1.3.1 绘制基准圆
【参数替换】
Set Part = swApp.ActiveDoc
boolstatus = Part.Extension.SelectByID2("前视基准面", "PLANE", 0, 0,0, False, 0, Nothing, 0)
Part.SketchManager.InsertSketch True
Part.ClearSelection2 True
Dim skSegment As Object
‘核心语句:函数参数:圆心x坐标,y坐标,z坐标,半径(单位:m),半径拉伸方向x坐标,y坐标
Set skSegment = Part.SketchManager.CreateCircle(0#, 0#, 0#, 0.0125,0, 0#)
Part.ClearSelection2 True
Part.SketchManager.InsertSketch True
对基准圆重命名:
boolstatus = Part.Extension.SelectByID2("草图1", "SKETCH", 0, 0, 0,False, 0, Nothing, 0)
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("草图1", "SKETCH", 0, 0, 0,False, 0, Nothing, 0)
boolstatus = Part.SelectedFeatureProperties(0, 0, 0, 0, 0, 0, 0, 1,0, "基圆1")
1.3.2 绘制螺旋线
【参数替换】
‘核心语句:函数参数:反向,顺时针,锥形,锥度外长,0(定义方式,范围0~3),高度(单位:m),螺距,圈数,锥形角度,起始角度(注意:3.1415926=180°)
Part.InsertHelix False, True, False, True, 0, 2, 0.025, 80, 0,6.2831853071796
恢复视图,正视于上视基准面:
boolstatus = Part.Extension.SelectByID2("上视基准面", "PLANE", 0, 0,0, False, 0, Nothing, 0)
1.3.3 绘制基准矩形
【参数替换】
boolstatus = Part.Extension.SelectByID2("上视基准面", "PLANE", 0, 0,0, False, 0, Nothing, 0)
Part.SketchManager.InsertSketch True
Part.ClearSelection2 True
boolstatus = Part.Extension.SetUserPreferenceToggle(swUserPreferenceToggle_e
.swSketchAddConstToRectEntity,swUserPreferenceOption_e
.swDetailingNoOptionSpecified, False)
boolstatus = Part.Extension.SetUserPreferenceToggle(swUserPreferenceToggle_e
.swSketchAddConstLineDiagonalType,swUserPreferenceOption_e
.swDetailingNoOptionSpecified, True)
Dim vSkLines As Variant
‘核心语句:起始点x坐标,y坐标,z坐标,终止点x坐标,y坐标,z坐标(注意,
-2#=2000mm)
vSkLines = Part.SketchManager.CreateCornerRectangle(0.0125, 0, 0, -0.0125, -2#, 0)
Part.ClearSelection2 True
Part.SketchManager.InsertSketch True
1.3.4 绘制基准椭圆
【参数替换】
boolstatus = Part.Extension.SelectByID2("上视基准面", "PLANE", 0, 0,0, False, 0, Nothing, 0)
Part.SketchManager.InsertSketch True
Part.ClearSelection2 True
‘核心语句:椭圆中心x坐标,y坐标,z坐标,长轴端点x坐标,y坐标,z坐标,短轴端点x坐标,y坐标,z坐标
Set skSegment = Part.SketchManager.CreateEllipse(0.0125, 0, 0,0.0125, 0.0022, 0, 0.0121, 0, 0.00125)
Part.ClearSelection2 True
Part.SketchManager.InsertSketch True
1.3.5 绘制管体
boolstatus = Part.Extension.SelectByID2("基圆1", "SKETCH", 0, 0, 0,False, 0, Nothing, 0)
Dim myFeature As Object
’核心语句:第六项为拉伸长度(2=2000mm)
Set myFeature = Part.FeatureManager.FeatureExtrusion2(True, False,False, 0, 0, 2, 0.01, False, False, False, False, 0, 0, False, False, False,False, True, True, True, 0, 0, False)
对基准椭圆重命名:
boolstatus = Part.Extension.SelectByID2("草图3", "SKETCH", 0, 0, 0,False, 0, Nothing, 0)
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("草图3", "SKETCH", 0, 0, 0,False, 0, Nothing, 0)
boolstatus = Part.SelectedFeatureProperties(0, 0, 0, 0, 0, 0, 0, 1,0, "基准椭圆1")
1.3.6 沿螺旋线扫描削除螺纹
boolstatus = Part.Extension.SelectByID2("基准椭圆1", "SKETCH", 0, 0,0, True, 0, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("螺旋线/涡状线1", "REFERENCECURVES", 0, 0, 0, True, 0, Nothing, 0)
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("基准椭圆1", "SKETCH", 0, 0,0, False, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("螺旋线/涡状线1", "REFERENCECURVES", 0, 0, 0, True, 4, Nothing, 0)
Dim swFeat As Object
Dim swFeatMgr As Object
Set swFeatMgr = Part.FeatureManager
Dim swFeatData As Object
Set swFeatData = swFeatMgr.CreateDefinition(swFeatureNameID_e.swFmSweepCut)
swFeatData.AdvancedSmoothing = False
swFeatData.AlignWithEndFaces = 1
swFeatData.AssemblyFeatureScope = True
swFeatData.AutoSelect = True
swFeatData.AutoSelectComponents = True
swFeatData.D1ReverseTwistDir = False
swFeatData.Direction = -1
swFeatData.EndTangencyType = 0
swFeatData.FeatureScope = True
swFeatData.MaintainTangency = False
swFeatData.MergeSmoothFaces = True
swFeatData.PathAlignmentType = 10
swFeatData.PropagateFeatureToParts = False
swFeatData.StartTangencyType = 0
swFeatData.ThinFeature = False
swFeatData.ThinWallType = 0
swFeatData.TwistControlType = 0
swFeatData.SetTwistAngle 0
swFeatData.SetWallThickness True, 0
Set swFeat = swFeatMgr.CreateFeature(swFeatData)
End Sub
结束程序,另存为-修改名字:solid.SLDPRT。
2.管壁与流体Solidworks组合划分
1)打开保存好的solid.SLDPRT文件,正视于前视基准面。菜单中选择插入-零件,选择保存好的fluid.SLDPRT。2)将零件对齐到圆心的位置。3)分别选择两个底面作为配合设定实体,打勾确认,零件插入完成。4)上方菜单-插入-特征-组合。5)操作类型选择删减,实体均选择扫描削除后的实体,打勾确认。6)另存为Solid_tube.SLDPRT,螺纹管建模结束。
3.导入ANSYS Fluent仿真的预处理
导入Fluent进行模拟仿真求解,流固耦合需要螺纹管和流体均有实体。.SLDPRT也不是ANSYS能够通用的模型格式,因此,需要对模型进行进一步预处理。
1)再次正视于前视基准面,插入-零件。2)同样选择各自底面作为配合设定实体。3)另存为Parasolid(.x_t,.x_b)格式,可以转换成ANSYS通用的模型格式。
本发明能够有效的解决螺旋波纹管建模不够准确和耗时长的问题,为波纹管换热器数值计算的建模提供一种快速准确的解决方案。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
- 基于宏命令建模的螺纹管换热器设计方法
- 一种基于手势交互的三维建模软件框架及设计方法