欢迎访问装备制造资讯网!

装备制造资讯网

您现在的位置是: 首页 > 机械制造 >详情

机械制造工艺学毛坯尺寸(模具零件毛坯尺寸的自动导出方法)

发布时间:2024-05-06 00:46:44 机械制造 43次 作者:装备制造资讯网

毛坯尺寸是零件的基本属性之一,为模具、工装和机加产品等的结构设计、干涉分析、材料准备、成本分析、确定加工周期等方面提供了重要的参考作用。目前主流的三维设计软件均提供测量零件包络体的功能,主要有2种测量模式[1],一种为轴对齐包围盒AABB(axis-alignedboundingbox),另一种为最小包围盒MBB(minimumboundingbox),如图1所示。最小包围盒MBB尺寸加上适当的加工余量(机加零件一般为10mm),即可得到零件的毛坯尺寸。

图1零件的AABB和MBB包围盒

机械制造工艺学毛坯尺寸(模具零件毛坯尺寸的自动导出方法)

对于最小包围盒MBB的算法,不少学者和专家对其进行了大量研究工作。GBAREQUET等[2]提出利用三维点集来近似求解最小包围盒的算法,首先对实体模型进行离散化,但想要获得较高精度的计算结果,必须使得离散化程度更高,从而降低了运行效率;陈柏松等[3]提出一种基于非线性主成分分析的最小包围盒计算方法,首先计算顶点区域面积,然后用每个顶点区域面积对顶点进行调制,再使用传统主成分分析得到目标正交坐标系,从而得到最小包围盒,该方法计算稳定,但处理较多顶点时速度较慢,且无法处理设有连接关系的点集数据;陈华等[4]提出一种确定任意形状物体最小包围盒的方法,利用实体模型分别绕3个坐标轴旋转一定角度时计算一次方向包围盒OBB(orientedboundingbox),最后找出体积最小的OBB作为最小包围盒,但该方法计算速度慢、效率低;孔垂品等[1]提出一种零件的最小包围盒生成算法,根据旋转投影的外轮廓确定最小包围盒,采用逐步细分法,通过2轮旋转来提高计算效率,但处理单个复杂零件耗时已超过100s,不适合一次性处理较多零件。

对于一般机加工产品,目前测量最小包围盒的方法为:利用三维设计软件,采用手动方式逐个对零件进行测量,再将测量结果逐一手动记录。但对于大型的模具、工装和机加工产品,零件数量可能成百上千,如果再采用手动测量和记录的方式,工作量巨大且容易出错,影响工作效率。王孟等[5]基于CATIA/CAA对三维型材的毛坯模型生成技术进行了研究,龙军等[6]将UG二次开发技术用于铸件毛坯三维实体自动生成,该方法主要用于识别孔、凹槽、倒角等加工特征,并将零件模型恢复到机加工前状态,无法准确用于测量零件的最小包围盒。针对该问题,需要编制一套高效可靠的程序,快速自动测量和输出最小包围盒尺寸,并最终获得零件的毛坯尺寸,提高工作效率。

1开发工具

CATIA是一款CAD/CAE/CAM一体化软件[7],广泛应用于机械设计、航空航天、汽车制造、造船、电子电器等行业。为了满足用户个性化和专业化需求,CATIA为用户提供了多种二次开发接口[8],其中包括基于构件的应用编程接口(CAA)[5]和自动化对象编程接口(VBA)[9]。CAA是CATIA已有组件的定制开发,主要为VisualC++和Java语言,并要具备连接端口等方面的知识,入门相对困难;VBA是交互式的定制开发,主要为VisualBasic语言[10],虽在功能上不及CAA强大,但简单实用,可以满足一般专业化需求。现主要介绍在CATIA中采用VBA二次开发接口,使用VB语言进行编程,实现自动批量导出零件毛坯尺寸的功能。

2程序设计方法

2.1设计思路和原理

程序设计应简单实用、稳定运行和计算正确,主要从以下2个方面进行考虑。

(1)可对某文件夹中的所有零件进行自动批量处理,并将结果输出到Excel表中,方便后续操作。采用递归算法遍历某文件夹及其子文件夹中的全部零件,程序执行的主要流程如图2所示。

图2零件毛坯尺寸自动导出流程

