六自由度机械臂参数化设计

2022-03-07 06:58冯小广
软件导刊 2022年2期
关键词:工程图二次开发驱动

冯小广,刘 磊

(上海理工大学 机械工程学院,上海 200093)

0 引言

一般而言,工程机械臂是多输入输出、高非线性、强耦合的多体系统。机械臂基于自身动力完成多种作业需求,可用于装备制造、焊接检测、重型装配等生产环节,在矿山机械、智慧交通、航空航天、军工制造等诸多领域有着广泛应用。现代化工业技术飞速发展,社会生产规模大、自动化程度高,工程机械在整个生产建设中发挥着越来越重要的作用。机械臂是各种工程机械设施的主要组成部件之一,其动力学特性决定了工程机械整机的性能发挥。工程机械臂作业工况在一般情形下较为恶劣,所受载荷复杂。因此,为保证机械臂可靠运行、安全作业并提高工作效率,对其结构进行优化设计尤为必要。

在机械臂结构设计中,传统的产品设计方案是根据设计需求,参考同类产品的经验数据,凭借一定理论判断以选定设计参数,再进行校核计算。其结构复杂,如果对每个零件进行个性化设计,会导致工作量大、开发周期长、效率低下等问题。随着计算机技术的普及,产品设计技术日益成熟,计算机辅助设计已成为现代制造业的发展新趋势,在CAD 技术的实际应用中,参数化设计技术是目前主流的发展方向之一。所谓参数化设计是指将模型中的约束信息变量化,使之成为可以调整的参数,给变量化参数赋以不同数值,就可以得到不同大小和不同形状的零件模型,这种设计方法效率高、实现简单、可移植性强,对形状或功能相似的产品设计具有重要意义。用户在设计轮廓时无需准确定位和定形,只需勾画出大致轮廓,然后通过修改标注的尺寸值以达到最终形状,或者只需将邻近的关键部分定义为几个参数,通过对参数的修改实现产品设计。参数化设计在机械臂机械结构中的应用不仅极大地提高了设计和绘图效率,而且体现出很高的应用价值。

目前,Chugunov 等研究了SolidWorks 二次开发程序在实际应用和优化方面的问题,对参数化建模与界面实现进行了比较全面的概述;Yu系统阐述了基于SolidWorks的参数化设计和智能化装配工作原理及简单的开发方法,以上方法提供了参数化设计思路,但未进行相关实际应用;Reddy 等基 于SolidWorks API(Application Programming Interface)开发了一套智能化的轴承设计数据库;张小鹏等基于SolidWorks 实现了球阀阀体参数化设计,该方法解决了参数化设计过程中零部件的自动生成问题,但并未涉及复杂装配问题;刘宏新等采用关联尺寸链驱动复杂结构的关键参数,该方法解决了参数化设计过程中的数据冲突,但未准确定义装配关系。

综上所述,机械设计过程中的参数化技术得到了广泛运用,提高了产品设计效率与企业竞争力,但其在工程机械臂结构设计领域的应用还处于初步阶段。因此,本文开展工程机械臂的参数化设计方法研究,以六自由度工程机械臂为对象,开发出一套可视化操作界面的参数化设计系统,设计人员输入相关零部件基本参数,系统可精准、快速生成机构的零部件、装配体三维模型以及工程图,避免了大量繁琐建模工作,成功实现了产品快速设计系统,从而极大缩短了产品设计周期、节约了开发成本。同时,降低了对设计人员的专业要求,能够满足当代机械臂结构设计过程中的个性化与定制化新需求,为机械臂结构设计问题提供了一种通用的新方法。

1 SolidWorks 二次开发技术

参数化设计大多数通过三维软件(如SolidWorks、Pro∕E、CATIA、UG 等)进行二次开发,以实现在输入基本参数的情况下自动建立零件的三维模型。SolidWorks 是一套基于Windows 平台的优秀三维设计软件,具有用户界面友好、上手快的优点,采用特征建模、变量化驱动可方便地实现三维建模、装配并生成工程图。

1.1 SolidWorks 二次开发方法

