(机械设计及理论专业论文)基于autocad的三维重建系统的研究.pdf_第1页
(机械设计及理论专业论文)基于autocad的三维重建系统的研究.pdf_第2页
(机械设计及理论专业论文)基于autocad的三维重建系统的研究.pdf_第3页
(机械设计及理论专业论文)基于autocad的三维重建系统的研究.pdf_第4页
(机械设计及理论专业论文)基于autocad的三维重建系统的研究.pdf_第5页
已阅读5页,还剩67页未读 继续免费阅读

(机械设计及理论专业论文)基于autocad的三维重建系统的研究.pdf.pdf 免费下载

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

文档简介

基于a u t o c a d 的三维重建系统的研究 机械设计及理论专业 研究生董军辉指导教师姚进 三维重建一直是计算机图形学领域中的难题之一,是计算机三维造型的一 种重要手段。工程图纸实际表达的是三维物体,二维工程图样构造三维模型也 战为工程图智能理解的主要方面。 本文从实用的角度出发,总结了正投影工程图中的投影理论基础、人工读 图方法以及注意的相关问题,采用了以c s g 方法为主,b - - r e p 方法为辅,类 似于c s g 建模的机制来实现二维视图的三维重建过程。从特征模型和边界模型 两种角度复合地理解形体,兼有模型引导和白底向上两类算法的优点,在此基 础上提出了一种针对工程图的三维重建的实施方案。 田绕从二维工程图到三维模型的整个重建过程,通过对图形前置处理过程 口0 计细分析,提出了包括二维数据文件的格式的统一、视图分离、视图关系树 和f 地謦坐标系建立的具体实现方法:设计了用于表达特征信息的数据结构:研 究j u 总结了特征识别算法,基于实用的角度,采用了建立标准件库,自动识别和 人工交互式识别相结合的特征识别方法;基于s t e p 标准和特征树,采用人机 炎i i 的方式,确定了特征之间的组合关系。 基于a u t o c a d 平台,提出了面向二维工程视图的三维重建系统的总体结 构、编程接v a 利具体实施方案。采用a u t o c a d 提供的o b j e c t a r x 开发工具, 在v c 一- + 编译调试环境中实现了系统的基本功能。 关键词:工程视图三维重建特征识别a u t o c a d r e s e a r c ho n3 d o b j e c t r e c o n s t r u c t i o n s y s t e m b a s e do na u t o c a d m a j o r : m e c h a n i c a ld e s i g na n dt h e o r y p o s t g r a d u a t e :d o n g j u n h u is u p e r v i s o r :y a oj i n ”t h e3 d o b j e c t r e c o n s t r u c t i o n ”h a sb e e n o n e o f c h a l l e n g i n g p r o b l e m si nt h ec o m p u t e rg r a p h i c sf i e l df o ra l m o s tt h i r t yy e a r s i ti so n e o ft h e i m p o r t a n t m e a n so fs o l i dm o d e lc o n s t r u c t i o n c o n s t r u c t i n g3 d m o d e lf r o m2 de n g i n e e r i n gd r a w i n g st h a t e x p r e s s3 do b j e c t i n f a c t , b e c o m e so ni m p o r t a n ta s p e c to fi n t e l l i g e n tu n d e r s t a n d i n g f r o mt h e p r a c t i c a l v i e w , t h i sp a p e rs u m m a r i z e s t h e t h e o r y o f o r t h o g o n a lp r o j e c t i o n b a s e do nt h ef i r s t - a n g l ep r o j e c t i o n ,t h ew a y so f m a n u a l r e a d i n gd r a w i n g s a n dd i s c u s s e st h e p r o b l e m s r e l e v a n t t h e m e c h a n i s ms i m i l a rw i t hc s gi su s e dt or e c o n s t r u c t3 do b j e c tw i t h p r i o r i t y t oc s ga n da i db yb - r e p s y s t e m a t i c a l l yu n d e r s t a n d i n gs h a p e f r o mt w op e r s p e c t i v e so ft h ef e a t u r ea n db o u n d a r ym o d e lh a st h es a m e a d v a n t a g ea sa l g o r i t h mo fb o t hm o d e li n d u c t i n ga n du n d e r s t a n d i n gf r o m t h eb o t t o mt ot o p b a s e do nt h ea b o v ew o r k ,a3 dr e c o n s t r u c t i o nm e t h o d f i o ml b ee n g i n e e r i n gd r a w i n g si sp u tf o r w a r d f o rr e c o n s t r u c t i o nf r o m2 d d r a w i n g st o3 d m o d e l ,am e t h o dt ou n i f y 2 dd a t a f i l e f o r m a t ,t od i v i d ev i e w sa n d t os e tu pv i e w sc o n n e c t i o na n d c o o r d i n a t es y s t e mi s p r o p o s e d t h ed a t as t r u c t u r ei sd e s i g n e dt oe x p r e s s t h ef e a t u r e si n f o r m a t i o na n dt h e a l g o r i t h m o ff e a t u r e r e c o g n i t i o n i s s t u d i e d t h es t a n d a r d 1 i b r a r y i s b u i l t , a n dm a n u a la n d a u t o m a t i c r e c o g n i t i o n a r ec o m b i n e df o rf e a t u r er e c o g n i t i o n b a s e do n s t e p s t a n d a r da n df e a t u r e t r e ea n d b ya d o p t i n g m a n u a la n d a u t m a t i c w a y s ,t h ef e a t u r e a s s e m b l yr e l a t i o ni sd e t e r m i n e d b a s e do na u t o c a d ,t h es t r u c t u r eo ft h e3 do b j c c tr e c o n s t r u c t i o n s y s t e m ,t h ei n t e r f a c ea n di m p l e m e n t i n gw a y sa r ep u tf o r w a r d a p p l y i n g o b j e c t a r x ,ad e v e l o p m e n tt o o la u t o c a ds u p p l y ,t h eb a s i cf u n c t i o no f s y s t e mi s r e a l i z e di nt h es u r r o u n d i n g sv i s u a lc + + k e y w o r d s :e n g i n c e r i n gd r a w i n g s f e a t u r er e c o g n i t i o n 3d o b j e c tr e c o n s t r u c t i o n a u t o c a d 四川大学硕士学位论文 l 绪论 1 1 三维重建技术的现状及发展趋势 在三维重建技术的研究领域中,其中以工程图的三维重建技术、医学中的 三维重建技术和计算机视觉理论中目标的三维重建技术是人们研究的热点。 医学的三维重建是从1 9 8 0 年以来,以c t 研究领域最为活跃。所谓医学 三维重建指的是利用面阵探测器“1 在样品上,按一定的扫描方式,在运动过程 卜- 次获得的面阵投影数据,再根据一定的算法直接重建出多个切片的c t 图像 或者得到被检测样品的三维体数据。使用计算机断层扫描技术、核磁共振成像 技术等获得的一系列二维图像为原始数据重建出来的三维医学图像为现代医学 提供了一个很有价值的工具。它广泛的应用于临床诊断、治疗计划、实体测量 以及辅助教育等方面。 在计算机视觉理论。卜的研究中,目标的三维重建一直是非常重要的研究 课题之一。在欧氏几何意义下的重建,所用的坐标系是直角坐标系,获取的是 目标的三维直角坐标,但这种方法需要已知投影矩阵,这涉及复杂的摄像机的 定标问题8 1 。在计算机视觉中,三维空间点和二维投影图像点之间存在一种变 换笑系,而这利关系是由摄像机的成像几何模型来决定的,确定模型参数的过 程就叫摄像机定标。对摄像机系统进行定标阱后就能从摄像机拍摄的二维图像 出发,计算三维物体的位置、形状等几何信息,进而实现欧氏几何下的三维重 建。静念的定标方法是用匹配和运动信息得出摄像机的内部参数,有关问题已 经有了比较成熟的方法和结论删。 面向工程图的三维重建是图形理解的一个重要分支,工程图理解的主要任 务是从二维视图表达中提取产品模型的三维信息。三维重建是计算机图形学领 域近3 0 年的经典难题,是计算机三维造型的一种重要手段。i d e s a w a 。1 于1 9 7 3 年首先给出了三维重建方法的数学推理模型,该方法仅研究了非常有限的平面 体的重建算法,但是他所提出的自底向上的方法成为其后许多三维形体重建算 法的基础。 8 0 年代初,三维重建已成为计算机图形学领域最热门的研究方向之一,提 出并实现了一系列的算法和技术”卜州,主要包括两大技术途径:边界表示法( b - - r e p 方法) 和结构实体几何表示法( c s g 方法) “。其中b - - r e p 方法是由自 登型查兰堡主兰垡堕苎 底向上的方法来重建模型,而c s g 方法是由自顶向下的方法来重建模型。 自项向下的算法是将形体分解为由若干个基本形体或体素( 正多边体、圆 柱、尉锥、球、环等) 组合而成。每种基本形体在三视图上的投影具有固定的 模式,例如圆柱的三视图是两个矩形与一个圊,而球的三视图为三个圆。找出 每个视图中的圆、矩形等元素,在通过检查其坐标值将这些元素相互对应,根 据基本形体的投影特性确定出每个部分的形状,最后将它们组装起来,就完成 了三维重建。实现这种基于模型引导的重建算法,关键是体素投影特征的识别 和提取。采用这种算法的局限性在于基本形体的选择和多解闯题的存在。 白底向上的算法主要是遵循“点线一面一体”这一思路,这种重建算法 有较为严格的数学基础,可以得到全部正确的解,而且能够有效的排除病态解 情况,但是该方法计算量大、效率较低。 皿i 沁工程图的三维重建技术的研究,经过二十多年的研究,总体进展不大, 究其原因主要是没有从工程图样的角度出发来考虑和解决问题。进入9 0 年代后 的工程视图理解研究聚焦在提高算法的有效性和实用性上,普遍地引入了人工 智能技术。 传统的三维重建基本上从教学和逻辑推理角度考虑问题,由于工程图样表 达的积聚性和规则性等特性,若不从图形角度出发,则不可避免地会产生大量 的虚点、虚线、虚面和虚体,这些虚元素需要花大量的时间去消除,往往又根 本无法消除或无法正确消除。 又如,传统的三维重建是基于单纯视图的,但单纯视图确实离工程图样很 远。应该说,引入尺寸不但不是一种累赘,相反地,它可以指导理解和重建。 例如两平行线问标有“a ”尺寸,并且两平行线中间必然有点划线,完全可以断 定这是一个圆柱的投影,甚至在投影省略情况下同样适用,这样对其它视图的 理解和三维重建起到了强化的指导作用。反之,没有尺寸时,要确定是否为圆 柱,至少需要两个投影,并且不允许投影有省略的情况。 在我国,这方面的研究起步较晚,清华大学、浙江大学、哈尔滨工业大学、 上海交通大学、重庆大学、华中理工大学等均在三维重建方面进行了研究工作, 取得了不少进展,但还需要不断的加强这方面的工作。 分析现有算法,多数注重重建过程的自动化、智能化,忽略了人的智能参 与。我们认为引进人的智能理解和认知过程,是三维重建从理论到实践的一个 四川大学硕士学位论文 大的飞跃。 1 2 面向二维工程图的三维重建技术的应用 1 三维重建技术在c a d c a m 中的应用 尽管随着计算机图形学、几何造型及相关领域的技术不断发展,许多具有 造型功能的商品软件相继出现,但是目前在工程领域,尤其是在逆向工程以及 计算机辅助设计与制造中,三维重建技术的研究仍具有相当高的理论和实用价 值,其主要体现在以下几个方面: a 工程图纸到c a d c a m 三维模型的转化; b c a d c a m 系统的图形输入; c c a d c a m 系统中不同层次模型之间的转换。 2 ,i 维币建技术在人工智能领域中的应用 i 维重建是一个模拟人工读图的过程,涉及到机器理解和推理问题。在基 二j 二工程三视图的三维重建中,由于二维信息与空间信息是“一对多”的关系, 不同于基于单个投影视图的线图理解它必须符合工程制图的投影规则“,重 建结果必须满足许多隐式和显示约束条件,因此对视图的解释过程更为复杂。 如何充分、准确、合理地解释工程视图信息为机器理解和推理提供了新的课题。 在智能装配机器人的研究中,三维重建技术在积木世界为机器人装配作业 提供了出三视图提示的目标理解功能,从而为机器人提供了一种目标理解法。 3 三维重建技术在教学中的应用 = i 维最建技术可应用于工程图学的教学实践中,训练和强化学生的空间思 维能力和读图能力,是工程图学教学的一种有效的辅助手段。 1 3 课题所要研究的主要内容 本课题所研究的三维重建是面向二维工程图的三维重建,是在基于 a u t o c a d 2 0 0 0 平台下开发的三维重建系统。 工程视图作为一种以投影原理表达空间三维形体的有效手段,广泛地应用 于产品模型设计,在传统工业中扮演着重要的角色。工程技术人员借助二维视 图,可以很容易地读懂视图所表达的空间形体和产品设计思想。随着计算机技 术,特别是c a d c a m c g 技术的不断发展,人们愈来愈关注三维重建技术的研究, 幽川大学硕士学位论文 即如何出计算机来自动识别和处理二维视图,最后构造出与二维视图相对应的 空间三维形体。自2 0 世纪6 0 年代,尤其是自i d e s a w a 于7 0 年代首次发表关于 出工程三视图重建立体图的论文以来,三维重建技术这一课题的研究受到了普 遍重视。其动因主要来自两个方面:一是人工智能领域的研究工作者试图解决 工程视图的机器解释问题,从而拓宽计算机视觉和机器人视觉功能的应用范围; 二是从事c a d c 棚的科技人员以此作为计算机辅助几何造型技术的一种新的方 法束研究。本课题正是在这种情况下开始研究从二维视图到三维形体的重建过 程。 奉深越之所以选择在基于a u t o c a d 图形平台下_ 丌发三维重建系统,是因为, a u t o c a d 作为通用绘图软件,具有功能强,适应性广等特点,是目前p c 系列微 机上最为广泛流行的绘图支撑软件包。而且在我国的c a d 应用工程中,以甩掉 图板为象征工程在全国范围内实施时,国内不少工厂和科研院所大都选用的 c a d 系统是a u t o c a d 的系列版本。正是因为如此多的用户使用它,使得它的数 据交换文件d x f ( d r a w i n ge x c h a n g ef i l e ) 文件成为了事实上的标准。此次本 系统的丌发正是在基于d x f 文件的基础上提取二维数据信息的。 基于二维工程图的特点,本课题主要研究内容包含: 1 三维重建系统的总体结构与实施方案 介绍了二- 三维重建系统的基本框架、丌发平台、丌发工具、编程接口。 2 图形前置处理 提出了二维数据格式文件的统一、视图分离、视图关系树的建立、视图坐 标系的建立的实现方法。 3 。特征信息的表示 设计了用于表达视图位置信息和特征信息的数据结构。 4 特征谚 别 提出了针对基本形体、组合体和辅助特征的特征识另q 方法。 j 特征组合 采用s t e p 标准和特征树,确定了特征之问的组合关系。 四川大学硕士学位论文 2 二维工程视图的三维重建理论基础 2 1 人工读图的基本原理 任何空间形体,不论形状是简单,还是复杂,都可以把它们看成是由若干 个基本形体在给定的空间位置上按一定的操作规则集合形成的。这些基本形体 包括棱锥、棱柱等平面立体和圆锥、圆柱、圆球、圆环等曲面立体。由基本形 体组成的复杂立体,称为组合体。 组合体三视图读图一般有两种基本方法1 : i 形体分析法 采用形体分析方法,假想将组合体按照其构成方式分解为若干个基本形体, 卉清各基本形体的形状、它们间的相对位置和表面自j 的连接关系。 2 线面分析法 采用线面分析法,是将组合体看成是由若干面( 平面或曲面) 、线( 直线或 曲线) 围成。把组合体分解为若干面和线,并确定出它们的相对位置和它们对 投影面的相对位跫。 根据物体的投影视图,运用形体分析法和线面分析法分析和构思,从而想 象出物体的空间形状。但是需要指出的是,这两种方法并不是完全独立的,是 相辅相成的,人们在进行组合体的读图时,总是先采用形体分析法,然后对局 部较难的地方,如形状复杂的斜面以及截交线和相贯线等再采用线面分析法, 读图应注意的问题: a 注意把几个视图联系起来读图:在没有标注尺寸的情况下,单凭一个视 图是不能确定物体的形状及其组成部分的相互位置关系。 b 注意找特征视图:所谓特征视图,就是能反映物体形状特征的那个视图。 把几个视图联系起来读图时,要注意寻找特征视图。 对于组合体来说,组成它的基本形体的形状特征,并非总是集中反映在一 个视图上,往往是分散在各个视图中的。 人工读图的般方法步骤: a 概括了解:了解视图的名称和投影方向,弄清哪个是主视图、俯视图和 ,二视圈。 b 形体分析:一般从主视图入手,把图形分为若干个部分,找出每个部分 四川大学硕士学位论文 的三面投影,并想出它们的形状。 c 综合想象整体:根据各组成部分的形状及其相互位置,逐步形成物体的 整体形状。 2 2 三维形体构成方式与重建过程 读图的过程也就是由二维视图向三维形体转化的过程三维重建。本课 题研究的是如何把人工读图的过程转化为计算机读图。 上述两种人工读图的方法也就对应于三维形体构成的两种方法,即形体分 析法构造立体几何法( c o n s t r u c t i r es o l i dg e o m e t r y ) ;线面分析法 边界表列i 法( b o u n d a r yr e p r e s e n t a t i o n ) 。 边界表示法,又简称b - r e p 法,是以物体边界表面为基础,定义和描述几何 形体的方法。这种方法能给出物体完整、显示的边界描述。其原理是:物体都 由有限个面构成,每个面由有限条边围成的有限个封闭域定义。 构造立体几何法,又简称c s g 法,在计算机内部,它不是通过边界平面和 边界线来定义实体,而是通过基本体素及它们的集合运算( 如相加、相减、相 贯) 进行表示,所以常称为布尔模型。如图2 1 所示。 a 图2 1 :同一物体的两种c s g 6 - b 四川大学硕士学位论文 c s g 法与b - r e p 法的主要区别。”“1 在于,计算机内部表示与物体的描述和 生成顺序密切有关,印存储的主要是物体的生成过程。从图2 1 中可见,同一 个物体可通过两种完全不同的c s g 结构描述。图a 所示是有两个长方体相加, 图b 所示是有从大的长方体中减去小的长方体。两者不仅应用的布尔运算不同, j u 且采用的基本体索也不同。 图中“u ”和“一”分别表示集合运算子交和差。这里不是指一般的并和差, 而是指那些经过修改后适用于形状运算的正则化集合运算子“”。c s 6 树中的每 个子树都代表一个集合,它是用算子对体素进行运算后生成的。树根代表最终 拼合而成的物体。c s 6 树可能是一颗不完全的二叉树,这取决于用户拼合该物 体时所设计的步骤。 与边界法相比,c s g 法构成实体几何模型相当简单。正如定义中所表达的, 其基本想法是将一个复杂物体视为一个简单基本体素的相加、相减、相交所构 成。各个基本体素不需要再分解,而是直接存储在数据结构中。当然还需要存 储变换矩阵以便确定这些基本体素在三维空问中的位置和方向。用这种表示 方法表示机械零件或机械部件时非常方便。据统计,大约有7 0 工业产品零件 可由长方体和圆柱体这两种最基本的体素构成,但对于形状比较复杂的物体, 特别是曲线较多的物体,这种方法有一定的局限性。 本系统根据人工读图知识,在综合考虑b r e p 法和c s g 法这两种算法的基 础上,提出了一种两者相结合的三维重建的方法。本文采用了以c s 6 方法为主, b - r e p 方法为辅,类似于c s g 建模的机制来实现二维视图的三维重建。为了减 少计算量,提高重建的效率,增加了人的智能性,使用户参与到对工程图的理 解和_ 【 别过程中,这样在计算机无法判断或者是产生歧义时,由用户来决策, 从】面提高了重建的效率。 , 由人工读图的方法步骤得出面向工程视图的三维重建的方法步骤。系统总 流程图如图2 2 所示。 四川大学硕士学位论文 输入工程图 d x f 土:y ,i 1 l i 图形前置处理 视图分离_ 广叫视图关系树 _ _ 视图坐标系 ; 1 j i 特采提取l 特征文件 l 特征组合f 三维模型数据 i 三维重构 图2 2 三维重建系统流程图 输入工程图的方法可以采用两种方式,一是将工程图纸经扫描、识别后转 换为d x f 数据文件。”;二是直接在绘图软件( 如a u t o c a d ) 中绘制的工程图, 以d x f 文件方式存储的。 系统输入d x f 文件后,要想实现工程图的三维重建首先就需要对图形进行 前置处理:即视图分离、建立视图关系树、建立视图坐标系。 四川大学硕士学位论文 特征提取主要是在二维空间中把图形几何特征拓扑信息提取出来,这些几 何特征信息的提取主要是针对o x f 文件中的实体段进行操作以及用户的人工参 与来共同完成的。 特征提取出来的信息记录在中间转换文件,这个中间转换文件则是根据 s t e p 标准”的思想建立的中性文件,本文称之为特征文件。 特征组合是把已经生成的无序的特征文件,按照类似于c s g 树的数据结构 把它组成三维模型的数据格式,再通过图形引擎来实现三维形体的重建。 2 3 三维重建的基本原理 二维视图理解的核一t l , 就是如何恢复三维实体在投影时所损失的拓扑和几何 信息。根据已有的视觉认知理论,人在进行实体重建时所采用的信息恢复策略 往往是同时进行几何信息和拓扑信息的恢复。由于正投影三视图在机械零件设 计与制造中的应用极为普遍,因此本系统所处理的工程视图是按照正投影原理 投影的。工程图的基本视图为主视图、俯视图和左视图非基本视图为一些局 部图、放大图等。 空i 自j 形体的三视图以不同方向的二维投影信息隐式表达空问立体信息,根 批j i j j l 法儿女u 的基本理沦,空间点在两个不同方向的投影可以完全确定点在空间 的位置,即点和线在不同视图中的坐标值应具有对应相等的关系,即机械制图 中的“长对正、高平齐、宽相等”的关系。对于三视图,若用f ( f r o n t ) 、t ( t o p ) 、 s ( s i d e ) 分别表示主视图、俯视图和左视图上的点的集合,那么主视图中的点f ( f f ) 具有x 、z 坐标,用x ( f ) 、z ( f ) 表示;同理俯视图和左视图上的点分 别用x ( t ) 、y ( t ) 和y ( s ) 、z ( s ) 表示。 1 设空问点p ( x 、y 、z ) 在不同视图中的坐标值应满足以下的投影特性: x ( f ) = x ( t ) ;y ( t ) = y ( s ) ;z ( f ) = z ( s ) ( 1 ) 2 反之有以下对应原理:若主视图、俯视图、左视图3 个视图中的二维点 ( x ( f ) 、z ( f ) ) 、( x ( t ) 、y ( t ) ) 、( y ( s ) 、z ( s ) ) 满足: x ( f ) = x ( t ) ;y ( t ) = y ( s ) ;z ( f ) = z ( s )( 2 ) 那么它们对应三维空间中的唯一点( x ( f ) 、y ( t ) 、z ( s ) ) 。 以上所描述的点的空间坐标对应关系就成为三维重建的基本出发点。 四川大学硕士学位论文 3 三维重建系统的总体结构与实现方法 本章主要介绍了面向工程视图的三维重建系统的基本框架、开发平台、开 发工具及其编程接口,并给出了具体示例。 3 1 三维重建系统结构 面向二维工程视图的三维重建系统( 如图3 1 ) 包括输入工程图、图形前 置处理、特征识别、特征组合和立体重构几部分。其中图形前置处理和特征识 别是系统的关键部分。 图3 i三维重建系统基本结构 图形前置处理是三维重建系统的一个重要的预处理环节。过去研究的三维 四川大学硕士学位论文 重建,关于图形前置处理这一模块主要是全部由计算机智能识别。由于我们处 理的对象是机械工程视图,图形较为复杂,单纯由计算机来识别,速度比较慢。 为了提高工作效率,减少分析误差,本系统充分地利用了计算机和强大的交互 式图形软件来实现。 本系统图形前置处理完成分一下几个部分: i 视图分离: 2 建立视图关系树; 3 建立视图坐标系。 特征阻别是三维重建的一个关键部分,是根据视图的二维图形信息,对视 图零件中的图元进行位置信息的判断,通过计算得到特征图形的拓扑信息和各 种尺寸信息,进而确定特征图形所在的位置和相应的尺寸。 奉系统特征识别包括一下几个部分: l _ 基本形体特征识别: 2 组合体特征识别; 3 辅助特征识别: 4 标准件识别。 特征组合是把特征文件中已识别出来的特征相互关联起来,构成一个有机 整体。 立体重构是把记录有三维模型的数据格式的特征文件,通过图形引擎来实 现三维形体的重建。 本系统采用交互特征识别和自动特征识别相结合的方法来识别零件的特征 信息,合理的确定了人机交互界面。对已识别了的图形特征,就记录下它的部 分特征参数。采用自动识别与交互式输入方式相结合的方法解决零件图上的尺 j t 标注、表面粗糙度、形位公差、尺寸公差等零件信息,结合以前提取的图形 部分特征参数,推断出特征的全部参数,提取的参数以提取特征的先后顺序, 按样本特征定义的参数内容及顺序存入文本文件中。 3 2 在c a d 系统上开发三维重建系统 32 1 利用v is u a ic + + 创建应用程序 本课题以v i s u a l c + + 6 0 为编辑器,以a u t o c a d 2 0 0 0 为图形支撑平台。用 四川大学硕士学位论文 v c 开发a r t 程序“”叫“1 ,可以在一个集成环境下编辑、编译、连接和调试,避 免了不同环境下的反复切换。 v i s u a l c + + 6 o 是基于w i n d o w s 平台开发的新型软件,它包括一套集成开发 环境,有m i c r o s o f td e v e l o p e rs t u d i o 、各种编辑器( 文本编辑器及各类资源 编辑器) 、编译工具、集成调试器、源代码浏览窗口和项目浏览窗口,为用户开 发良好的界面及良好的控制提供了非常方便的手段和及其丰富的编辑工具。 在d o s 下为实现数据驱动的程序设计,必需将数据定义为初始化常量,或 将某些图形和数据以单独的文件形式来供程序读取,而用v i s u a lc + + 进行 w jn d o w s 程序设计时,可以以某种特定的格式存储于资源文件中。在资源文件 中可定义用户将要用到的各种资源,包括位图( b i t m a p ) 、图标( i c o n ) 、菜单 ( m e n u ) 、对话框( d i a l o g ) 及字符串。用户也可以自己定义资源。把资源当作 组抽象的组件,利用系统提供的控制模板,通过按钮、对话框、鼠标对资源 进行定位、设计、完全抛掉用户仅仅依靠自己的想象设计界面及事件的过程。 使得用户在编制过程中随即见到将获得的结果。 图3 2 在l r m u a lc + + 上建立t v m d o w s 应用程序过程 四川大学硕士学位论文 利用v i s u a lc + + 创建w i n d o w s 应用程序( 如图3 2 所示) ,首先需要建立 一个坝目,项目是一些相关联的源文件的集合,这些文件通过编译、连接被组 合在一起,成为可执行的w i n d o w s 应用程序。在w i n d o w s 应用程序生成过程中, 还可利用调试器,对程序进行调试、跟踪、直到达到满意效果。 3 2 2a u t o g a d 系统的二次开发 在近十几年来,k u t o c a d 已经成为最流行的c a d 绘图软件,a u t o c a d 2 0 0 0 在速度、精度和使用方便性等方面都上了一个新台阶,特别是三维造型功能增 强许多。在a u t o c a d 提供的各种二次开发工具中,以c c + + 开发工具的效率最 高、功能最强。a u t o c a d 2 0 0 0 使用一种特定的c c + + 编程环境一- - o b j e c t a r x , 它包含一组c c + + 类库。这些库与a u t o c a d 在同一地址空间内运行并能直接利 用a u t o c a d 核心数据库结构和代码。库中包含一组通用工具,使得二次开发者 可以并充分利用a u t o c a d 的开放结构,直接访问a u t o c a d 数据结构、图形系统 以及c a d 几何造型核心,以便能在运行期间实对扩展a u t o c a d 具有的类及其功 能,以及创建全面享受a u t o c a d 固有命令之特权的新命令。借助o b j e c t a r x 生 成的应用程序,与普通的v is u a lc h 应用程序几乎没有什么区别,我们可同样 利用m f c ,共享w in d o w s 的各种资源邯“。 一个a r x 应用程序主要包含四大部分: 1 头文件部分 在头文件中必须包含“# i n c l u d e ”和“# i n c l u d e ” 这两个文件,它们是任何一个o b j e c t a r x 应用程序必须包含的。其中“a c e d h ” 是用于o b j e c t a r x 应用程序定义及c 访问a u t o c a d 特定编辑器服务的头文件; “r x r e g s v c h ”是a c r x x x x 实用函数的头文件。 2 函数声明部分 函数声明部分比较简单,对应用程序中用到的函数进行说明即可。这与普 通的v i s u a lc + + 程序没有太大的区别。只是i n i t h p p ( ) 和u n l o a d a p p 0 函数是 必须有的,因此说明语句总是有对这两个函数的说明。如下所示: v o i di n i t a p p 0 v o i du n l o a d a p p ( ) v o i du s ra p p 0 四川大学顶士学位论文 其中,u s r _ a p p ( ) 函数是用户自己定义的,这要取决于用户要完成的任务来 决定是出一个函数,还是由多个函数。 3 接口函数部分 存接f 函数部分中要使用三个关键函数,即i n i t a p p 0 、u n l o a d a p p 0 和 a c r x e n t r y p 。i n t0 。当应用程序被加载时,i n i t a p p ( ) 函数被a u t o c a d 所调用; 当应用程序被卸载时,u n l o a d a p p ( ) 函数被a u t o c a d 所调用。这两个函数均是通 过a c r x e n t r y p o in t ( ) 函数来实现a u t o c a d 调用的。 i n i t a p p ( ) 函数只作一件事情,那就是借助a u t o c a d 命令机制注册一个新的 a u t o c a d 命令,这个命令成为进入我们应用程序的另外一个入口: s t a t i cv o i di n i t a p p ( ) c a e m o d u l e r e s o u r c e o v e r r i d er e s o v e r r i d e : a c e d r e g c m d s - a d d c o m m a n d ( ”s h it u h u a f e n ”a u t o c e d 命令组名 ”s t h f ”全局命令名 “s t h f ”,本地化命令名 a c r xc m d m o d a l ,命令类型。是否可透明使用 s e a r c h d l g c r e a t e ,函数指针,用户自定义的函数 n u l l , 一1 , t h e h r x d l l m o d u l e r e s o u r c e i n s t a n c e ( ) ) : j 其中a d d c o m m a n d0 为o b j e c t a r x 库中定义的a c e d r e g c m d s 类成员函数,该 函数向a u t o c a d 命令堆栈中添加新的外部命令。可一次定义多个外部命令,即 不同的函数与不同的外部命令对应起来。 u n l o a d a p p 0 函数是卸载函数。该函数将调用r e m o v e g r o u p 0 函数释放用 a d d c o m m a n d0 函数定义的命令组,函数中唯一的参数即为命令组名。命令组中 的命令也被同时移走。 s t a ricv o i du n l o a d a p p0 f a c e d r e g c m d s 一 r e m o v e g r o u p ( ”s h i t u h u a f e n ”) : 四川大学硕士学位论文 接口函数a c r x e n t r y p o i n t ( ) 是任何一个o b j e c t a r x 应用程序都必须要有的 函数,它是a u t o c a o 与o b j e c t a r x 应用程序通讯的入口点,同时,o b j e c t a r x 内核通过它向应用程序传递消息和向a u t o c a d 返回应用程序的状态码。需注意 的是,因为o b j e e t a r x 应用程序是动态链接库d l l ,所以说没有m a i n 0 函数。 a c r x e nl r y p 。i n t ( ) 就相当于普通c + + 中的m a i n ( ) 函数。对由a c e d d e f u n 0 定义 的函数的调用请求,均是由a c r x e n t r y p o i n t ( ) 函数建立的。如果用户通过 o b j e c t a r x 或a e e d r e g f u n c0 函数定义一个新命令,a u t o c a d 会立即执行与该命 令有关的函数。 在应用程序中a c r x e n t r y p o i n t0 函数的格式如下: e x t e r n c a c r x :a p p r e t c o d e a c r x e n t r y p o i n t ( a c r x :a p p m s g c o d em s g ,v o i d * p k t ) s w i t c h ( m s g ) c a s ea c r x :k l n i t a p p m s g : a c r x d y n a 【 i c l i n k e r 一 u n l o c k a p p l i c a t i o n ( p k t ) : a c r x d y n a m i c l i n k e r 一 r e g i s t e r a p p m d i a w a r e ( p k t ) : i n i t a p p 0 : b r e a k : c a s ea c r x :k u n l o a d a p p m s g : u n l o a d a p p ( ) : b r e a k : c a s ea c r x :k l n i t d i a l o 创s g : b r e a k : d e f a u l t : b r e a k : ) r e t u r na c r x :k r e t o k ; 四川大学硕士学位论文 4 用户程序主体函数 依据用户需要完成的任务不同, 找种子元素任务为例说明如下: v o i ds e a r c h d l g c r e a t e ( ) 用户程序主体函数部分也大不相同。以寻 搜寻种子元素函数 c s e a r c h d l gd l g ( c w n d :f r o m h a n d l e ( a d s wa c a d m a i n w n d ( ) ) ) : in tn r e t u r n v a l u e = d l g d o m o d a l ( ) : 本系统定义的外部命令如下: 输入d x f 文件 4 c c _ o p e n i d _ e x p o r t f e a t u r 8 i dr e c o n s t r u c t 视图分离 c c s t h f 视图包含关系】c ci n c l u d e 特征提取 c c f e a t u r e 圆柱体 c cc o l u m n 方体 c 1 c _ c u b o i d 圆锥体 c c _ t a p e r 圆环体 c c _ l o o p 球体 c c s p h e r e 标准件 c c s t a n d a n d 【组合体特征 c c _ c o m p l e x 特征输出文件 c c _ e x p o r t f e a t u r e 特征重建 c c _ r e c o n s t r u c t 如 糟 o 0 o 种 酥 3 u u m i r r d a 鄂帅盯山|耄h|至叫叩恼捌哪 ,愀蛳乳一。一艮一一印一伯一b一却乳一邯一ddd一吐dddo一瞳d 四川大学硕士学位诧文 4 图形前置处理 图形前置处理是特征提取中的一个重要的预处理环节,它是一个工程图图 形信息的分析和理解过程,主要是在二维空间中进行的,包括:二维数据格式 文件的统一、视图分离、建立视图关系树和视图坐标系的建立。 4 1 二维数据格式文件的统一 图形前置处理处理对象是二维工程图,二维工程图是展好的工程设计语言, 特别在表达零件的制造信息,如尺寸精度、粗糙度、形位公差等方面,具有非 常直观、完整和准确的特点,广泛地被工程界所采用。 对于二维工程图的处理和表达,每个c a d 系统都有自身的数据文件,数据 文件分为图形数据文件、几何模型文件和产品模型文件。数据文件的格式与每 个c a d 系统的内部数据模式密切相关,而每个c a d 系统内部的数据模式一般是 不公丌的,并且是各不相同的。为了用户的方便使用,就有了数据交换文件” 这概念。本课题研究的二维工程图接受图形中性文件d x f 的格式,这样将使 前罱接口具有普遍意义。 d x f 是a u t o c a d 系统的图形数据文件。d x f 不是图形数据文件的标准,但由 于a u t o c a d 系统的普遍应用,使得d x f 已经成为事实上的数据交换标准。d x f 是具有专门格式的a s c i i 码文本文件,它易于被其他程序处理,主要用于实现 高级语言编写的程序与a u t o c a d 系统间的连接,或其它c a d 系统与a u t o c a d 系 统问交换图形文件。在a u b o c a d 图形编辑状态下,可以用d x f o l r r 命令来生成它, 也可以用d x f i n 命令读入它。 因为d x f 文件已经成为事实上的标准,因此无论国内还是国外软件商开发 的c a d 系统一般都设置有专门的接口,可以生成d x f 文件,实现不同c a d 系统 之问的数据信息的相互转换。因此本课题的研究是基于d x f 文件格式的数据提 取。下面我们简单了解以下d x f 文件的基本知识。 4 1 1d x f 文件总体结构 一个完整的d x f 文件由四个段( s e c t i o n ) 和文件结尾组成,它们的顺序是: ( 1 ) 标题( h e a d e r ) 段

温馨提示

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

评论

0/150

提交评论