基于VB语言对SolidWorks参数化设计的二次开发

By | 01月09日
Advertisement

0 引言

随着数字信息化进程的快速推进,如今三维CAD技术在越来越多的企业当中得到运用。为了降低在设计生产中的成本,缩短设计周期,增强企业竞争力,三维参数化技术随之应声,它凭借更贴近现代概念的设计以及并行设计的思想得到了越来越多工程设计人员的青睐,设计人员可以在早期的开发阶段运用三维参数化技术快速模拟零件的三维草图,再通过数值输入对其形状及大小进行约束,绘制精确的零件图,并将零件放入零件库中,方便以后的使用及修改工作。从而大大减少了重复性绘图的时间,提高了工作效率。

本文以三维CAD软件SolidWorks为平台对参数化二次开发的方法以及关键技术进行了讨论,通过例举实例来详细介绍其二次开发的整个过程。

1 SolidWorks二次开发基本原理

1.1 SolidWorks二次开发的两种形式

任何支持OLE(Object Linking and Embedding,对象连接与嵌入)和COM(Component Object Model,组建对象模型)接口的编程语言都可以作为SolidWorks的开发工具。SolidWorks二次开发分为两种:一种是基于自动化技术的,可以开发EXE形式的应用程序。另一种开发形式是基于COM的,这种技术可以使用最多的SolidWorks API(应用程序编程接口)。API可控制SolidWorks会话的方式,生成*.dll格式的文件,也就是SolidWorks的插件。

1.2 SolidWorks二次开发的对象

从图1中可以看到SolidWorks对象包括ModeIDoc、Environment、Frame、AttributeDef Modeler、SWPropertySheet以及一些其他对象。SldWorks是SolidWorks API中的最高对象,它能够直接或间接地访问SolidWorks API中的所有其他对象。利用SldWorks可以实现程序的最基本的操作,如创建、打开、关闭、结束文件、重排图标和窗口、设置当前的激活文件、生成属性定义,也可以对SolidWorks的系统环境进行设置。SldWorks中所包含的对象分为若干层,每一层又包括若干个对象,每一个对象都有自己的属性、方法和事件。这些OLE对象涵盖了SolidWorks的全部数据模型,通过对SolidWorks的OLE对象属性的设置和对OLE对象方法的调用,就可以在用户自己开发的系统中实现与SolidWorks相同的功能。

基于VB语言对SolidWorks参数化设计的二次开发

图1 SolidWorks API对象梗概图

1.3 SolidWorks二次开发的工具

SolidWorks的二次开发工具较多,用户可以根据自身的条件及工具的特点,选择一种合适的开发工具。SolidWorks主要的二次开发工具有:Delphi、Visual C++6.0、Visual Basic 6.0、VBA等。相比较而言,Visual Basic编程语言具有不可替代的简单易用性和真正的“所见即所得”特性为广大工程设计人员所接受。

2 SolidWorks二次开发的方法及流程

2.1 SolidWorks二次开发的方法

本文主要介绍基于VB语言的SolidWorks二次开发,以VB语言对其进行二次开发又可以通过两种形式,一种是语言的完全编程开发,另一种是设计变量和编程语言相结合的开发形式。前者需要设计人员通过API接口,对要表述的所有对象进行程序编写,这样可以实现三维图形的程序驱动,并且能精确构造复杂尺寸的三维造型。但是这种开发形式要求设计者精通编程语言,同时,由于所有对象都需要人工表述定义,所以存在设计周期较长,工作量较重,开发效率不高的问题。后者主要是以SolidWorks中提供的宏的录制功能作为工具。在编写程序时,把通过宏操作获得的代码用做工程基础,然后对其进行适当的编辑修改,再添加到应用程序的代码中。这样,通过宏操作和交互式的执行任务,不仅可以提高编程效率,而且更便于工程设计人员所使用。凭借后者在开发过程中所体现出的明显优点,这种开发方式也成为了SolidWorks二次开发的主旋律,以下针对该种方法来详细说明SolidWorks二次开发的整个过程。

2.2 SolidWorks二次开发的流程

应用程序的开发流程如图2所示,其中主要包括建造三维模型图并确定各尺寸关系,Access数据库连接,用户界面设计,编写程序代码,编写窗体事件和调试程序等内容。

基于VB语言对SolidWorks参数化设计的二次开发

图2 SolidWorks二次开发的流程图

3 SolidWorks二次开发的关键技术

下面以经典齿轮为例来详细说明SolidWorks二次开发的整个过程。在这里要强调的是,在对齿轮的标准建模时,尽量用最少的步骤,尽少的参数尺寸来清晰定义齿轮特征。如图3所示,为圆柱齿轮的设计草图。