尺寸驱动法与程序驱动法为SolidWorks 二次开发的两种主要方法。尺寸驱动法基于零件模型结构不变,通过编写程序语言改变现有零件模型的相关尺寸以实现参数化建模。程序驱动法又称模型驱动法,是通过应用程序将零件三维建模的全过程严格按照顺序完成构建。两种方法都可以实现参数化建模,各有其优势。尺寸驱动法代码程序量少、编程难度小,对于相似模型无需重复编程;程序驱动法适用范围广,对于需要在设计过程中动态生成零件的外形结构情况下亦适用。

1.2 SolidWorks 二次开发原理

基于对象链接与嵌套技术OLE(Object Linking and Embedding)和基于对象模型重组技术COM(Component Object Model)是基于SolidWorks 进行二次开发的两种原理。OLE 技术为微软公司开发,通过嵌入技术和数据链接轻松实现应用程序间的数据互换。COM 技术为面向对象模式,将系统功能分解为单一功能组件,在组件与组件之间、组件与开发人员之间制定统一通信标准,再将各组件有序结合形成统一整体。

以OLE 技术或COM 技术为基础的API 能函数是Solid-Works 提供的二次开发编程接口,开发人员可以便捷地调用API 函数开发出自己所需的应用程序。用户在应用程序中对SolidWorks API 进行操作,等效于在SolidWorks 软件中进行操作。

1.3 SolidWorks 二次开发工具

VB、VB.net、C++、C#等是适用于OLE 技术和COM 技术的计算机常用开发语言,都可以用来进行SolidWorks 二次开发。开发者可根据自身需求选择其中一种合适的作为开发语言。C#是一种语法简单、类型安全的面向对象的编程语言。作为当前主流编程语言之一,作为SolidWorks二次开发的编程语言具有相当广阔的应用前景。

2 机械臂参数化设计系统

机械臂参数化设计系统选用尺寸驱动法与程序驱动法相结合的方式,编程工具选用

C#

。机械臂参数化系统总体构架包括三大部分:进行人机交互的用户层,传递设计参数信息,实现系统功能;处于系统核心的开发层,连接用户层与数据层,提供技术支撑;负责储存功能的数据层,储存产品信息,提供数据支撑。通过在三者之间建立逻辑关系实现机械臂参数化设计,为用户搭建简单、快捷的人机交互平台。系统总体构架框图如图2 所示。

Fig.1 System overall architecture图1 系统总构架

参数设计流程如图3 所示,具体流程为:首先用户登录进入可视化界面获取零件的关键特征参数;然后根据所需模型修改设计参数,点击生成模型,系统将自动检测所输参数是否符合参数规范,若不符合将给出警告并返回上级重新输入参数,若符合直接自动更新设计参数并生成新的零件三维模型;最后将新零件模型进行配合生成装配体并保存;最后导出机械臂工程图完成设计。

Fig.2 Parametric design flow图2 参数设计流程

2.1 机械臂模型结构

本文对机械臂模型进行参数化设计系统开发,机械臂整体结构如图3 所示,本文机械臂共有6个自由度,由电机驱动,主要由底座、前臂、上臂、手腕、手爪、肩关节、腰关节、肘关节、腕关节、手爪关节组成。其中,底座起安装与固定机器的作用;手爪用来抓取重物;运动机构由前臂、上臂、手腕、手爪、肩关节、腰关节、肘关节、腕关节共同组成,使手爪完成移动、转动及复合运动,实现变更物体抓持姿势与位置。机械臂自由度指机器所具有独立坐标轴运动的数目,由运动机构决定,为抓取空间中任意方位的物体,最少需要6个自由度。自由度是机械臂结构设计的关键,表示机械臂的灵活程度,但并不是自由度越多越好,随着自由度的增加,其结构变得更加复杂。

Fig.3 Overall structure of manipulator图3 机械臂整体结构

2.2 机械臂零件模块设计

本文选用尺寸驱动法和程序驱动法相结合实现零件参数化建模。通过对系统零部件进行结构特征分析,可以分为固定参数零部件和关键零部件,固定参数零部件是不经过任何更改直接调用的零件,关键零部件是指需要经过尺寸参数及特征的更改变化,重新进行建模的零件。零件模块的加载即对机械臂参数化设计系统中的关键零件进行重新三维建模,其核心内容便是对模型尺寸参数进行修改。

