SolidEdge二次开发技术探索衰减器

2022-07-29 12:48

SolidEdge二次开发技术探索

SolidEdge二次开发技术探索 2011年12月04日 来源: 本文简要介绍了与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 Automation命令被传给Server,由Server对命令作出反应。Client可以持续地发出命令,Server忠实地执行每一条命令,最后由Server提出终止对话。 这里将So1id Edge理解为一个服务程序(Server),而二次开发出来的程序为客户程序(C1ient)。用户只要在客户程序上进行操作,客户程序将驱动So1id Edge完成相关的工作,用户无需全面掌握Solid Edge。2.So1id 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(常数类型库)、Drdt.tlb(制图类型库)、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.Quit3.创建轮廓和交互环境创建特征一样,绝大多数特征需要先定义二维轮廓,再向空间拉伸形成特征。而轮廓的创建往往是在一个平面上进行的,所以首先要定义参考平面。定义参考平面的方法有以下几种: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 自动装配系统主界面

(end)

吉首市试验机

深圳YE-3000C压力试验机

上海WAW-1000B微机控制电液伺服液压式万能试验机厂

WDW-200钢管脚手架万能试验机厂

电子试验机

相关阅读
最好工业平板电脑的现代包装解决方案德令哈海绵机械铝壳电阻送风管扎线带Trp

导热油炉工业平板电脑的现代包装解决方案您当前位置:首页 企业工业平板电脑的现代包装解决方案工业平板电脑的现代包装解决方案来源:中国五金商机日期:包装行业是近年来全球发展迅猛的行业。2005年我国包装机械产量已达

2024-04-21 14:35
最好2017年12月4日乐从热轧硅钢价格行情电炉丝回流焊木工刨刀贴片二极管制氮机Trp

2017年12焊台月4日乐从热轧硅钢价格行情您当电视前位置:首页 价格行情2017年12月4日乐从热轧硅钢价格行情2017年12月4日乐从热轧硅钢价格行情来源:互联日期:实验条件和实验结果自动存盘(2)未经我方同意自行拆卸改机部份(如

2024-04-21 04:40
最好绿色化学的若干衡量指标一IC智能卡额尔古纳交直流电源起子乌鲁木齐TRp

绿色化学的若干衡量指标(一)您当前位置:首页 技术支持绿色化学的若干衡量指标(一)绿色化学的若干衡量指标(一)来源:北京北方伟业计量技术研究院日期: 化学科学为人类的经济和社会发展做出了巨大的贡献,是推动

2024-04-03 16:17
最好5月19日唐山市场镀锌方矩管价格行情Ac插座锻压机械建瓯破碎机温控开关TRp

5月19日唐山市场镀锌方矩管价格行情只有适合的配件才能丈量出精准数值您当前位置:首页 价格行情5月19日唐山市场镀锌方矩管价格行情5月19日唐山市场镀锌方立车矩管价格行情来源:中国五金商机日期:不过晶层存在-19地区章丘

2024-04-03 05:34
最火施耐德韩国三和DUCR0定向轮嘉峪关拼图机微波三极管自攻钉TRp

施凹版印刷机耐德 韩国三和DUCR您当前位置:首页 企业施耐德 韩国三和DUCR-70RY7R直流电子式过电流继游戏点卡电器施耐德 韩国三和DUC该专用料的研究力争顶染色机替乃至超出进口产品R-70RY7R直流电子式过电流继电帮助客户以更快

2024-04-02 22:18
最火欧洲风电大跃进中国企业有望受益壁虎风扇叶片净油机驱动IC销轴Rra

欧洲风电大跃进 中国企业有望受益【铝道】日本福岛靠前核电站发生的核泄漏事故引起广泛关注。在此背景下,风电等清洁能源产业的发展前景更被看好。欧洲风能协会日前在比利时首都布鲁塞尔发表公报表示,欧盟计划今后20

2024-03-22 18:21