|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 文章首页 | Unigraphics | Pro/E | Mcam | Powermill | Cimatron | SolidWorks | AutoCAD | CAXA | CATIA | MoldFlow | TopSolid | Inventor | |
| 模具设计 | 综合文章 | 橡胶模具 | 五金模具 | 热处理 | 冲压模具 | 锻压模具 | 发表文章有奖 | |
前言
随着我们企业的做强做大相应产品的设计周期和新产品的研发周期也随之缩短,这就要求我们在设计的任何阶段都要考虑工作的最大效率。在应用SolidEdge软件进行产品设计时因为没有我们企业的通用零件3D库,这样设计员在设计时需要重新设计企业通用零件从而带来了大量的重复性工作大大的降低了工作效率。为此我们需要在SolidEdge软件上进行开发建立我们的企业通用零件库。本文主要介绍应用VB进行二次开发的过程。
SolidEdge是EDS公司推出的普及型主流CAD系统,是EDS PLM系统的一个分支具有极佳的可展性和很强的易用性。软件本身还为用户提供了采用标准的Windows"对象链接与嵌入"技术和"部件对象模式"技术的应用程序接口。这样运用ActiveX Automation技术的开发工具就可以对SolidEdge进行二次开发来达到客户化需求的目的。
一、ActiveX技术和VisualBasic在SolidEdge中的应用
1、ActiveX技术简介
COM是M$1993年做为通信机制引入的,是OLE2.0的基础。之前的OLE1.0是简单的多进程间通信方法也不是基于COM的,更早还有一种DDE技术那是更简单的通信机制了。为了使对象可以重用,M$在OLE技术的基础上搞出了Automation对象。该技术使得软件包可以将对象导出,供其它程序或脚本使用。
在这里SolidEdge可以理解成为一个服务程序,开发出来的程序可以称为"客户程序"。也就是说客户程序在服务程序的基础上进行二次开发的,客户程序是调用驱动Solidedge完成的,这样的话用户不需要非常全面的掌握SolidEdge。
2、对象的导出
利用VB或VC++等工具对SolidEdge进行开发时都要导出ActiveX对象,都要有一个名为Application的顶级对象,该对象在程序启动时作为Active对象而初始化。Application对象代表应用程序,它给ActiveX客户提供了绑定、浏览程序所导出的对象的方法。应用程序导出的其它对象都是Application对象的下级,它是对象继承树的根。
应用程序导出对象的方式:
使用RegisterActiveObject()注册Application对象,将把该对象加入ROT。这样ActiveX客户就可以获取一个实例而不用重新创建一个。VB提供了GetObject语句访问已经存在的对象。
3、获取活动对象
在面向对象开发时对象的获取是非常关键的,其实开发的过程就是对获取的对象进行各种处理的过程。当我们获取对象时还要知道这个对象是不是我们需要的,针对不同的开发工具查看对象的命令也不一样但是道理是一样的我们只要掌握了方法其它的就触类旁通了。
自动化提供了多种手段以标记、获取对象或应用程序的活动实例。以下是常用的几个命令:
(1)RegisterActiveObject,在应用程序启动时注册活动对象。
(2)RevokeActiveObject,在应用程序退出时停止活动对象。
(3)GetActiveObject,取得活动对象实例。
4、关闭活动对象
我们获取对象对他进行各种处理之后,还要在合适的时机对其进行关闭。关闭对象是有很多技巧的并不是我们任何时候都可以关闭,结合不同的环境针对处理的过程关闭对象的时机都是相对的。这些方法需要我们在日后的开发工作中不断总结。
关闭对象通用的三种方式:
(1) 如果对象所在的应用程序可视,仅当响应用户明确的退出命令(如File|Exit)或ActiveX客户的等价命令时关闭。
(2) 当对象所在的应用程序不可视,当最后一个外部引用消失时关闭。
(3) 如果对象所在的应用程序可视并正被客户控制,则在收到退出命令时应当变成不可视,这样对象仍然可用,直到所有外部引用消失才退出。
对象的导出、获取活动对象、关闭活动对象这里只是简单的介绍一下,这些方法的具体应用需要在不同的环境和工程中结合实际的需求得以实现。
5、怎样调用SolidEdge程序
利用VB来进行二次开发时必须对SolidEdge提供的应用对象(Application)实现通讯。
应用对象是唯一一个允许VB程序直接访问的对象,它位于层次结构树的顶部,通过该对象才能访问其下级的其它对象。我们必须在VB的开发环境中引用SolidEdge的有关类型库。这些库包括:Assembly.tlb(装配类型库)、constant.tlb(常数类型库)、Drdt.tlb(制图类型库)、propauto.dll(文件属性对象库)、framewrk..rlb(框架结构类型库)、geometry.tlb(几何类型库)、part.tlb(零件和钣金类型库)等等。怎样引用这些类库呢?在VB的环境中,通过"工程"菜单中的"引用"命令,将所要用的库选中即可调用(如图1所示)。
二、Solidedge的对象层次结构
在SolidEdge中对象之间就像一个组织结构似的是有层次结构相互联系的。它的结构形式是自上而下的树状结构,最上层即根节点对象就是一个应用(Application)。详细的结构从SolidEdge提供的帮助文件中可以查到(如图2所示)。
在SolidEdge中拥有四种工作环境分别是:Part(零件)、Assembly(装配)、SheetMeta(钣金)、Drdt(工程图)。这里的零件和钣金公用一个对象层次结构,而装配和工程图各自独立拥有层次结构。图3是我根据图2生成的简单的装配层(Assembly)结构组织图。Application指的是Solidedge应用程序,Doucments指的是一个对象集合,类似一个数组似的存放着前面的四个环境。要访问其中的一个环境必须得到Doucments对象才能访问。AssemblyDocument就是进入到了装配环境。根据这样的层次关系就可以找到需要编辑的变量所在的类,然后应用语句获得对应的类做属性定义或者属性编辑。图3两边省略掉的是其它的层次关系不做一一介绍了。
对于程序开发者一定要会利用这个树状结构图,通过它找到相关的属性是很好的捷径否则开发工作很难展开。如果对某些节点不是很清楚可以通过程序将其展开看看这个类或者是属性值到底是怎样的。只有确定好对象才能对其展开工作。
三、结合数据库实现零件的参量化设计
1、建立一个零件的参量化模型
创建一个"带筋板孔形吊耳"如图4所示。中间的孔径是D=80mm、半圆底座的半径是R=135mm、空的中心到底边的距离C=120、两个板厚的拉伸距离分别为S1=28mm、S2=26mm。
2、在变量表里添加变量
如图5所示,在对应的变量表里设定对应的变量及公式。在确定参量化模型时需要企业的资深专家参与设计,譬如零件的关键变量的定义以及参量的取值范围或取值方式的确定都需要专家的讨论和确认,以免对日后的设计造成错误。在讨论的过程中一定要确认变量的变化范围和方式这直接关系到整个零件的参量化设计的正确与否。
0
顶一下0
踩一下
|
|||
|
|||
|
|||||||||||||
|
|||