将关键尺寸定义为全局变量,直接控制零件模型结构变化。关键零件设计参数如表1 所示,包括:底座直径、高度、厚度;前臂高度、宽度、长度、厚度;上臂高度、宽度、长度、厚度。为保证参数设计合理,符合基本工程作业要求,通过制定相关参数规范进行监测。

Table 1 Key parameters表1 关键参数

零级模型参数设计部分代码如下:

2.3 机械臂装配体模块设计

自底向上设计方法(Bottom-Up)和自顶向下设计方法(Top-bottom)是模型装配的两种基本方式。两种方法各有其优缺点,Bottom-Up 的主要思路是先设计各零件,然后用零件组装装配体;Top-bottom 设计数据先从装配体总装出发,然后逐步传递到子装配体、零件过程。

系统中的零件模型已通过参数化完成,因此本文采取Bottom-Up 方法进行模型装配。在装配过程中选择与零件接触面最多的个体作为固定零件,以免在发生配合错误时引起连锁反应。完成装配主要分为3 步:首先导入零件模型,遵循先导入固定零件,再根据配合的难易程度导入其他关键零件;然后根据零件之间的相对位置通过基准坐标系、基准点、基准线、基准轴、基准面等基准特征反应装配约束关系。常用配合关系有垂直、重合、平行等;选定零件待配合面按照配合关系完成装配。

装配具体步骤和部分相关代码如下:

2.4 机械臂工程图模块设计

工程图模块是设计系统中的最后部分,主要实现三维模型转换二维工程图功能,用于指导后期产品的制造加工。因此,工程图模块同样至关重要,生成的图纸质量直接关系到成品优劣。工程图模块中,通过提前建立好零件与装配体模板,当用户输入修改的模型设计参数时,工程图自动随之修改参数与其相匹配,并实现自动标注。

其部分代码如下:

2.5 可视化界面设计

在Visual studio 中建立可视化界面,零件模块、装配体模块、工程图模块的可视化操作界面如图4—图6 所示。用户登录进入零件模块获取机械臂关键零件模型参数,通过输入修改参数点击生成按钮就会重建相关零件模型。当零件模型全部完成重建后导入装配体模块,点击装配体生成按钮可进行机械臂装配。最后进入工程图模块,可自动生成模型工程图。

Fig.4 Part module图4 零件模块

Fig.5 Assembly module图5 装配体模块

Fig.6 Engineering drawing module图6 工程图模块

系统各功能模块中主要步骤运行时间如表2 所示,其中人工绘制时长参考作者本人,该方法大大节省了时长,将绘图效率提高了数十倍,并且此表仅为每个零部件尺寸修改一次的对比,实际设计过程中需反复修改,效率提高更为显著。

Table 2 Comparison of system operating efficiency and manual efficiency表2 系统运行效率与人工效率对比

3 结语

本文在Visual Studio2012 开发环境下,以C#为开发语言,应用SolidWorksAPI 接口技术对SolidWorks2018 进行二次开发,建立了基于尺寸驱动法的六自由度机械臂快速设计系统。该系统主要实现了机械臂零部件的参数化设计、自动生成装配体、工程图的导出等功能。用户通过可视化界面,能够快速精确地选择和设计出满足定制化的机械臂结构,在确保设计质量的前提下提高了设计效率,节约了开发成本,也为机械臂后续的动力学研究、轨迹规划奠定了基础,具有一定现实意义。该研究方法具备通用性,可应用于其他同类产品设计与研究,后续研究可考虑优化系统运行效率、改善可视化界面以及添加其他功能模块。

猜你喜欢
工程图二次开发驱动
基于模糊PI控制的驱动防滑仿真系统分析
“3+4”人才培养模式下本科阶段“工程图学”课程的优化设计
屈宏斌:未来五年,双轮驱动,砥砺前行
面向工程认证的机制专业工程图学(一)课程教学探索
浅谈基于Revit平台的二次开发
轨旁ATC系统门控柜接收/驱动板改造
浅谈Mastercam后处理器的二次开发
分析三维CAD建模技术在工程图学中的应用
西门子Easy Screen对倒棱机床界面二次开发
基于S3C6410的Wi-Fi驱动移植实现