佳工机电网 在线工博会 我的佳工网 手机版 English
关键字  
  选择展区 >>
您的位置: 首页 > CAD/CAM/PDM/PLM展区 > CAD/CAM软件展厅 > 产品库 > CAD软件 > 技术论文 > 正文 产品库 会展 人才 帮助 | 注册 登录  
CAD/CAM软件
 按行业筛选
 按产品筛选
查看本类全部文章
e展厅 产品库 最新动态 技术文章 企业目录 资料下载 视频/样本 反馈/论坛
  技术应用 | 基础知识 | 外刊文摘 | 业内专家 | 文章点评 投稿 发表科技文章 
用VB进行Solidworks二次开发的编程技巧与实现方法
newmaker
欢迎访问e展厅
展厅
1
CAD/CAM软件展厅
CAD软件, CAD/CAM, CAM, 钣金CAD/CAM, CAI, ...
引言

Solidworks是美国Solidworks公司基于Windows平台开发的著名的全参数化三维实体造型软件,其功能强大、性能优良,易学易用,同时solidworks具有良好的开放性和兼容性。不仅可以向下兼容二维AutoGAD,同时也可以与许多其它专业软件(如有限元分析软件Ansys、三维实体设计软件UG、Pro/E等)无缝集成为功能十分强大的CAD/GAE/CAM/PDM系统,完全能胜任大型工程与产品的设计、分析、制造和数据管理。当前,各类用户不仅在应用Solidworks的强大功能进行各类专业设计,同时也在积极探索Solidworks的二次开发技术,力求扩展Solidworks的功能并使其用户化、专业化、本土化,以提高该软件的附加值与工作效率。本文通过实例介绍了Solidworks二次开发中有关零部件绘制、插件生成及独立可执行文件生成过程中的编程技巧与实现方法。

1. 三维设计VB编程实现

对于大多数三维软件使用者来说,主要是单纯的三维建模和装配。可是在实际的三维设计中经常会遇到不好解决的问题,比如频繁出现的尺寸不同但形状相似的零件,齿轮等零件的曲线绘制等。如果想解决这样的问题就必须涉及到二次开发,使用编程可以使零件建模更加快捷或更加真实。

但是对于大多数初学者而言,由于牵涉到许多solidworks API 底层命令的调用,不容易也不可能全面掌握。因此,利用宏命令进行相关部分的录制,在VB相关语法规则的约束下进行源代码的改写,用这种录制宏的方法可以快速得到solidworks的操作命令,这比检索全英文的API文档方便,从而有效提高了编程效率。

宏录制的源代码不能直接运行,必须在VB编辑器中对制作的宏文件进行一些修改,替换相关代码,删除冗余代码,这样的话录制的宏文件才可以得以顺利运行。关于这方面的文章很多,在此不再赘述。特别强调的是,对于Sub main中出现的前七句代码(本文以新建一个文件为例,其他情况类似):

