基于CoM组件的CAD开发

基于CoM组件的CAD开发

ID:38122005

大小:181.02 KB

页数:4页

时间:2019-05-27

基于CoM组件的CAD开发_第1页
基于CoM组件的CAD开发_第2页
基于CoM组件的CAD开发_第3页
基于CoM组件的CAD开发_第4页
资源描述:

《基于CoM组件的CAD开发》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、万方数据2005年工程图学学报2005第2期JoURNALoFENGINEERINGGRAPmCSNo.2基于CoM组件的CAD软件二次开发常用几何算法库建立王立新1一,黄文良1(1.南京理工大学机械工程学院,南京210094;2.郑州大学机械工程学院,郑州450001)摘要:组件对象模型coM(coⅡlponentobjectModel)为构建组件提供了技术支持。按c0M制作的组件可以在不同平台上得以重用。cOM通过包容和聚合来实现继承和扩展。文章总结了CAD软件二次开发中常见的几何问题,提出了使用VB按照C

2、OM组件的思想建立一套与机器无关、二进制兼容的常用几何算法库,描述了一个典型算法(任意两圆求交点)、建库、扩充和使用的详细过程。关键词:计算机应用;几何算法库;组件对象模型;cAD二次开发中图分类号:TP391.72文献标识码:A文章编号:1003.0158(2005)02—0146—04在商品化的CAD软件基础上进行二次开发是目前广泛采用的技术手段,可以花费比较少的精力较高水平地解决专业领域问题。在二次开发编程过程中,绘制图形经常涉及到如何准确获得图形特征点的几何问题,比如任意两个圆的交点等。这些几何问题在人

3、们直观看来是很容易的问题,但在CAD软件的二次开发中,却需要拿出一套通用的解决方案,利用计算机图形学的知识,可以构建一套常用的算法,经过精心调试后,按照COM组件的思想生成一套与机器无关、二进制兼犁¨的算法库,可作为一种技术积累手段,供今后的相关工作使用。1二次开发中的常见几何算法在对AutodeskInventor的二次开发过程中,将遇到的几何计算问题整理归结为算法库,如:任意直线和圆的交点、点关于直线的镜像点、两点连线的延长点坐标、点到直线的距离等,可以利用计算机图形学知识分别将它们设计成通用的算法库。下面

4、以任意两圆求交点为例加以说明。基本思想:任意两个圆@1,yl,n)和∞,娩,r2)经过坐标系的平移、旋转后,总能将它们变成左圆阻,yL,RL)和右圆(xR,yR,尺R),如图1~图3所示的几种情况。假设,总是以左边的圆心作为新坐标系的原点,以两圆心连线作为工轴,左圆圆心(O,0),半径RL,右圆圆心(0,D),半径凤。yJID厂/一。。—\Ⅵ心x—L叭◇\\/图1两圆相切收稿日期:2003一08—07基金项目:国防预先研究共用基金资助项目(41305010204)作者简介:王立新(1967一),男,河南新乡人,

5、讲师,博士研究生,主要研究领域为机械系统cAD、仿真及虚拟样机技术。万方数据第2期王立新等:基于coM组件的cAD软件二次开发常用几何算法库建立y。I—D一一=、厂。、∥小、x一\乡\√/、图2两圆不相交yJID一’孙x~√之/’图3两圆相交(1)求两圆心距离:D=√魄—再)2+仅一)j)2;(2)如果D=0,同心圆,交点不存在;(3)如果胤+吼D,交点不存在;(4)如果毗+熙=D,两圆外切,巧1=巧2=毗,剪l=豌=0;(5)如果lRL一艘I=D,两圆内切,(a)如果左圆半径小,确=琥=一吼

6、,彬l=豌=O(b)如果右圆半径小,巧1=可2=RL,撕l=豌=0(6)两圆相交,则由方程jz+)72=R2,【@一功2+),2=足2可得交点工_『。=巧z=堡二学,撕l=切2=√尺。2一面2(7)有了新坐标系下的两交点(巧1,剪1)和(碗,娩)坐标,只需要将坐标系还原为原坐标系即可。1)求还原坐标系的旋转角(痧)——这里假设圆2是右圆:(a)如果z1=砣,若沈>),1,则:妒=兀/2,否则:痧=一吡(b)≯=arc瞎(盟)换‘21知识知卧降sine切cos∈-彩0(f_1.2)从而得到:任意两个圆@l,yl,

7、n)和右圆%,娩,您)的交点坐标(材I,拶1)和(材2,耽)。2用VB开发基于COM组件的算法库2.1基本知识vB6.0是cOM敏感型语言,用它来创建组件十分方便。COM的所有细节(包括接口)都被完全隐藏,开发者无需定义接口,可直接在类模块中定义方法、属性,编写其实现代码。因为它的组件工程支持的是自动化双重接口,所以还可在类模块中声明事件,并通过操作(方法)来引发事件。在幕后,Ⅶ自动维护一个默认接口“一类名”。用VB创建的组件也能被其它语言工具调用,像Delphi5就能直接引人类型库,并可将它转换成等价的IDL

8、文件,再经MIDL编译,就可产生相应的H头文件,这样VC++也可调用VB创建的组件‘31。如果所需要建立的部件能够服务于多个应用程序,并且能够在远程计算机上运行,则应该建立一个ActiveXEXE,如果所需要建立的部件能够与您的应用程序运行在同一个进程中,则应该建立一个ActiveXDLL。一个组件中可以容纳多个类(这时的组件就成为了类库),每个类又可以容纳多个属性、事件和方法⋯。2.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。