(2)装配状态包含零件、子装配、部件等多个对象,测量最小包围盒时容易出错,最好单独打开零件进行测量。

2.2功能实现

2.2.1查找零件

查找某文件夹及其子文件夹中的所有CATIA零件(*.CATPart),并将相关文件信息输出到Excel表。

查找零件的子程序代码如下。

Publicn_FileAsDouble'文件数量

PublicFileName(1To65536)AsString'文件名称

PublicFilePath(1To65536)AsString'文件路径

PublicSubSerachFile(ByValPath1AsString)

ForEachfileInCreateObject("Scripting.FileSystemObject").GetFolder(Path1).Files

IfInStr(file.Name,".CATPart")0Then'判断是否为零件类文件

n_File=n_File+1

FileName(n_File)=file.Name

FilePath(n_File)=Left(file.Path,InStrRev(file.Path,"\"))

Endif

Next

IfCreateObject("Scripting.FileSystemObject").GetFolder(Path1).SubFolders.Count>0Then

ForEachFolderInCreateObject("Scripting.FileSystemObject").GetFolder(Path1).SubFolders'子文件夹中递归调用

SerachFileFolder.Path

Next

EndIf

EndSub

将文件信息输出到Excel表的代码如下。

DimEXCEL1AsWorkbook

SetEXCEL1=Excel.Workbooks.Add'新建Excel表

EXCEL1.Application.Visible=True

Dimsheets1AsWorksheet

Setsheets1=EXCEL1.Worksheets(1)

C_FileName="A"'文件名称所在列

C_FilePath="B"'文件路径所在列

ForEachfileInfils

n_File=n_File+1

sheets1.Range(C_FileName&n_File+1).Value=CStr(file.Name)

sheets1.Range(C_FilePath&n_File+1).Value=FilePath1

Next

2.2.2读取零件

读取Excel表中的文件信息,并使用CATIA软件依次打开零件模型,代码如下。

Fori=1ton_File

SetModel1=CATIA.Documents.Open(FilePath(i)&“\”&FileName(i))

Next

2.2.3测量零件

CATIA软件未直接提供测量零件最小包围盒MBB的函数,但可以通过以下2种方法获得MBB尺寸。

(1)惯性主轴法。先使用GetPrincipalAxes函数获得零件实体的惯性主轴,然后使用AddNewExtremumPolar函数创建沿3个坐标轴方向的极点,极点沿坐标轴方向的跨度即组成了最小包围盒尺寸。但是该方法在创建极点时相当于对零件模型进行了更改,容易引起存储错误和文件关闭时弹出提示问题,不利于程序的稳定运行和模型安全,降低了运行效率,不适合批量处理多个零件。

(2)测量惯量法。利用CATIA软件的测量惯量功能(自定义中需勾选“主轴”),对零件实体进行测量,此时结构树上会出现测量参数,如图3所示。其中“BBLx”、“BBLy”、“BBLz”即为最小包围盒尺寸。该方法测量速度快、精度高,且未对零件模式进行更改,主要代码如下。

图3结构树上的测量参数

Setsel=Model1.Selection

sel.Clear

Setpart1=Model1.Part

sel.Addpart1.MainBody'选定零件实体

CATIA.StartCommand'调用测量惯量命令

C_RoughSize="C"'毛坯尺寸所在列

sheets1.Range(C_RoughSize&i).Value=Round(part1.Parameters.GetItem("BBLx").Value+10,1)&"*"&Round(part1.Parameters.GetItem("BBLy").Value+10,1)&"*"&Round(part1.Parameters.GetItem("BBLz").Value+10,1)'+10表示加工余量为10mm

2.3实例验证

为验证该方法的使用效果,先对图1所示的单个标准零件GB/T70.1M10x50(内六角圆柱头螺钉)进行测试,在处理器2.4GHz、内存8GB的电脑上处理时间约4s,测试结果如图4所示。然后对某复合材料产品的模压模具组件进行测试,如图5所示,处理12个零件用时约38s,测试结果如图6所示。经过手动测试复核,表明了测试结果准确无误。

图4单个零件毛坯尺寸测试结果

图5某复合材料产品模压模具

图6多个零件毛坯尺寸测试结果

▍原文作者:戈家荣姚子佳朱高良赵云李治举

▍作者单位:绍兴宝旌复合材料有限公司