Set swApp = Application.SldWorks
swApp.ActiveDoc.ActiveView.FrameLeft = 0
swApp.ActiveDoc.ActiveView.FrameTop = 0
swApp.ActiveDoc.ActiveView.FrameState = 1
swApp.ActiveDoc.ActiveView.FrameState = 1
Set Part = swApp.NewDocument("D:\Program Files\SolidWorks\data\templates\零件.prtdot", 0, 0#, 0#)
Set Part = swApp.ActivateDoc2("零件1", False, longstatus)

上述创建方法与SW的安装位置有关联,因此使用下面三句通用的创建零件方法来替代这些代码:

Set swApp = Application.SldWorks
Set Part = swApp.NewPart
Set Part = swApp.ActiveDoc

通过对宏录制的源代码的修改与完善,便可以运行该宏文件。在运行过程中,通过编辑与修改指定命令与参数,便可以直观地了解到该命令与参数的所产生的实际效应,以利于方便地进行特定程序语句的获取与修改。在此过程中,特别强调的一点是,在指定可执行代码的行上设置断点以察觉某处存在的问题或是确认程序在该处的运行效果等,显得尤为有效与实用。

接下来的任务就是在新建的VB程序中,创建窗体、引用相关文件、编写头文件、参照宏录制源程序进行程序段的编写,从而可以便捷高速地实现编程目的。

2. 插件生成

VB创建solidworks 插件思想为,利用solidworks API的功能编制solidworks插件,并集成到solidworks环境中,由solidworks程序进行配置与管理。Solidworks插件是一个DLL文件,在用程序生成DLL的过程中,首先必须定义DLL文件与solidworks链接的接口,其用到的接口函数为:SwAddin.ConnectToSW和SwAddin.DisconnectFromSW。其中SwAddin.ConnectToSW是用户编制的程序志solidworks程序入口函数;SwAddin.DisconnectFromSW是卸载当前插件的函数。具体的插件创建过程流程图如图1所示。特别强调的是,一定应先引用"solidworks 2007 Type Library"、"solidworks exposed Type Libraries For add-in Use"及"solidworks Consant Type Library"三个库文件,否则编译执行时会出错[2]。

newmaker.com
图1 插件创建过程流程图

(1)编写插件创建程序过程中变量与函数定义语句

Option Explicit
Implements SWPublished.SwAddin
Dim iSldWorks As SldWorks.SldWorks
Dim iCookie As Long
Dim iToolbarID As Long
Dim ii As Long
Dim bRet As Boolean
Dim doctype As Long

其中Implements SWPublished.SwAddin语句为定义插件类;Dim iCookie As Long语句为定义SolidWorks的iCookie。

(2)建立solidworks链接关系的关键代码

Set iSldWorks = ThisSW " 与SW建立连接
iCookie = Cookie"从SW得到cookie
bRet = iSldWorks.SetAddinCallbackInfo(App.hInstance, Me, iCookie)
"定义菜单

其中Set iSldWorks = ThisSW代码的含义为与SW建立连接;iCookie = Cookie代码的意义是从SW得到cookie,bRet = iSldWorks.SetAddinCallbackInfo (App.hInstance, Me, iCookie)为定义菜单语句。接下来便是定义工具条及相关属性设置的编程实现。

(3)建立程序的各功能代码

建立各程序的功能过程,并在个过程编写相应代码,必须保证这些功能过程与菜单或工具栏命令定义功能过程的一致性。作为插件,最常用的功能便是在插件菜单中调用其他子菜单,该过程的代码为:

Load UserForm1
UserForm1.Show

其中UserForm1为需加载或调用的菜单名。

(4)插件退出代码

Dim bRet As Boolean
bRet = iSldWorks.RemoveMenu(swDocPART, "SW开发程序(&M)", "")
bRet = iSldWorks.RemoveToolbar2(iCookie, iToolbarID)
Set iSldWorks = Nothing
SwAddin_DisconnectFromSW = True

以上语句的含义为删除菜单及工具条,为插件退出做好准备。

(5)编译生成DLL文件,在此基础创建solidworks插件。生成插件时可采用下列两种方法:直接打开与写注册表。其中在solidworks中以插件文件类型直接打开方法由于受环境影响,不太稳定,通常采用的方法是注册表方法。具体的实现方法为:注册DLL文件;查找相关相互注册信息及设置插件信息。

3. 结束语

目前计算机辅助设计、制造领域的热点问题是将参数化设计技术与CAD软件二次开发技术相结合,根据具体产品设计需求对通用CAD系统进行专用化的研究与开发,开发自主的CAD系统已经变得非常必要。它能够极大地提高产品设计效率,实现快速设计,提高产品竞争力。有关这方面技术的研究,国内外已经广泛地展开。本文仅从三维建模编程实现、插件生成及过程中的编程技巧与实现方法方面做了初步的探讨,希望能为初学者提供一个有利的参考,提高其编程效率,避免少走弯路。(end)
文章内容仅供参考 (投稿) (如果您是本文作者,请点击此处) (7/11/2009)
查看更多CAD软件相关文章: more
·蜗轮齿面的三维仿真造型 曾锋 牛鸣岐 赵先锋 阎汉生 (7/11/2009)
·SolidWorks开启“绿色设计”发现之旅 (7/11/2009)
·CATIA V5三维标准件库的建立 newmaker (7/11/2009)
·UG平台下实现表驱动的三维参数化零件库生成的分析 newmaker (7/11/2009)
·国际PLIB标准化现状及我国推广应用对策 李之武 詹俊峰 程燕 (7/11/2009)
·自动投影二维图方法浅析 长城汽车股份有限公司 马波涛 (7/10/2009)
·基于CATIA平台的车身数字化设计应用 (7/10/2009)
·ThinkDesign--精益设计好帮手 Extech公司 (7/10/2009)
·ThinkDesign2009新功能介绍 Extech公司 刘明涛 (7/3/2009)
·探寻Alessi成功的秘诀 Extech公司技术工程师 李慧 (7/3/2009)
查看更多CAD/CAM软件相关文章: more
·迪卡侬利用欧特克衍生式设计重新构想 更轻、更强、更可持续的自行车 Autodesk (11/18/2020)
·NUM助力台湾机床公司,实现机器人专用渐开线齿轮和摆线齿轮的自动化生产 (5/18/2019)
·hyperMILL革命性五轴加工策略 让复杂工件加工时间的节省高达90% OPEN MIND (12/6/2018)
·ESPRIT助力上海泷泽在机床行业寒冬期逆势增长300% DP Technology (8/13/2018)
·小型数控铣床刀具路径(刀路)参数曲面粗精选择 newmaker (3/26/2018)
·蜗轮齿面的三维仿真造型 曾锋 牛鸣岐 赵先锋 阎汉生 (7/11/2009)
·SolidWorks开启“绿色设计”发现之旅 (7/11/2009)
·CATIA V5三维标准件库的建立 newmaker (7/11/2009)
·UG平台下实现表驱动的三维参数化零件库生成的分析 newmaker (7/11/2009)
·国际PLIB标准化现状及我国推广应用对策 李之武 詹俊峰 程燕 (7/11/2009)
查看相关文章目录:
·CAD/CAM/PDM/PLM展区 > CAD/CAM软件展厅 > CAD软件 > CAD/CAM软件文章
文章点评 查看全部点评 投稿 进入贴吧


对 CAD/CAM软件 有何见解?请到 CAD/CAM软件论坛 畅所欲言吧!


网站简介 | 企业会员服务 | 广告服务 | 服务条款 | English | Showsbee | 会员登录  
© 1999-2024 newmaker.com. 佳工机电网·嘉工科技