solidworks二次开发实例中出现了错误的提示界面

桌面集成系统是由美国SolidWorks公司在總结和继承大型机械CAD软件的基础上,在Windows环境下实现的第一个机械三维CAD软件它为用户提供产品级的自动设计工具。SolidWorks的突出特点是:三维参數化特征造型特征管理员功能,全相关的数据管理它功能丰富、操作简单、维护方便、学习周期短、应用开发方便,与多家CAM、CAE软件有緊密接口

  SolidWorks是基于特征的三维参数化造型软件,对其进行二次开发可以遵循参数化CAD的原则与以往非参数化CAD系统相比,参数化技术很夶程度上提高了二次开发的效率SolidWorks提供了完整的免费的二次开发工具API(ApplicationProgramming Interface应用编程接口)。凡支持COM编程的开发工具如Visual C++6.0(以下简称VC++)、Visual Basic、Delphi等均可直接調用这些API函数开发出用户自己的程序模块,提高设计的效率与正确率

Basic进行开发时,只能采取外挂的工作方式即需要在用户的应用程序囷SolidWorks之间进行前后台切换,所以降低了设计效率而COM接口支持使用VC++编程工具开发DLL(Dynamic Link Library动态链接库)程序,使用VC++开发的DLL应用程序模块可以直接嵌入到SolidWorks內部加载成功后用户程序菜单直接出现在SolidWorks主菜单上,如同SolidWorks自带功能一样进行操作极大地提高了设计效率。因此本文就基于VC++阐述SolidWorks的二佽开发。

Studio\VC98klnclude文件夹内然后,在VC++中应用向导创建动态链接库工程(以下简称DLL)加人相关代码,编译生成动态链接库(*.DLL)文件用户二次开发的应用程序,可直接挂在SolidWorks的菜单下形成统一的界面。一般而言开发人员首先需要在SolidWorks的界面上添加自己的菜单项,以此作为激活用户程序的接ロ完成与用户的数据交换。在上述过程中用户程序必须响应SolidWorks的一些消息通知,以保证各个操作的合法性即要检测文档类型等。最后连接DLL,将必要的用户程序输出

  使用这种方法进行二次开发简单易行,容易理解避免了安装和使用中的困惑。

SDK然后在Visual C++中选择ATL COM Wizard创建动态链接库,加人相关代码编译生成动态链接库(*.DLL)文件。此方式可在

管理器中生成插件并以菜单形式自动添加在新建或打开的零件视圖中,以完成特定功能

  此方式适合于SolidWorks的中级使用者,可使用户方便地以插件的形式将菜单嵌人SolidWorks主菜单中简捷易行,但有一点值得紸意该向导生成的*.dll,只能用于SolidWbrks 2003

  1.3 自定义向导和用现有的实例进行二次开发

  首先启动VC++,选择Custom AppWizard寻找现成的文件以生成新的工程如果不想用向导,直接修改现有的实例也是一种方法使用此种方法可在SolidWorks的菜单栏中出现新下拉菜单用以完成用户新添加的功能。这种方法適合于对SolidWorksAPI熟悉的用户可以通过找一些现成的文件,更加灵活地使用自定义的模板进行二次开发

  这里以挤压模垫套(如图l所示)的参数囮建模的二次开发为例,详细介绍solidworks二次开发实例的过程图2为开发程序的主控页面。具体步骤如下

  图l 垫套的剖视图及主要尺寸

  圖2 程序的主控页面

  1)安装VC++并配置开发环境 利用SolidWorks提供的二次开发模板创建工程。为确保包含必要的头文件完全按照第一种方法配置卡发環境。

  2)绘制零件模板 模板零件的创建方法与一般三维模型的建模方式相同但注意以下几点:

  (1)在对模板进行特征造型时,对二维截面轮廓利用尺寸标注和施加相切、共线等关系实现对几何图形的全约束;

  (2)正确设置控制三维模型的设计参数。尺寸参数可分为两种:一是与其它参数无关的独立参数;另一种是与其它参数有关的非独立参数前者主要用来控制三维模型的几何尺寸和拓扑关系,后者可以鼡独立参数为自变量的关系式表示;

  (3) 正确建立设计参数与三维模型尺寸变量之间的关联主要有两种方法:一是在创建模型模板需要输叺数值时,直接输入参数名二是利用SolidWorks的关系式功能创建新的关系式,使系统自动创建的约束参数名与设计参数关联

  (1)利用SolidWorks提供的开發模板创建工程SWSD为工程名称

  //自定义菜单的插入位置

  //添加顶层弹出式菜单[SWSD]

  //添加[SWSD]的下一级菜[垫套]

  (3)点击FILEVIEW在SWSD.def文件里声明导出函数。DLL中包含一个导出函数表通过函数的符号化的名字或序号(可选)识别这些函数。函数表也包含了函数在DLL内的地址当SolidWorks首先加载DLL时,它并不知道将要调用函数的地址但知道符号名和序号。动态连接过程后在DLL中建立一张客户调用与函数地址的表把SolidWorks的调用与DLL中函数的地址连接起来;

  (4)在SWSD.h中对导出函数声明;

  (5)在SWSD.cpp文件里添加导出函数的函数体,这个函数就是用户开发的菜单所调用的执行函数在这个导出函数里添加具体的代码可以实现开发人员需要程序执行的功能。

  4)编译 由于SolidWorks不再支持加载调试软件版本因此,用户不能用"Win32 Debug"或"Win32 MBCS Debug"调试模式为了調试代码,用户必须使用"Pseudo Debug"调试模式此模式需要链接适当的MFC Release库,否则SolidWorks运行时可能会和己加载的MFC库发生资源冲突

  5)应用程序的运行 如果應用程序是以DLL方式建立,则运行步骤如下:运行SolidWorks程序选择File.Open并且改变打开文件类型到ADD.Ins(.DLL)。选取预定的DLL并单击OK则用户的应用程序加入到SolidWorks。

  在VC++调试模式下运行SolidWorks进行代码的调试:在用户的VC++开发环境中选择GO编译。在弹出的对话框中键入SolidWorks.EXE及其路径名一旦SolidWorks运行选择File.Open并且改变打开攵件类型到ADD.Ins(.DLL),选择要调试的DLL文件并单击OK则用户的应用程序加入到SolidWorks。

  6)注册 有两种方式可以把用户开发的模块添加到注册表里面使SolidWbrks可鉯自动的找到二次开发的模块:

  (1)在VC++开发环境中,使用利用SolidWorks提供的二次开发模板创建工程VC++提示是不是把这个工程添加到注册表里的时候,选择"是"

  (2)当更换系统或者在其他计算机中安装开发的新模块时,可以在工程文件夹内找到*.reg的一个注册表文件双击就可把这个模塊信息写入注册表。

API函数进行二次开发实现机械零件参数化设计的方法。可以参考该方法对SolidWorks进行其他较为复杂的二次开发工作建立适匼用户需要的、专用的SolidWbrks功能模块。通过实例表明基于DLL的SolidWbrks二次开发可以很好地实现与Solidwbrks系统的无缝集成,能满足用户开发三维CAD系统的需要

我要回帖

更多关于 solidworks二次开发实例 的文章

 

随机推荐