摘 要:提出了基于SolidWorks 软件的参数化建模方法,实现通过API 对象进行系列化定型产品的参数化三维设计过程,介绍了采用Delphi 编程环境下进行二次开发的基本流程以及关键性技术。重点解决了球头铣刀二次开发中数据自动读取以及建模中的难点,提高了设计效率,为后续的有限元分析提供了基础。
1 引言
在模具多维曲面的加工中, 已普遍应用数控仿形铣削工艺,硬质合金可转位球头立铣刀已成为模具仿形加工中必不可少的刀具。同时,随着CAD/CAM/ CAE 的发展,对产品进行有限元分析已经成为设计环节必不可少的阶段。在这个阶段中,能否精确绘制出产品的三维模型会直接影响到有限元分析结果的正确性。由于球头铣刀的角度和尺寸较多,使得建模过程比较复杂,如果对于不同刃径、不同参数的球头铣刀,都需重新建立一次模型,就会使建模过程十分繁琐,造成设计效率低下、生产周期延长。因此,刀具的参数化设计过程成为了急需研究的重点 。
由于球头铣刀的结构、形状都有一定的标准,是一种系列化的产品。同类型的球头铣刀具有相同或相似的结构特征,只是其中尺寸、角度等参数有所不同。为了使球头铣刀的设计过程更加方便、快捷,本文利用Delphi 软件对SolidWorks 进行二次开发,通过对一个标准球头铣刀三维模版中相应参数的修改,来自动建立球头铣刀的三维模型。
2 二次开发工具分析
(1) SolidWorks 是一套基于Windows 的CAD/CAE/ CAM/ PDM桌面集成系统,它全面采用非全约束的特征建模技术,可以在设计过程中的任何环节修改设计,同时牵动相关部分的改变。为了方便用户进行二次开发, SolidWorks 提供了几百个API 函数,这些函数就是SolidWorks 的OLE 或者COM 接口,通过这些接口,就可以使用VB/ VBA/ VC/ Delphi等高级语言进行二次开发, 建立需要的、专用的SolidWorks 功能模块。
(2) Borland 公司出品的Delphi7 增强了数据库和网络处理功能,并且实现了跨平台程序处理和数据库操作,提供了开发Windows 或者Linux 数据库最迅速最简洁的方法。Delphi7 封装了大量的类,采用了事件处理机制,对控件进行很好的封装,隐藏了事件处理的具体细节,方便用户进行开发。由于二次开发一般都需要有后台数据库进行支撑,而且数据库开发在整个二次开发过程中所占的比重非常大,所以利用Delphi 强大的数据库功能来进行产品的二次开发,较VC、VB 等软件有着很大的优势。
3 SolidWorks 二次开发方法分析
对SolidWorks 进行二次开发,一般采用以下两种方法:
(1) 模拟实际建模过程———通过SolidWorks 软件提供的API 函数,通过选择基准面,建立草图,进行特征操作等一系列同实际建模过程相同的步骤,得到所需要的实体模型。使用这种方法,每个步骤完成之后都需要详细计算所需要的点、线、面的坐标用于下一步的选择。这种方法适用于结构形状不一致,但建模使用的特征较少的三维模型(如主轴、组合夹具等) 的建模过程。但是建立过程比较复杂,容易出错,且对于一些复杂型面的模型(如旋转类刀具等) ,采用这种方法是很难实现的。
(2) 修改标准模版———通过SolidWorks 建立一个标准的三维模型实例,对互相联系的设计参数进行关联,建立三维模型图形库。通过API 函数,对其中的驱动尺寸进行修改,得到所需要的实体模型。
4 球头铣刀标准模版的建立流程( 仿形面切除法)
通过以下的建模过程可以建立出三维实体模型,并以二维图中的尺寸作为建模时的驱动尺寸 ,对建模过程中的其它尺寸进行关联,得到参数化设计的模版。建模过程如下:
图1 四刃球头铣刀二维工程图
5 Oracle 数据库的建立以及读取
球头铣刀参数分为两部分:外形参数以及设计参数。外形参数指的是通过铣刀标准、刃径就能确定的一些基本尺寸(如:总长、刃长、柄长等) 。在O2racle 数据库中用单独的球头铣刀外形表进行存储,如图2 所示。
图2 球头铣刀刃部特征
设计参数指的是通过刃径、被加工材料返回的参数(如:螺旋角,端刃、周刃的前后角等) 。在Ora2cle 数据库中用单独球头铣刀标准库进行存储。
返回外形参数:
procedure TF- main. CB- sirenqiutou - waixing- renjingExit(Sender :TObject) ;
begin
chaxun. SQL. Clear ;/ / chaxun 为ADOquary 控件
chaxun. SQL.Add(’select* from 铣刀外形表where 名称= ’’’+ key1 + ’’’and 刃数= 4 and 标准= ’’’+ CB- sirenqiutou - waixing- biaozhun. Text + ’’’and 刃径= ’’’+ CB- sirenqiutou - waixing- renjing. Text + ’’’’) ;
chaxun.Open ;
if chaxun. RecordCount < > 0 then begin / / 如果存在相应外形数据
E- sirenqiutou - waixing- zongchang. Text : = chaxun. FieldValues[’总长’] ;
E- sirenqiutou - waixing- renchang. Text : = chaxun. FieldValues[’刃长’] ;
‘‘‘‘‘‘‘‘‘
End ;
同样方法可以从球头铣刀标准中返回设计参数。
6 通过API 函数建模
关键代码:
procedure TF- main. B- sirenqiutou - 3DClick ( Sender : TObject) ;/ / 点击生成三维模型按钮
var
swapp :isldworks ; / / 申明变量swapp 为sldworks 对象
part :imodeldoc2 ; / / 申明part 为modeldoc2 对象
nerrors ,nwarnings :longint ;/ / 声明错误类型
longstatus :longint ;
begin
swapp : = GetorCreateObject (’sldworks. application’) ;/ / 获取
SolidWorks 对象
Swapp.Visible : = true ;/ / 置为可见
part : = swapp.OpenDoc6 (’D: \ ZGCC - CAPP \ 工程模版\ 铣刀\ 四刃球头铣刀\ 整体形式\ 球头铣刀. SLDASM’,2 , 0 , ’’, nerrors , nwarnings) ;/ / 打开模版文件
part.Visible : = true ;/ / 将模版文件置为可见
swapp. ActivateDoc2 (’球头铣刀. SLDASM’, true , longstatus) ;/ / 将球头铣刀模版置为活动窗口
part. SelectByID( ’草图1 @刃部- 1 @球头铣刀. SLDPRT’,’SKETCH’,0 ,0 ,0) ; / / 选择刃径草图
part. EditSketch() ;/ / 编辑刃径草图
part. SelectByID( ’D1 @草图1 @刃部- 1 @球头铣刀.SLDPRT’,’DIMENSION’, 0 , 0 , 0) ;/ / 选择刃径草图尺寸1
part. IParameter ( ’D1 @草图1 @刃部. SLDPRT’) . SetSystemValue2 (strtofloat (CB - sirenqiutou - waixing- renjing. Te
xt) / 1000 ,0) ;/ / 将界面上的刃径值传递给SolidWorks 中
相应尺寸
⋯⋯
part. ClearSelection ;/ / 取消所有选择
part. EditRebuild3 ;/ / 重建模型
End ;
同样可以将界面上其余参数传递到SolidWorks绘图环境中对现有模版进行修改。最后通过API 函数中的重建命令: EditRebuild3 对修改后的模型进行重建,就得到了需要的三维实体模型。
7 结语
本软件系统以Delphi 为基本开发语言,以Solid2Works 为基本设计平台。运行时只需通过人机界面进行简单的交互,即可实现丝锥的3D 建模。该系统把人从复杂的刀具设计以及繁重的绘图工作中解放出来,极大地提高了设计效率,缩短了新产品的开发周期,对于外形相似、规格不同的球头铣刀建模,通过简单的操作就能解决问题,在实际工作中具有广泛的应用前景。