基于VB语言对SolidWorks参数化设计的二次开发

图3 圆柱齿轮草图

1)确定齿轮的设计关系

齿顶高ha=ha*m=m;

齿根高hf=(ha*+c*)m=1.25m;

全齿高h=ha+hf=(2ha*+c*)m=2.25m;

分度圆直径d=mz;

基圆直径db=dcosa;

齿顶圆直径da=d+2ha=m(z+2ha*);

齿根圆直径df=d-2hf=m(z-2ha*-2c*);

由以上齿轮的标准公式得出,确定齿轮规格的参数主要有五个,它们分别为模数m、齿数z、压力角a、齿顶高系数ha*、顶隙系数c*。

2)在设计关系明确后,确定程序中需要定义的齿轮的变量参数“文件名”、“材质”、“型号”、模数“m”、齿数“z”、压力角“a”、齿顶高系数“ha*”、顶隙系数“c*”、齿宽“b”。

3)运用SolidWorks软件绘制齿轮的三维模型,整个绘图过程用宏功能进行录制。

4)在Visual Basic 6.0中建立一个用户友好界面。如图4所示,在界面中加入图片显示窗口,让用户能够直观认识零件造型及参数变量,同时加入用户输入窗口,让使用者可以通过对照名称标注,人工定义数值来进行条件约束。添加命令按钮来实现绘图及退出程序的功能。

基于VB语言对SolidWorks参数化设计的二次开发

图4 圆柱齿轮的参数化界面

5)数据定义的错误提示

在自定义环境下对齿轮进行数值定义的过程中,齿数不能小于17,圆孔直径不能过大。

为了让使用者直观找到问题,加入msgbox提示,如图5所示。

基于VB语言对SolidWorks参数化设计的二次开发

图5 错误提示

6)优化程序并为参数变量赋值

程序中关键代码如下:

以下代码为建立VB6.0与SolidWorks之间的联系。

基于VB语言对SolidWorks参数化设计的二次开发

7)Access数据库连接

此外还可以根据需要,创建适合于具体用户的本地变量参数组,设计人员将各变量所对应数值在Access数据库中进行记录并与齿轮参数化程序连接,这样使用者只需在界面中选择特定型号即可得到所需齿轮。如图6所示。

基于VB语言对SolidWorks参数化设计的二次开发

图6 Access数据库中建立的参数关系

8)将程序添加为SolidWorks插件

首先创建一个文件夹,用来存放宏文件。如“D:\Sol.dworks2012\宏文件”;

然后建立文件名为“圆柱齿轮.swp”的宏文件,内容如下:

基于VB语言对SolidWorks参数化设计的二次开发

最后从工具中调用新建宏按钮命令。如图7中加红框部分所示 。

基于VB语言对SolidWorks参数化设计的二次开发

图7 建立【圆柱齿轮】按钮

4 结束语

设计人员通过对SolidWorks的二次开发,可以根据本地的具体问题,设计开发出适用于工作需要的应用程序,建立起适合用户需要、专用的SolidWorks功能模块,运用这项技术可以简化设计工作,缩短产品开发周期,提高产品开发效率,而且应用范围广泛,为众多领域的研发设计工作指明了方向。

