Solid-Edge二次开发技术探索_第1页
Solid-Edge二次开发技术探索_第2页
Solid-Edge二次开发技术探索_第3页
Solid-Edge二次开发技术探索_第4页
Solid-Edge二次开发技术探索_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Solid Edge二次开发技术探索本文简要介绍了与Solid Edge二次开发相关的ActiveX Automation技术,以及采用VB二次开发Solid Edge的基本原理和方法。为读者提供了采用VB二次开发Solid Edge的整体思路。一、引言 Solid Edge是EDS公司推出的普及型主流CAD软件包,是EDS PLM系统的一个分支。基于特征的参数化、变量化设计技术,使其操作方便,简单易学。此外,Solid Edge还为用户提供了采用标准Windows“对象链接与嵌入(OLE)”技术和“部件对象模式(COM)”技术的应用程序接口,开发者和用户能够通过使用Visual Basic、Visual C+以及任何一种支持ActiveX Automation技术的工具,对Solid Edge进行二次开发,来适应用户的一些特殊要求,减少重复性建模制图工作,全面扩展Solid Edge的功能或将其功能集成到客户应用程序中,以实现Solid Edge的完全客户化。本文介绍了基于ActiveX Automation技术开发Solid Edge的基本原理。二、 ActiveX Automation技术与Solid Edge的对象层次结构 1 ActiveX Automation技术 ActiveX Automation是Microsoft公司提出的一个基于COM的技术标准,以前被称为OLE技术,其宗旨是在windows系统的统一管理下,协调不同的应用程序,准许这些应用程序之间相互沟通、相互控制。它通过在两个程序间安排对话,达到一个程序控制另一个程序的目的。其过程为:首先一个应用程序决定引发ActiveX Automation操作,这个应用程序自动成为C1ient,被它调用的应用程序成为Server。Server收到对话请求后,决定暴露哪些对象给C1ient。在给定时刻,由C1ient决定实际使用哪些对象,然后ActiveX 这里将So1id Edge理解为一个服务程序(Server),而二次开发出来的程序为客户程序(C1ient)。用户只要在客户程序上进行操作,客户程序将驱动So1id Edge完成相关的工作,用户无需全面掌握Solid Edge。 2So1id Edge的对象层次结构 对象之间通过被称为对象模型或对象层次结构的形式相互联系。So1id Edge的对象层次结构可以描述为自上而下的树结构,其根节点对象就是一个应用。So1id Edge拥有4种工作环境:零件(Part)、钣金(Sheet Metal)、装配(Assembly)和工程图(Drdt)。其中,零件和钣金共用一个对象层次结构,而装配和工程图分别拥有各自独立的层次结构。根节点作为应用对象,是惟一一个允许开发程序直接访问的对象,可以也只能通过该对象才能访问其下级的所有对象。图1所示为装配环境的简单对象层次结构,Application指Solid Edge应用程序,Documents是一个集合对象,它包含了前面所提到的四种工作环境。要访问某一工作环境,首先必须得到它的文档对象(Document)。这里为了进入装配环境,用到了装配文档对象AssemblyDocument。图1 简单对象层次结构三、 ActiveX Automation应用方法 1引用Solid Edge类型库 Solid Edge通过类型库提供了大量的内部功能,以便于从Visual Basic(以下简称VB)等开发工具中,通过ActiveX Automdion访问这些功能。Solid Edge提供的类型库包括:Assembly.tlb(装配类型库)、constant.tlb(常数类型库)、Drdttlb(制图类型库)、propauto.dll(文件属性对象库)、framewrk.rlb(框架结构类型库)、geometry.tlb(几何类型库)、part.tlb(零件和板金类型库)等。若以VB作为开发工具,首先必须在其环境中引用Solid Edge的有关类型库,才能通过ActiveX Automation访问Solid Edge提供的主要对象。在VB的集成环境中,通过“工程”菜单中的“引用”命令,将所要用的库选中,即可调用对应的类型库(图2),并且可以在VB的对象浏览器中查看对象库、类型库、类、属性、方法以及事件(图3)。图2 选中所需要的库图3 VB的对象浏览器2调用Solid Edge应用程序 当选择VB为一个支持ActiveX Automation的应用程序进行编程开发时,就必须和该程序进行通讯。Solid Edge提供的应用对象(Application)为实现这种通讯提供了可能。应用对象是惟一一个允许Visual Basic程序直接访问的对象,它位于层次结构树的顶部,可以也只能通过该对象才能访问其下级的所有其他对象。VB提供了两个函数调用Solid Edge:CreateObject和GetObject。 Dim objApp as ObjectSet objApp=CreateObject(“SolidEdge.Application”)Set objApp =GetObject(“”,“SolidEdge.Application”)两个语句都创建不可见的Solid Edge应用对象。下面的语句使用GetObject连接到已经存在的Solid Edge实例: Set objApp=GetObject(,” SolidEdge.Application”) 该语句会搜索已经存在的Solid Edge实例,如果找到,变量objApp指向该实例;否则,命令失败。 在使用CreateObject或者GetObject来驱动Solid Edge的应用时,该应用不会自动创建文档对象,必须使用文档集合对象的Add方法来建立一个文档对象。Add方法是有参数的,该参数用于确定所创建的文档对象的类型或者使用的模板。如果参数为空,程序会提示用户选择一个模板。下面语句的功能是在新建的应用中建立一个零件文档对象:Set objApp=GetObject(,” SolidEdge.Application”)Set objDocument=obj App.Document.Add(“SolidEdge. PartDocument”)要将一个Solid Edge的应用实例从内存中移除,则需要使用应用对象的Quit方法:ObjApp.Quit 3创建轮廓 和交互环境创建特征一样,绝大多数特征需要先定义二维轮廓,再向空间拉伸形成特征。而轮廓的创建往往是在一个平面上进行的,所以首先要定义参考平面。定义参考平面的方法有以下几种:AddParallelByDistance(重合或平行平面);AddParallelByTangent(相切平面)AddAngularByAangle(倾斜或垂直平面);AddNormalToCurve和AddNormalToCurveAtDistanse(法线方向平面)。例如,下面语句就创建了一个与ParentPlane平面平行的参考平面objRefPlane。Set objRefPlane=objRefPlanes. AddParallelByDistance(ParentPlane, Distance,_ NormalSide,Local) 创建好参考平面后,便可在参考平面上创建二维轮廓。一个轮廓由若干个线框因素构成,如果轮廓包括不止一个因素,则这些元素必须首尾相连,可以通过在元素端点之间增加关系来实现。二维轮廓的创建步骤如下:(1)创建空的轮廓对象(Profile object);(2)利用Solid Edge提供的直线和圆弧等对象来绘制轮廓图;(3)利用Relations2d集合对象设置集合图形之间的关系;(4)设置必要的尺寸;(5)使用End方法验证轮廓的有效性。 4创建特征 在PartDocument环境下,利用模型集合(Models)中的不同方法对以创建的轮廓进行AddExtrudedProtrusion(拉伸) 、AddRevolvedProtrusion(旋转拉伸) 、AddBaseHelix(螺旋拉伸)等操作创建出基本模型对象(Model),再利用每个基本模型对象的Chamfers(倒角) 、rounds(倒圆) 、Holes(孔)、Thins(抽壳)等对象集合中的Add方法创建出后续的特征。 例如,语句“Set objModel = objDoc.Models. AddFiniteExtruded Protrusion(1, objProfile, both, 0.05)”表示将objProfile几何轮廓对象双向拉伸50mm创建出基本拉伸特征objModel。语句“Set objChamf=objModel. Chamfers. AddEqualSetback(2, objEdge, 0.005)”表示对拉伸体objModel的objedge边集合进行回切值为5mm的等边倒角。 5 装配零件 在装配文档(AssemblyDocument)中,一个装配体就是一个零部件的集合(Occurrences)。向装配图中加入零件分为两步:第一步,利用零部件集合提供的AddByFilename方法添加一个零部件(Occurrence)。语句“Set objOccurrence=objAssmDoc. Occurrences.AddByFilename(D: chead.par)”就是表示向Occurrences装配体中加入D盘下的零件chead。第二步,删除加入装配体的零件的三维关系,并设置其新的三维关系。可以通过两个集合访问装配关系对象:AassemblyDocument对象中的Relations3d集合和每个零件对象的Relations3d集合。零件的三维关系共有五种类型:AxialRelation3d用来定义回转面之间的关系;GroundRelation3d用来定义固定关系;PlanarRelation3d用来定义两个平面间的关系,包括贴合和对齐;PointRelation3d用来定义装配中点与点的连接关系;AngularRelation3d用来定义两个对象之间的角度关系。 例如,删除加入装配体的零件(objOccurrence)的三维关系用语句:“Call objOccurrence. Relations3d (1).Delete”;将加入零件的孔(objReference Hole)和装配体中一个零件的轴(objReferencePole)对齐,用语句:“Set objPoleToHole = obj Doc.Relations3d.AddAxial(obj ReferenceHole, objReferencePole,_ False)”。四、程序运行方式 用VB技术和Solid Edge二次开发接口开发的应用程序有两种运行方式:一是将应用程序作为可执行文件直接运行,由程序控制Solid Edge的调入和退出。二是将程序作为一条宏命令嵌入到Solid Edge中。具体方法是:在VB的“文件”菜单中选择“制作 .exe”,将应用程序编译生成ActiveX Automation程序。打开Solid Edge的“工具条”对话框,按照提示新建一个工具条,确定后在出现的“自定义”对话框中选择“宏”,单击“浏览”,找到刚才编译的EXE程序,拖放到新建的工具条上,并选择合适的图标。用户在Solid Edge环境下,只要点击该工具条即可运行程序。五、开发实例笔者用VB在Solid Edge平台上开发了一套注塑模标准模架的自动装配系统,图4为主界面。从对话框中选择零件及其尺寸规格,系统将读入参数数据,修改零件库中该零件的变量表,并存入指定文件夹。完成所有零件的选择后,系统将其自动装配在一起。图4 自动装配系统主界面用Solid Edge精确设计曲面类零件Solid Edge是美国EDS公司开发的中端CAD产品,其以强大的功能和易学易用的特点赢得了很多中小型企业的青睐和广大设计人员的喜爱。然而,在Solid Edge中完成曲面类零件的精确设计却存在一定的困难。通过摸索,笔者发现将CAXA(电子图板)和Solid Edge结合使用可以快速精确地设计曲面类零件。 一、解决问题的思路和方法 利用CAXA中的公式曲线功能,一段一段求出曲线,再在Solid Edge中打开,即可实现精确设计。(1) 在CAXA中执行公式曲线命令,通过输入曲线方程和参数范围,一段一段地求出曲线,并通过移动、旋转等命令把曲线放到合适的位置,然后以IGES(中性文件)格式存盘。(2) 打开Solid Edge,先用工程图模块打开刚才存盘的文件,拾取曲线并复制,然后打开零件图模块,在零件图模块草图中执行粘贴命令,最后用拉伸或旋转命令生成零件实体模型。 二、设计实例 设计一平底直动从动件盘形凸轮机构。已知:推程运动角=90,远休止角s=60,回程运动角=90,近休止角s=120,行程h=10mm,基圆半径R0=30mm,从动件推程回程均作简谐运动。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论