(机械设计及理论专业论文)基于尺寸对象的智能尺寸标注和明细表处理.pdf_第1页
(机械设计及理论专业论文)基于尺寸对象的智能尺寸标注和明细表处理.pdf_第2页
(机械设计及理论专业论文)基于尺寸对象的智能尺寸标注和明细表处理.pdf_第3页
(机械设计及理论专业论文)基于尺寸对象的智能尺寸标注和明细表处理.pdf_第4页
(机械设计及理论专业论文)基于尺寸对象的智能尺寸标注和明细表处理.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

(机械设计及理论专业论文)基于尺寸对象的智能尺寸标注和明细表处理.pdf.pdf 免费下载

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

文档简介

国防科学技术人学研究生院学位论文 摘要 计算机信息产业的迅猛发展正对全球制造业的提升起着巨大的推动作用。如何利用信 息技术改造传统产业,即“制造业的信息化”,对国民经济的发展具有深远的战略意义。 c a d 技术的应用和发展正是制造业信息化的重要内容和基础,它已成为现代企业缩短产品 开发周期、提高设计质量、降低产品成本,乃至提高企业技术创新能力的有效途径。针对 三维c a d 软件的应用开发正是在这种背景下提出来的。s o l i de d g e 作为世界知名的三维 c a d 软件可以对三维设计工作提供强大的支持而要充分发挥s o l i de d g e 的强大功能则要 取决于使用者的应用、发掘和二次开发能力。而且,基于s o l i de d 鲈的二次开发不仅是用 户了解和学习该软件的有效方法,也是解决用户特殊功能需求的非常有效的途径。 本课题从s o l i de d g e 的工程图标注入手,利用a c t i v e xa u t o m a t i o n 技术以及v i s u a l b a s i c 的数据库开发技术,研制开发出了一套符合国家标准和工程制图习惯的尺寸标注程 序,不但弥补了s o l i de d g e 自带标注功能中存在的缺陷,而且也提高了工程圈标注的自动 化、智能化和标准化程度。 同时,鉴于s o l i de d g e 自有的明细表功能不够完善。本课题自行研制开发出了一个基 于数据库操作的明细表生成与处理程序。该程序可以在已有的装配体视图中提取零件属性 信息,并将明细内容自动输入到数据库中。另外,程序还可以实现明细内容的插入或删除、 在装配图上自动生成符合国家标准与规范的明细表格、自动填写明细内容等功能。 关键词:三维c a d ,s o l i d e d g e ,二次开发尺寸标注明细表 第1 页 国防科学技术大学研究生院学位论文 a b s t r a c t t h ei m p e t u o u sd e v e l o p m e n to ft h e c o m p u t e ri n f o r m a t i o ni n d u s t r y i sag r e a tp o w e rt o i m p r o v e t h em a n u f a c t u r i n gi nt h ew o r l d h o wt or e f o i t st h ec o n v e n t i o n a li n d u s t r i e sb yu s eo f t h e i n f o r m a t i o n t e c h n o l o g y ,w h i c h i sc a l i c d t h e m a n u f a c t u r i n g i n f o r m a t i z a t i o n ”h a st h e f a r - r e a c h i n gs t r a t e g i cs i g n i f i c a n c e t ot h ed e v e l o p m e n to fn a t i o n a l e c o n o m y h o w e v e r , t h e a p p l i c a t i o na n dd e v e l o p m e n ti sj u s ta b o u tt h ei m p o r t a n tc o n t e n ta n db a s i so ft h em a n u f a c t u r i n g i n f o r m a t i z a t i o n i th a sb e e na ne 越c i e n t w a yf o rt h em o d e me n t e r p r i s e st oc u td o w nt h e d e v e l o p m e n tc y c l eo fp r o d u c t ,i m p r o v et h ed e s i g n i n gq u a l i t y , r e d u c et h ep r o d u c tc o s t , a n d e n f o r c et h ei n n o v a t i o n a la b i l i t y j u s ti nt h i sb a c k d r o p , t h ea p p l i c a t i o na n dd e v e l o p m e n to ft h e 3 - dc a ds o f t w a r ei sb r o u g h tf o r w a r d a st h ef a m o u s3 - dc a d f i 、v 眦i nt h ew o r l d s o l i d e d g ep r o v i d e st h ep o w e r f u ls u p p o r tf o rt h e3 - dd e s i g n i n gw o r k i fy o uw a n tt ou t i l i z et h e v i g o r o u sf u n c t i o no f s o l i d e d g e t o 削l a d v a n t a g e ,y o us h o u l dh a v e ab e t t e ra b i l i t yo f a p p l i c a t i o n , e x :p l o i ta n dd e v e l o p m e n t f u r t h e r m o r e 。t h ea p p l i c a t i o nd e v e l o p m e n tb a s e do ns o h de d g ei s n o t o n l ya na v a i l a b l ew a y f o rt h eu s e r st ou n d e r s t a n da n ds t u d yt h es o r w a r o , b u ta l ab e t t e rm c a l 0 s t 0 如m ut h eu s e r s s p e c i a lr 闪u i r e m e n l t h i st a s ks t a r t e dw i t ht h ee n g i n e e r i n gd r a w i n gd i m e n s i o no fs o l i de d g e a n dd e v e l o p e da s e r i e so fd i m e n s i o np r o g r a m sw h i c hs u i tt h en a t i o n a ls t a n d a r da n dt h ee n g i n e e r i n gd r a w i n g c u s t o mb yt h ea c t i v e xa u t o m a t i o nt c c h n q u ea n dt h ev s u a ib a s i cd a t a b a s ee x p l o i t a t i o n t e c h n o l o g y n o to n l yi t c a nc o m p e n s a t ef o rt h el i m i t a t i o no ft h ed i m e n s i o nf u n c t i o ni ns o l i d e d g e 。b u t i tw i l ii m p r o v et h ea u t o m a t i z a t i o n 、i n t e l l i g e n t i z a t i o na n ds t a n d a r d i z a t i o nd e g r e eo f t h e e n g i n e e r i n gd r a w i n g d i m e n s i o n i nt h el i g h to ft h a tt h eb o mf u n c t i o ni ns o l i de d g ei s n tp e r f e c te n o u g h , t h i st a s kh a s d e v e l o p e dab o mg e n e r a t i o n a n d m a n a g ep r o g r a m b a s e d d a t a b a s e 1 1 璩p r o g r a m c a n p i c k - u p t h e p r o p e r t yi n f o r m a t i o no f t h ep a r t si nt h ea s s e m b l yo b j e c t sv i e w a n d i m p o r tt h eb o m c o n t e n ti n t o t h ed a t a b a s ea u t o m a t i c a l l y o nt h eo t h e rh a n d ,t h ep r o g r a mc 蛐a d do rd e l e t et h eb o mc o n t e n t 。 g e n e r a t et h en a t i o n a ls t a n d a r db o m f o r i l lo nt h ea s s e m b l yd r a w i n g a u t o m a t i c a i l l y a n df i l l i nt h e b o mf o r mw i t ht h ec o n t e n ta u t o m a t i c a l l y k e y w o r d s :3 - dc a d ,s o f i d e d g e ,_ p p f i c a f i o nd e v e l o p m e n t ,d i m e n s i o n ,b o m 第1 l 页 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得 的研究成果尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含 其他人已经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它 教育机构的学位或证书而使用过的材料与我一同工作的同志对本研究所做的任 何贡献均已在论文中作了明确的说明并表示谢意 学位论文题目:差王屋立盟塞鲍蟹能屋立握选塑盟垫盘盐理 学位论文作者签名:夏趄造日期:跏l 年,f 月7 日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留、使用学位论文的规定本人授权 国防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子 文档,允许论文被查阅和借阅;可以将学位论文的全郊或部分内容编入有关数据 库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编学位论文 ( 保密学位论文在解密后适用本授权书) 学位论文题目:基王屋立盟基鲤蟹毖尽立拯洼垒明堑盘盐理 学位论文作者签名:是坐堕日期:加p 2 年f 月, 日 作者指导教师签名:通丝奎日期:乒棚- 乏年月彦日 国防科学技术人学研究生院学位论文 第一章绪论 1 1 课题背景、来源及目的 计算机辅助设计即c a d 技术是- ;1 集成计算机、图形学、工程分析、模拟仿真、数 据库、网络等各项科学技术于一体的综合科学。c a d 技术已经成为企业提高创新能力、提 高产品开发能力、增强企业生产需求的竞争能力的一项关键技术。事实也证明在我国, 通过近五年的大力推广和应用示范,c a d 技术已为机械、汽车、航空、建筑、造船、家电、 电气、轻工、纺织等行业带来显著的社会效益和经济效益。但目前的情况是:在一些企业 的大量应用中,仍咀二维绘图为主要内容。这一方面解决了很多企业技术人员手工制图的 繁杂劳动使他们从中解放出来,从而可以投入更多的精力去进行创新设计,实现设计部 门效率的提高。但同时设计人员在使用c a d 技术时,也感到现实产品的设计构思都是 基于三维空间的,现在的设计人员要从三维现实空间构思出产品的造型,但又无法表达出 来。人们需要从三维转化成二维,以图形形成提交给加工制造部门。这往往会消耗大量的 时间和精力而结果也不一定能准确无误地反映实际,经常发生错误、碰撞和二义性。同 时,在产品的开发过程中有限元分析、装配模拟、仿真、加工等都必须以三维模型为基 础所以三维c a d 技术的研究和推广已成为当前c a d 技术的前沿课题。 无论在国外还是在国内三维c a d 软件的开发已是如火如荼。但同时,三维c a d 技 术的研究与丌发还不是很完善。相应的软件也就不可避免地存在一定的缺陷,直接影响了 软件的普及和推广。举例说,大多数三维c a d 软件的尺寸标注不符合国家标准和工程设 计习惯往往要借助其它二维软件来重新标注,但是这样一来,二维上的改动就不会联级 到三维上,而且其数据格式的来回转换也是相当麻烦。所以,深入研究三维c a d 技术, 完善相应软件的开发,使其更具有实用价值和应用前景,这也正是本课题研究的基本目的。 1 2 三维c a d 软件系统概述 一个实用的、商品化的三维c a d 软件系统将综合应用特征造型、求交分类、布尔运 算、参数化、局部操作、装配求解等c a d 核心技术,体现为草图设计、零件设计、装配 设计、工程圉绘制、衄面设计、渲染等功能模块,能满足许多实际部门的应用需要。使用 三维c a d 系统进行产品的造型和设计,符合设计人员的思维习惯,具有二维c a d 无可比 拟的优点。人们可以很方便地设计零件;对设计好的零件可作装配设计;干涉检查和爆 炸图生成既直观又便捷;更为重要的是,对设计好的零件和装配体,还可以由计算机自动 生成各种工程视图,如:标准三视图、赋名视图、剖视图、投影图等 另外产品外观的渲 染效果还可满足视觉和商业广告宣传的要求。三维产品造型与设计,大大提高了设计效率。 比如原来设计一台类似洗衣机的产品,通常需要一年以上的时间丽借助三维c a d 系 统只需三个月左右的时间。 一个实用的三维c a d 支撑软件必须具各的功能主要有以下几点: 1 、能提供参数化特征设计功能;结合装配技术,系统能支持自顶向下设计; 2 、可根据三维模型,自动生成符合国标的二维工程制图; 第1 页 国防科学技术大学研究生院学位论文 3 、能支持复杂曲面设计; 4 、能提供快速真实感图形显示功能和渲染功能: 5 、可提供标准文件接口; 6 、系统具有友好的用户界面。 1 3 三维c a d 软件系统的开发现状 多年来,清华大学、华中科技大学、浙江大学等高校在国家科技部和其它部委的支持 下t 跟踪国外先进技术在c a d c a m 原型系统开发、算法研究等方面取得了较大的发展, 并开发了一批三维c a d 原型系统。但是我国在c a d 系统研制和开发上,同先进国家尚 有一定的差距。在欧美等西方国家,c a d 技术已形成从研究开发、生产、推广应用到销售 服务一条龙的高技术产业。因此,国内c a d 系统的开发,从一开始就存在自主版权与引 进国外平台之争。在这场技术之争中,就二维c a d 软件开发为例,自主版权一方不仅 要在支撑平台上与a u t o d e s k 公司比实用性和稳定性而且还要与在a u t o c a d 上做应用的 开发商比机械应用软件。 在三维软件研制与开发上,事实上也形成了自主版权与引进造型内核之争。实际上, 对于三维c a d 软件开发来说,自主版权和引进国外造型内核之间的冲突已不象二维c a d 那么尖锐。因为,国外的几何造型内核,无论a c i s3 dt o o l k i t 还是u g 公司的p a r a s o l i d , 都只是一个几何造型器提供曲线曲面求交分类、布尔运算、圆角、抽壳等纯几何造型功 能,并不提供诸如参数化或变量化技术、特征树管理技术等三维c a d 软件开发中的其它 关键技术。因此引进造型内核开发三维产品造型系统,与在a u t o c a d 上开发机械绘图软 件,并非一个概念。 通过对国产c a d 软件的评测,可以发现如下三个大问题: 1 、稳定性不够:这是国产软件的通病,也是因为国内软件开发商不重视产品的质量 保证体系所致。为确保软件开发的质量根据软件开发的规律,按i s 0 9 0 0 0 规范进行软件 刀:发是十分必要的。 2 、工程化、实用化差:这主要体现在两个方面。首先是草图模块太弱,就目前的几 个原型系统来说,其缺少我国工程技术人员所习惯的一些辅助命令其实我国在二维c a d 绘图方面水平不低如果将二维绘图系统中的基本命令加入三维系统的草图模块,以改进 草图功能是最理想的。其次,出图困难。即三维c a d 系统中工程图模块,与国外系统s o l i d w o r k s 、s o l i de d g e 等一样达不到实用要求。比如:尺寸标注不符合国家标准,达不到工 程制图的要求不能支持绘图仪输出图纸等。 3 、缺乏有说服力、有特色的应用。目前的几个原型系统大都只有零件设计、装配设 计、工程图等基本功能模块。个别系统带有加工或有限元分析模块,但远未达到可用的程 度特别是,所有原型系统均没有标准件库。 当然国外的c a d 软件也有缺点像s o l i dw o r k s 、s o l i d e d g e 等国外优秀的中档c a d 系统的主要缺点是:无独立的曲面造型模块,曲面造型与实体造型结合不好放样、单张 面上的局部操作、装配的容差分析、工作组的一级数据管理等功能不理想。但这些问题国 内系统也一样存在。 综上所述,国内的三维c a d 软件系统与国外同类产品相比,差距较大,从而导致国 内大多数企业都采用国外优秀的三维c a d 软件来进行产品开发。因此根据国内三维c a d 第2 页 国舫科学技术大学研究生院学位论文 软件的需求形势和国外三维c a d 技术的领先性,本课题应基于国外三维c a d 软件系统来 进行c a d 技术的研究与开发并根据国内需求开发出更加实用的三维c a d 软件系统。 1 4 课题的主要任务以及相关技术 机械设计教研室从9 0 年代起就致力于c a d 技术的研究与开发,并在a u t o c a d 基础 上成功地丌发出了银河机械c a d 系统。根据c a d 技术发展的趋势,教研室把目光投向了 三维c a d 技术的研究与开发。以前,我们在这方面投入的精力不够,所以,要走自主版 权这条丌发路线是十分困难的,因此,我们决定基于国外三维c a d 软件s o l i de d g e8 0 进 行二次开发,对其中存在的不足进行改进和完善。 s o l i de d g e 软件是美国e d s 公司的中档c a d 软件包,该软件基于微机平台,提供了 非常强大的零件设计、装配图设计、钣金设计及二维工程图设计功能它与s o l i dw o r k s 一样,都是建立在p a r a s o l i d 的造型内核上以增强工作性能,很容易和基于p a r a s o l i d 的 c a d c a m c a e 软件及其它需要实体模型支持或转换的应用程序集成。同时,s o l i de d g e 内置与其它流行c a d 系统格式交换的数据转换器,有助于与其它系统设计数据的集成。 同样,s o l i de d g e 具有完整的应用程序接口,文件详尽采用标准的w i n d o w so l e 自动化 和组件对象模型( c o m ) 技术。应用程序接口( a p i ) 使用户和软件开发者能够以v i s u a l b a s i c ,v i s u a lc + + 或其它标准程序语言对s o l i df z i g e 进行二次开发。 如上所述,可以看出,s o l i de d g e 优越的性能价格比为我们提供了p c 平台上的c a d 设计环境,不仅仅是在技术上可行,更重要的是在经济上也成为可能这对于我国目前的 大多数企业来说是一个不错的选择。所以,它们的应用前景将会十分广阔。但是,s o l i de d g e 也不可避免地存在着某些缺陷。其中它的工程制图模块达不到实用要求:尺寸标注不符 合国家标准,在公差标注、明细表的处理等方面都不符合工程设计习惯,达不到工程制图 的要求。这些缺陷不解决,就会影响到s o l i de d g e 的应用与推广。 基于以上分析逯厦啦圭墨焦釜是:基于s o l i de d g e 软件系统进行三维c a d 技术的 研究与歼发,并初步完成基于s o l i de d g e 平台的符合国家标准和工程设计习惯的尺寸标注 及明细表处理系统。系统应具有较强的实用性,能够解决s o l i de d 铲软件系统中存在的尺 寸标注不符合国标的缺陷,完成长度标注、圆弧标注、角度标注、公差标注等国内工程设 计中常用标注的重新定制,并建立基于数据库操作的明细表处理系统,使其更适于在我国 进行推广和普及。 课题任务的完成,就要以熟悉s o l i de d g e 二次开发中所涉及到的相关技术和原理为前 提,同时也要熟练掌握v i s u a lb a d c 语言编程。一般来说针对本课题需要掌握以下技 术原理以及相关知识。 l 、c o m 技术 c o m ( c o m p o n e n t o b j c o t m o d e l ,组件对象模型) 是m i c r o s o f t 刨建的一种二进制和网 络标准,是m i c r o s o f t 的基于组件的软件解决方案的基础。c o m 为基于组件的开发方式提 供了简单、一致的模型,实践已经证实了这一点。虽然c o m 的重要性已被逐渐认可,但 是c o m 规范中囊括了如此之多深奥而抽象的思想和概念,根容易让人谜陷其中而不得要 领。s o l i de d g e 提供了大量的c o m 接口,所以,掌握c o m 原理和规范是必须的。 2 、自动化技术 自动化技术是o l e 的基础在未使用“a c t i v e ) ( ”商标前,自动化技术被称为o l e 自 动化。虽然c o m 规范非常灵活实现c o m 对象也确实做到语言无关,但实际上,c o m 第3 页 国耱瓤学技本大学辑究生茨学披论文 的母语仍然是c + + ,c o m 所使用的一熬数据类型在有些语吉( 如v b ) 中很鼹表达。所以, 对于标准的c o m 对象,要想在v b 或者更弱的漪级语言( 如v b a ) 中使用,有时是很豳 难甚至不霹蕤豹。瓣垂动证技术,撵碧c o m 技零的一耪幸謦谚j 或者谈是一静疲用,为这蹙 高级语言使用组件模块提供了条有效的途径。在s o l i de d g e 的开笈中也广泛地使用到了 自动化技术所以,对自动化技术的掌握是很必戮的。 3 、s o l i d e d g e 对象 s o l i d e d g e 箍供了大鬣箍全瑟瓣辩象模蘩泉表承象雏蠹部嚣素。逶避a c t i v o x a u t o m a t i o n 技术来讲问这些对苏的方法、属性以殿事件,就可以对s o l i de d g e 中相应的内 部元素进行操作和驱动,从而在s o l i de d g e 环境巾实现用户自定义功能的扩展。所以,访 翊窝镬蠲踟| 避鞠拶怼象是逡嚣s o l i de d g e 二次嚣发戆萋麓与援心,宅蠖全瓣扩震s o l i d e d g e 的功能或将s o l i de d g e 功能集成刘用户应用糙序中以实现完全客户亿成为可能。 4 、v i s u a lb a s i c 的数据库汗发技术 在s o l i de d g e 鹣二次曩:发巾,客户耀痔使用m i c r o s o f ta c c e s s2 0 0 0 建立一个数据瘴张 存放蕨s o l i de d g e 巾获取的信怠数蕹,并稀用v b 躯d a o 对象酶方法叛及属馥来操作和管 理这些数据。因此,熟悉和掌握v b 的数据库开发技术,埘以使得客户程序能够合理有效 遮控制和蟹理s o l i de d g e 数据。 5 、足寸栝注羲袭示每实瑗 尺寸照机械零件设计和制造中的熏鼗参数,机械零件的视图只能表达产牖的结构形 状,而零件各部分的太小和相对位置则鼹求通过尺寸标注来确定,尺寸标注是下游过程 s o l i de d g ec o n s t a n t st y p el i b r a r y :常数濑墅庠( c o n s t a n t t l b ) ,包齿7s o l 黼e d 棼尊 串健矮瓣掰有常数。在任嚣将常数嚣淹输入、毒鑫逡戆圭l 鏊方,这魏鬻数氆虿蔽氛禽森在粪爨 库巾。 3 ) s o l i de d 黔d r a f tt y p el i 驰哆;裁强类型簿( d r a f t 。f i b ) 。 4 ) s o l i de d g ef i f ep r o p e r t i e so b j e c tl i b r a r y :文件属散射象库( p r o p a u t o ) ,使用时不 爨簧襄动s o l i de d g e ( 期有类鼙蓐 筝舞巍建疑源) 。 5 ) s o l i de d g ef r a m e w o r kt y p el i b r a r y :框架结擒爽墅摩( f r a m e w r k f i b ) ,这是s o l i d 瓣鐾e 豹基獭结拣貘。 6 ) s o l i de d g ef r a m e w o r k s u p p o r tt y p el i b r a r y :框架结擒支持樊魁库( f w k s u p p ,f i b ) , 变捺二维对象,生簧建子鹾霾、革黧巧壤串,热雍越、辕廓等。 7 ) s o l i de d g eg e o m e t r yt y p el i b r a r y :几何类型库( g e o m e t r y t l b ) - s ) s o l i de d g ep a r tt y p el i b r a r y 零棒襄钣垒类型嚣( p a r t ,f i b ) 。 9 ) s o l i de d g er e v i s i o nm a n a g e r 测e 蠛t y p el i b r a r y :黢奉警理辩豢痒( r e m r m 抒f l b ) 一 在v i s u a l b a s i c 熬豢藏珏境孛,嶷“置疆”菜攀孛遗簿“孳l 攫”鑫令,辩掇掘爨2 4 爨 泳的对话搬,将掰霭爰用到鲍摩选中即w 。在将s o l i de d g e 的备类型熙引入王裁翳,客户 建爨程寒裁珂鞋谑麓s o l i d 翻秽挺供煎童爨对黎t 隧2 4s l 鼹轴i i d 翻辨豹樊照瘴 2 0 2 添加s o l i de d g e 自定义的控件 鲡慕蔫要裁建一个鑫定义靛螽令。爵疆在v i s u a l b a s i c 牵使用s 罐诞斟嚼撬爨豹鑫定 义命令控彳牟。献“z 程”菜革中选择“鄢件”选项,将s o l i de d g e 的有关控粹引入到誓 耧孛,舞凿2 。5 壁篓: _ _ _ _ h _ _ _ _ _ h m _ _ _ _ _ _ _ _ h _ _ _ - _ h 一 一 纂l o 更 国防科学技术大学研究生院学位论文 1 ) s o l i de d g ec o m m a n dc o n t r o l 命令控件 2 ) s o l i de d g em o u s ec o n t r o l :鼠标控件 3 ) s o l i de d g ep a r tv i e w e rc o n t r o l :零件浏览控件 田2 5 引用s o i i de d g e 的类型库 当在工程中加入上述控件后,在v i s u a lb a s i c 的工具箱中会加入上述控件的图标。 如图2 6 所示。 m o u s ec e n t r e i c o m m a n dc o n t r o l p n r t v i e w e rc o n t r o l 围2 6s o i i de d g e 提供的三个控件 如果使用其中任何一个控件,工程中需要包含一个对话框。而大多数程序都采用对话 框的形式获取用户的输入信息以及向用户输出信息。当命令控件和鼠标控件加入对话框 后,程序在运行时这两个控件是不会显示的。 2 3 3 添加s o l i de d g e 命令 这里将介绍添加一个s o l i de d g e 命令的基本过程。同时,这个过程也是在后面章节 进行本课题系统开发中创建命令时所采用的一般过程具体步骤如下: 1 、制作主对话框,根据程序的设计方案和功能要求,在窗体上放置所需的文本框、 标签、按钮等一般控件,同时添加s o l i de d g e 命令控件和鼠标控件。 2 、从“工程”菜单选择“添加模块”选项,添加一个模块。 3 、从“工具”菜单中选择“添加工程”选项,在刚创建的模块中加入一个过程,并 命名为m a i n 。 4 、在“工程”菜单中选择“工程属性”,在弹出的对话框的“通用”标签下,将工 程类型设为a c t i v e xe x e ,启动对象设为s u bm a i n 。 5 、修改命令控件i g c o m m a n d l 的a c t i v a t e 事件,代码如下: p r i v a t es u bi g c o m m a n d la c t i v a t e ( ) f o r m l s h o w e n d s u b 第1 1 页 国防科学技术大学研究生院学位论文 6 、 修改命令控件i g c o m m a n d l 的d e a c t i v a t e 事件,代码如下: p r i v a t es u bi g c o m m a n d l _ d e a c t i v a t e ( ) f o r m l h i d e e n ds u b 7 、从“工程”菜单中选择“添加类模块”用于创建一个新类,这个类允许s o l i d e d g e 连接到程序。 8 、修改新建类的t e r m i n a t e 事件用于卸载程序的主对话框,代码如下: p r i v a t es u b c l a s s j e r m i n a t e o u n l o a df o 肿l e n ds u b 9 、在新建的类中加入一个过程。从“工具”菜单中选择“添加过程”用于创建一个 新的子程序,将其命名为c o m m a n d _ i n i t i a l i z e ,并加入以下代码。设置命令控件的命令特性 为b a s i c c m d 。 p u b l i cs u b c o m m a n d _ l n i t i a l i z e ( b a s i c c m da so b j e c t ) s e tf o r m i i g c o m m a n d i c o m m a n d = b a s i c c m d e n ds u b 1 0 、将鼠标控件的e n a b l e m o v e 属性设定为t r u e 。同时,在m o u s c m o v e 事件响应函数 i g m o u s e l m o u s e m o v e 中添加相应的代码,对s o l i de d g e 中的鼠标移动事件进行响应处理。 1 1 、至此已经完成了一个简单程序的编写工作。这个程序也体现了在s o e de d 铲中添 加命令的基本框架。从“文件”菜单中选择“制作e x e ”,编译生成a c t i v e ) a u t o m a t i o n 程序。 1 2 、在s o l i de d g e 中,选择“t o o l ”菜单的“m a c r o ”选项,在弹出的对话框中打开 并运行剐才编译好的e x e 程序,对程序进行测试。 2 3 4s o l m e d g e 命令控件的使用 命令控件使s o l i de d g e 和用户程序能够互相通信。命令控件不与最终用户进行交互, 只在设计时可见。要理解命令控件,首先需要了解s o l i de d g c 中命令的结构以及各命令执 行时的不同状态。命令控件代表了命令对象从而也就映射了该对象可用的事件和属性。在 s o l i de d g e 中,一个时刻只能由一个活动命令存在,活动命令可以接受s o l i de d g e 窗n 中 的键盘和鼠标事件。 当前活动的命令可以暂时地变成非活动状态但不中断它,待需要运行的命令结束后再 次激活该命令,这种使一个命令暂时无效而运行另一个命令的技术称为堆栈技术,可以在 其他命令运行过程中运行的那些命令称为堆栈命令。堆栈命令一般是一些特定的非破坏性 命令,如p a n 、z o o m 等视图控制命令。 当从“r u nm a c r o ”对话框中选择一个命令后,s o l i de d g e 首先创建一个引用,随后激 活其中的c l a s si n i t i a l i z e 方法。此时在宏命令中的命令控件被激活于是宏命令就可以 捕获s o l i de d g e 窗口中发生的事件。在上节的第9 步中,实现了上述过程。其中,b a s i c c m d 代表了运行的宏命令,并根据该宏命令的特性初始化了命令控件。命令控件被激活后,随 之引发一个事件通知v i s u a lb a s i c v i s u a lb a s i c 在接到命令控件以激活的通知后,显示出 命令中相关的对话框,这时命令控件和鼠标控件开始接受事件。需要注意的是:在这里, 对话框并不是在调用f o r m事件是显示出来,而是在命令控件被激活后才显示出来。_load 当需要运行别的命令( 常规命令或堆栈命令) 时,必须终止当前正在运行的命令。要 结束当前命令,需要引发d e a c t i v a t e 事件该事件请求v i s u a lb a s i c 隐藏所有与当前命令相 关的对话框。如果是运行了一个堆栈命令而引发了d e a c t i v a t e 事件,当堆栈命令结束而引 第1 2 页 国防科学技术人学研究生院学位论文 发了d e a c t i v a t e 事件,将会随之引发t e r m i n a t e 事件来终止当前的命令。 t e r m i n a t e 事件释放所有与当前命令联系的资源,以下一些原因将导致t e m f i n a t e 事件: 1 ) 通过将命令控件的d o n e 属性设置为t r u e 来发出终止消息,如果在命令控件和鼠 标控件在事件执行过程中设置了此属性,命令将在相应的事件执行结束后终止当前的命 令;如果是为了响应其他事件而设置了此属性,命令就会立即终止。 2 ) 在s o l i de d g e 中按下了e s c 键,当前命令会立即终止。 3 ) 运行另一个非堆栈命令当前命令会立即终止。 4 ) 发生错误。当前命令会立即终止。在发生错误的情况下,将首先引发t e r m i n a t e 事件而不是d e a c t i v a t e 事件。 5 ) 关闭包含命令控件的对话框,此时,将引发d e a c t i v a t e 事件或者t e r m i n a t e 事件, 除非已在v i s u a lb a s i c 的f o 咖u n l o a d 事件中将d o n e 属性设为t r u e 。 2 4 建立s o l i de d g e 的a d d i n 程序 上节简要地介绍了使用v i s u a lb a s i c 创建s o l i de d g e 命令的一般过程。可以看到t 要运 行相应的宏命令,就必须在s o l i de d g e 中通过手工选择“t o o l ”菜单的“m a c r o ”选项,并 选择相应的e x e 程序来实现在实际的二次开发应用中,这种实现过程就显得比较繁琐和 松散改进的方法是创建一个a d d - l n 程序,在s o l i d e d g e 环境中实现相应的自定义菜单或 工具栏来直接调用编译过的宏命令,从而将新建的宏命令与s o l i de d 辨系统紧密而有机地 结合在一起。 2 4 1a d d - i n 简述 在s o l i d e d g e 中a d d i n 程序是作为一个动态连接库( d l l ,d y a m i c a l l y l i n k l i b r a r y ) 其中包含了一个实现了i s o l i d e d g e a d d l n 接口的c o m 组件对象可以说a d d - l n 将s o m e d g e 作为应用程序容纳器,采用类似内核函数的方法来扩展s o l i de d g e 功能。对于一个 a d d i n 来说,应满足以下要求: l 、它必须是一个自注册的a c f i v e xd l l 。a d d - i n 的编写者应提供一个注册脚本,用 于在a d d i n 安装时对此d l l 进行注册并在d l l 的注册项中添加特定的s o l i de d g e 信息。 2 、在它的注册设置中将键“i m p l e m e n tc a t e g o r y ”的值设为c a t i d _ s o f i d e d g e a d d i n , 这样,s o l i de d g e 会将其视为自己的一个a d d - l n ,井自动加入到系统选项中。 3 、它必须实现i s o l i d e d g e a d d i n 接口。它可以实现其它任何接口但是 i s o l i d e d g e a d d i n 是s o l i de d g e 所要寻找的唯一接1 2 1 。 4 、它必须添加命令到一个或多个的s o l i de d g c 工作环境中。这将在a d d q n 的 i s o l i d e d g e a d d l n 接口的“o n c o n n e e t ”方法的调用中实现。 5 、它应为这些命令添加相应的g u i ( g r a p h i c s u s e ri n t e r f a c e ,图形用户界面,例如, 菜单、按钮等) 。 6 、a d d i n 必须为g u i 提供一个版本号,并由s o l i de d g e 保存。在下一次a d d - l n 装载 时,如果g u i 的版本号发生了改变,s o l i d e d g e 就会将以前所有的1 1 3 1 - 具栏及其按钮毁掉, 同时基于方法“o n c o n n e c t t o e n v i r o m e n t ”中函数“a d d c o m m a n d b a r b u t t o n ”的调用来重新 生成新的工具栏及其按钮。 7 、接口的a d d r c f 和r e l e a s e 方法的使用要遵循c o m 规则。在v i s u a lb a s i c 中“s e t s e i n t e r f a e e = ”语句将实现接1 2 1 的a d d r e f 方法,而语句“s 吼 s e i n t e r f a c e = n o t i l i n g ”会实现r e l e a s e 方法。 第1 3 页 国防科学技术人学研究生院学位论文 2 4 2a d d i n 建立的过程 在本课题中,作者编译实现了十几种宏命令,这就需要建立一个a d d - l n 程序来将这些 宏命令有效地融合到s o l i de d g e 系统中。以下将对a d d - i n 程序建立的过程进行简单地叙述: l 、在v i s u a lb a s i c 中,新建一个“a c t i v e xd l l ”工程,从“工程”菜单中选择“添 加类模块”用于创建一个新的类。 2 、实现i s o l i d e d g e a d d l n 接口代码如下: m p l e m e n t si s o l i d e d g e , a d d l n 3 、实现i s o l i d e d g e a d d l n 接口的o n c o n n e c t i o n 方法,形式如下: p r i v a t es u b 1 s o l i d e d g e a d d l n _ o n c o n n c c t i o n ( b y v a la p p l i c a t i o na so b j e c t , b y v a l c o n n e c t m o d ea ss o l i d e d g e f r a m e w o r k s e c o n n e c t m o d e , b y v a l a d d l n l n s t a n c ea s s o l i d e d g e f r a m e w o r k a d d l m e n ds u b 这里s o l i de d g e 希望通过使用s o l i de d g ea p p l i c a t i o n 的i d i s p a t c h 接口与a d d - l n 进行 连接。同时,a d d i n 可以调用此接口所提供的方法与s o l i de d 鲈的事件接受器进行连接, 否则便与s o l i de d g e 进行通信来执行a d d - i n 启动时所应完成的任务。本文采用后者,一般 来说,在调用o n c o n n e c t i o n 方法时应完成以下几个基本

温馨提示

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

评论

0/150

提交评论