Similar Posts:

  • 需求分析--基于VB的Pro/E三维实体标准件库开发

    1, 引言 在机械制造领域中,随着市场经济的发展,用户对各类产品的质量,产品更新换代的速度,以及产品从设计.制造到投放市场的周期都提出了越来越高的要求.在当今高效益.高效率.高技术竞争的时代,要适应瞬息万变的市场要求,提高产品质量,缩短生产周期,就必须采用先进的生产技术.以电子计算机为主要技术手段,将大大减轻科技人员的脑力劳动和体力劳动,甚至能够完成人力所不及的功能工作,从而促进科学技术和生产技术的发展. Pro/ENGINEER软件功能非常强大,通用性非常好,然而在具体的使用过程中不可能满足各

  • SolidWorks二次开发:在程序中获取质量特征里的信息

    问题描述:在SolidWorks中进行二次开发时,在程序中如何实现获得质量特性里的信息,如体积.表面积.重心等. 问题解决: 程序如下(语言类型是VB) Option Explicit Public Enum swMassPropertyMoment_e swMassPropertyMomentAboutCenterOfMass = 0 swMassPropertyMomentAboutCoordSys = 1 End Enum Public Enum swMassPropertiesStatu

  • JAVA:基于ARCGIS二次开发可视化开发环境搭建

    这两天为了搭建这么一个基于java的ArcGIS二次开发环境可着实花了一番心血.在网上搜索各种资料,大部分都是基于C#的,关于JAVA的很少,而且很杂乱,没有一个完整的.详细的.适合新手的这么一个教程.所以,当我在奋斗两天且重装一次系统,终于安装成功之后,写下这篇文章,让用java进行基于ArcEngine二次开发的人可以少走弯路.因为ArcEngine只能在32位系统上面运行,所以当前系统为64位的童鞋就知道该怎么办了,我重装系统就是从64位到32位. 我们用的是Eclipse开发工具,用的是

  • 一、VB语言和怎样学习VB

    VB6.0全称为VisualBasic 6.0,是微软公司推出的可视化编程工具MSDN之一,是目前世界上使用最广泛的程序开发工具.如果你是一个对编程一无所知,而又迫切希望掌握一种快捷实用的编程语言的初学者,那选择VB 6.0没错的.即使考虑到VB程序本身编译和运行效率较低的不足(嘻嘻速度现在不是问题吧),单是它的快捷的开发速度,简单易学的语法,体贴便利的开发环境,它仍不失一款优秀的编程工具,是初学者的首选. 也许你会问,我以前没学过任何一种语言,我能快速上手吗?别担心,没问题VB的语法的和QBA

  • 配送短信猫二次开发接口软件,提供多种开发语言示例

    免费配送的信猫二次开发接口提供有多种开发语言示例,如C#.C++.Delphi.PowerBuilder.VB.net.VC++.VisualBasic等多种开发示例方便程序开发人员开发调试.使用简单方便,将sms.dll文件拷贝到系统安装目录中的system32文件夹中,然后再根据以下接口函数说明和提供的例程源码开发,无需安装,免加密狗.更多关于短信猫开发软件点击 工业级短信猫设备推荐 http://www.sms-hb.com/sms/ 短信猫二次开发接口提供的开发语言示例有: 部分短信猫二

  • 基于phantomjs二次开发的百度元搜索采集器

    在爬虫.自然语言处理群320349384中的交流中,偶然接触到phantomjs.casper等相对于httpclient较新的框架及采集解决方案,微查之后发现方案可行,故尽清明三日之力,将其二次开发应用于百度元搜索信息采集项目中,达到预期效果,下一步将重点应用到腾讯微博采集和抢票抢手机项目中.下面,将分步骤介绍一下. 一.phantomjs介绍 (1)一个基于webkit内核的无头浏览器,即没有UI界面,即它就是一个浏览器,只是其内的点击.翻页等人为相关操作需要程序设计实现. (2)提供jav

  • WebKit之基于Chromium的二次开发

    工程狮自述:我们是怎么做出 Chromium M35 内核浏览器的 36氪的朋友们 • 2014/07/24 17:59 编者按:本文来自 UC 浏览器电脑版技术负责人李云,微博 @至简李云,详细叙述了自己和团队是如何将浏览器内核从 Chromium M32,升级到 Chromium M35 的过程,对相关技术感兴趣的读者可以和他交流. 对于这次内核升级,我们花了很大的精力,也有很多感触.下面简单分享一下,希望与同行一起探讨. 为什么要基于Chromium做二次开发? 肯定会有很多人好奇,为什么

  • JFinal -基于Java 语言的MVC极速 web 开发框架

    JFinal概述 JFinal 是基于Java 语言的极速 web 开发框架,其核心设计目标是开发迅速.代码量少.学习简单.功能强大.轻量级.易扩展.Restful.在拥有Java语言所有优势的同时再拥有ruby.python等动态语言的开发效率. JFinal发展概况 JFinal 项目开发始于2011年初,作者詹波(James Zhan)曾任搜格信息技术有限公司Java架构师,北京信息管理科学研究所CTO,现任微格网际(北京)科技有限公司联合创始人.网校网CTO.项目开源于2012年3月18

  • 基于go语言的心跳响应

    我们在使用tcp ip 通讯的时候,都需要使用心跳机制来判断服务器与客户端的连接状态,如果服务器的心跳超时等,会做出重新连接等机制, 基于这种问题,我今天给大家推荐了一个基于go语言的心跳响应机制,废话不多说直接上code: 源码在这儿 # heartbeat The heartbeat timer Heartbeat简介 Heartbeat是一个基于Go的多任务的定时响应回调 ## 安装 go get -u github.com/noaway/heartbeat Heartbeat的简单使用

  • 基于C语言的脚本开发技术-csp

    什么是 eybuild http://www.eybuild.com/develop/index.htm eyBuild,是 Easy Build 的简写,它是CSP(C Language Service Page)开发套件的总称. eyBuild是嵌入式设备上WEB应用的最理想的开发工具,同是也是服务器WEB应用开发最有益的补充,它包括CSP2BIN.WEB2BIN.DONEMAP.eyBuildLib等开发组件. [中文手册] 什么是 CSP CSP是C Language Service P

Tags: