(机械电子工程专业论文)基于web的2d+cad系统webcad的改善.pdf_第1页
(机械电子工程专业论文)基于web的2d+cad系统webcad的改善.pdf_第2页
(机械电子工程专业论文)基于web的2d+cad系统webcad的改善.pdf_第3页
(机械电子工程专业论文)基于web的2d+cad系统webcad的改善.pdf_第4页
(机械电子工程专业论文)基于web的2d+cad系统webcad的改善.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

(机械电子工程专业论文)基于web的2d+cad系统webcad的改善.pdf.pdf 免费下载

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

文档简介

u n i v e r s i t yo fs c i e n c ea n dt e c h n o l o g yo fc h i n a adi s s e r t a t i o nf o rm a s t e r sd e g r e e r e s e a r c ho n d e v e l o p m e n t o ft h e t w o d i m e n s i o n a if u n c t i o no f w e b c a d s y s t e m a u t h o r sn a m e :h e n gl i u s p e c i a l i t y :m e c h a n i c a la n de l e c t r i c a le n g i n e e r i n g s u p e r v i s o r :p r o f l i a n g u a ns h e n f i n i s h e dt i m e :j u n e1l ,2 0 11 7 一 中国科学技术大学学位论文原创性声明 本人声明所呈交的学位论文,是本人在导师指导下进行研究工作所取得的成 果。除已特别加以标注和致谢的地方外,论文中不包含任何他人已经发表或撰写 过的研究成果。与我一同工作的同志对本研究所做的贡献均已在论文中作了明确 的说明。 作者签名:粗 签字日期:矽f f ,多 中国科学技术大学学位论文授权使用声明 作为申请学位的条件之一,学位论文著作权拥有者授权中国科学技术大学拥 有学位论文的部分使用权,即:学校有权按有关规定向国家有关部门或机构送交 论文的复印件和电子版,允许论文被查阅和借阅,可以将学位论文编入中国学 位论文全文数据库等有关数据库进行检索,可以采用影印、缩印或扫描等复制 手段保存、汇编学位论文。本人提交的电子文档的内容和纸质论文的内容相致。 保密的学位论文在解密后也遵守此规定。 、么开口保密( 年) 作者躲驾煎 签字日期:m n 。c7 导师签名:3 缝瓮 签字日期:蒸! ! :叁:婴 摘要 摘要 现代网络技术的快速发展以及产品对c a d 的需求,使得c a d 技术网络化 的发展趋势r 益明显。它的特点是c a d 图样可以在网络上被发布浏览、查询以 及管理等,甚至更进一步可以实现异地协同设计。本实验室自主研发了一个基于 w e b 的c a d 系统。为了使系统更加高效和完善,结合系统的实际,对系统的二 维绘图功能方面存在的缺陷加以修改。 该w e b c a d 系统已经实现了大部分二维图形的绘制,但为了更好地与 a u t o c a d 进行交互,还需对a u t o c a d 生成的d w g 文件进行读写操作。本文在 前人工作的基础上,分析了d w g 文件数据形式,对从a u t o c a d 中读取图形对象 时出现的问题进行了分析,并对出现的问题如不能正确读取样条、标注及线型颜 色不f 确等,总结错误原因并加以修f 。 作为对二维绘图功能的补充,又实现了以块方式快速标注表面粗糙度符号以 及绘制正多边形的功能,并增加了用户控制显示和隐藏线宽的功能。 文章的最后对所做的工作进行了总结,并对以后的工作提出了展望。 关键字:网络c a d ,二维绘图,d w g ,块 ab s t r a c t a b s t r a c t w i t ht h ed e v e l o p m e n to fn e t w o r kt e c h n o l o g ya n dt h eu s e r s n e e df o rc a d ,t o p u b l i s hc a dd r a w i n g so nw e b ,t oo f f e rv i e w , q u e r y , m a n a g ea n da n a l y s i sf u n c t i o n s , e v e nt oo f f e rt h ec o o p e r a t i v ed e s i g nf u n c t i o na r et h ec a d d e v e l o p m e n t si n e v i t a b l e t r e n d f o rt h ep u r p o s e ,aw e bb a s e dc o o p e r a t i v ec a d s y s t e mi sd e v e l o p e d i no r d e rt o m a k et h es y s t e mm o r ee f f i c i e n ta n dp e r f e c t ,c o m b i n i n gt h ea c t u a ls y s t e m ,t h ed e f e c t s i nt h ea s p e c t so ft w o d i m e n s i o n a lf u n c t i o no ft h es y s t e mw i l lb er e v i s e d t h ew e b c a ds y s t e mh a sa c h i e v e dm o s tf u n c t i o no ft w o d i m e n s i o n a ld r a w i n g , b u ti no r d e rt ob e t t e ri n t e r a c tw i t ha u t o c a d ,t or e a da n dw r i t et h ed w gf i l ew h i c h g e n e r a t e db ya u t o c a ds o f t w a r ei sa l s on e e d e d i nt h i sp a p e r , b a s e do np r e v i o u sw o r k , t h ed a t af o r m a to ft h ed w gf i l ea n dt h ep r o b l e m so fr e a d i n gf r o mt h ea u t o c a d d r a w i n go b j e c ta r ea n a l y z e d ,s u c ha st h a tt h es p l i n ec a nn o tb ec o r r e c t l yr e a da n d m a r ka n dl i n ec o l o ra r ea l s on o tr i g h t t h e s ee r r o r sw i l lb es u m e du pa n df i x e d a sac o m p l e m e n tt ot h et w o d i m e n s i o n a lg r a p h i c sd r a w i n g ,a n dt h ef u n c t i o no f q u i c k l yd r a w i n gs u r f a c er o u g h n e s ss y m b o l sa n dp o l y g o na r er e a l i z e do nt h ew a yo g b l o c k - d r a w i n g ,a n dt h ef u n c t i o no fu s e rc o n t r o lo fd i s p l a yo rh i d et h ew i d t hi sa d d e d f i n a l l y , t h ea r t i c l es u m m a r i z e dt h ew o r kd o n e ,a n dt h ep r o s p e c to ff u t u r ew o r k w a sg i v e n k e yw o r d s :w e bb a s e dc a d ,t w o d i m e n s i o n a ld r a w i n g ,d w g ,b l o c k l 目录 目录 摘要i a b s t r a c t i i i 目录v 第1 章绪论1 1 1 引言1 1 2 协同c a d 设计1 1 3 课题研究内容3 1 4 论文结构安排4 第2 章w e b c a d 系统分析5 2 1w e b c a d 系统结构5 2 1 1w e b c a d 系统介绍5 2 1 2 体系结构6 2 2d w g 文件结构分析7 2 2 1 数据对象8 2 2 2 数据结构8 2 2 3 文件结构8 2 2 4d w g 实体结构9 2 2 5d w g 文件读写方法1 0 2 3 系统功能及待完善处1 l 2 3 1 缺少或不完善处l1 2 3 2 拟修改处1 l 第3 章与a u t o c a d 的交互1 3 3 1 简单实体1 3 3 1 1 椭圆弧1 3 v 目录 3 1 2 文字1 6 3 2 复杂实体l 8 3 2 1 样条曲线1 8 3 2 2 填充2 1 3 2 - 3 标注2 6 3 3 线型与颜色2 9 3 3 1 错误表现及原因2 9 3 3 2 解决方法3 0 第4 章二维绘图辅助功能的改善3 3 4 1 块功能绘图3 3 4 1 1 复杂形状块功能绘图的意义3 3 4 1 2 表面粗糙度3 3 4 1 3 正多边形3 6 4 2 辅助功能3 9 4 2 1 显示隐藏线宽3 9 4 2 2 实现方法3 9 第5 章w e b c a d 系统应用实例4 3 5 1w e b c a d 应用实例4 3 5 2w e b c a d 应用部署4 5 5 2 1 简单集成4 5 5 2 2 重新部署4 5 第6 章总结与展望4 7 6 1 工作总结4 7 6 2 展望4 7 参考文献4 9 致谢5 l 在读期间发表的学术论文5 3 v l 第1 章绪论 1 1 引言 第1 章绪论 当前,世界上正酝酿着一场以信息科学技术为主流的科学技术革命,对各 行各业都带来了巨大而深刻的影响。它的迅猛发展,不仅创造了巨大的财富, 也对传统的产品设计理念、管理模式和业务流程带来了猛烈的冲击,受其影响, 传统的经济结构和生产方式也在悄然发生着变化。在机械制造领域,经济全球 化的挑战已经降临,跨国公司如雨后春笋,企业巨型化的势头不可阻挡。绿色、 智能、集成的思想将逐步深入到产品的制造要求中。可以大胆地预测,未来的 市场竞争将更加激烈,用户的需求逐步倾向于个性化,对环境保护和资源的充 分利用将会更加得到重视,产品中的技术知识含量的重要性也将同益突出。机 械制造业未来的发展模式将是小批量,多品种,高质量,低成本,短周期,生 产柔性及环境友好等【1 】。 制造业竞争的关键,在于如何快速地开发出新产品并将其推向市场,这就 要求企业必须懂得如何准确抓住市场机遇,而且要能够对企业中的生产系统和 创造力资源进行快速有效地调动,缩短新产品的开发周期。作为企业增强市场 竞争力的一种行之有效的手段,产品开发手段上的创新已越来越被重视。如何 通过开发技术上的创新赢得产品的市场,也成为企业追求的目标。现代产品日 趋复杂,单一的设计者已很难完成,迫切需要更多人协作和参与产品丌发。在 衡量产品的经济和社会效益时,产品研发的投入与产品运行和管理过程中的各 种支出以及产品的寿命周期都要加以考虑。现代企业在全球化经济浪潮和迅猛 发展的信息技术,逐渐走向跨行业、跨地区、跨国家的协作和联盟企业方向, 组织和管理产品开发的模式也将发生极大的变化。基于以上,产品设计者之间 进行信息交互和共享的重要性日益加深,而目前的支持单用户的设计系统多数 不能满足这种需要,对支持多用户协同工作的设计系统的研究由此应运而生。 综上所述,基于协同的设计模式已经逐步成为高效和快速制造先进产品的 一项重要技术。因此将计算机技术与协同设计技术结合起来研究,具有相当重 要的学术、经济和社会价值。 1 2 协同c a d 第1 章绪论 计算机辅助设计( c a d ,c o m p u t e ra i d e dd e s i g n ) 是指利用计算机技术, 在产品丌发时作辅助,用来创建、修改、分析和优化产品 1 】。得益于计算机 海量的存储能力、快速的处理速度和界面友好的图形处理功能,计算机辅助设 计系统能够有效地完成复杂的、离散的工程设计,完成自动化生产和集成化生 产的任务,以此来提高来提高产品的研发效率,缩短产品的丌发周期。降低产 品的生产成本,提高企业的竞争力。 各种先进的产品设计和产品制造技术,已经被各国进行了大量的深入研究, 从而孕育出了不少新的计算机辅助设计技术。协同设计 2 】、并行工程【3 】、虚拟 制造技术【4 】、精益生产【5 】、敏捷制造 6 】、网络化制造【7 】,绿色制造【8 等设计 方法为企业展现了更广阔的发展天地,也在不断扩展着c a d 技术的应用领域。 以企业协同设计的角度来看,传统的c a d 技术存在着一些严重的缺陷:1 ) 从设计者角度来看,它们通常着重在于人一机交互方面,以单一设计者为中心, 对于人一人之间相互交流、协同设计的功能则相对比较弱;2 ) 在数据共享方面, 它们对数据共享很难做到,通常不能或者只是部分能够做到,使得设计者之间 的交流沟通相对并不容易;3 ) 从用户需求和人机环境一体化的角度来看,传统 的c a d 周期长,成本高,难以表达和满足用户的个性化需求,在产品设计思想、 设计进程、设计组织以及设计信息上缺乏有效的统筹协调和管理。因此传统的 c a d 已经不能满足当前的设计需求。可以将协同的设计思想与c a d 技术结合 起来,构建一个基于w e b ( b r o w s e r s e r v e r 结构) 的c a d 系统,从而将c a d 从一种设计者相互独立的桌面工具转变成一个支持协同合作与交流的开放系 统,本文所提的w e b c a d 系统就是这样的系统。 基于w e b 的c a d 系统提供了一个实时交流协作的网络平台,设计者与设 计者之间或是设计者与用户之间,都可通过这个平台实时交流和协同操作,通 过讨论和交流,实现产品设计的优化。系统中设计者之间的交流与协作,能够 更加快速有效地调用各种数据资源,减少重复资源的浪费和试制的成本,缩短 产品设计的生产周期,从而通过提高产品设计效率,来增强企业的市场竞争力。 自从i r e n eg r i e f 和p a u lc a s h m a n 在1 9 8 4 年首次正式提出“计算机支持的 协同工作( c s c w ) ”以来,c s c w 的研究一直备受关注和重视,如不断召开的几 个与计算机协同工作相关的国际顶级学术会议:c s c w ( a c m 主办,自1 9 8 6 年起每两年一次) ,g r o u p ( s i g g r o u p 主持召开,自1 9 9 7 年起) , e c s c w ( e u r o p e c s c w ,从19 8 9 年起) 等,此外,i e e e 也已着手主办计算机协 同设计会议。1 9 9 6 年由国内和国际学者联合发起的计算机支持的协同设计国际 学术会议( c s c w d ) 在北京召丌,并每年举行一次。国内方面,白1 9 9 8 年开始 的全国计算机支持的协同工作学术会议( c c s c w ) 也已经成功举办了七届。许多 2 第1 章绪论 高校和科研机构也已纷纷加入协同设计研究当中,例如中国科学院、清华大学、 复旦大学、浙江大学等高等院校都已经成立了专门的c s c w 科研实验室,并发 表了大量协同设计工作研究方面的论文。 现在市场上的基于网络的c a d 浏览和协同产品,也都已经达到了相当的成 熟度,如c i m m e t r ys y s t e m si n c 的a u t o v u ef o r a v a 。它使得用户可以在i n t e m e t 浏览器中直接打开服务器端的c a d 图纸进行浏览,并可进行红线标注。与此类 似的还有d r d w gi n c 的产品w e b v i e w e r ,它能够对工程制图中普遍使用的两种 文件d w g 和d x f 进行在线发布和在线浏览的功能。另外一些如c o c r e a t e 和 o n e s p a c e 等设计系统则主要是用来进行网络会议。 1 0 1l 】 但是大部分的c a d 系统并不是基于w e b 协同的。用户要使用这类系统, 必须先安装它们提供的客户端程序,通过客户端桌面工具来与服务器端连接, 从而完成协同操作。显然,这并不是一种很好的选择,特别是对异构环境的分 布式系统来说,例如一个软件丌发出来,针对不同的平台,可能需要同时提供 w i n d o w s ,l i n u x ,s o l a r i s 等版本,而且在每个平台环境下的配置也不尽相同。 1 3 课题研究内容 一个良好的设计平台和信息交流的环境,是实现协同c a d 必不可少的。基 于上述考虑,我们的研究工作将致力于实现一个这样的c a d 系统:基于w e b , 支持多用户,跨平台,可异地实时协同等。对于设计人员来说,不需要安装任 何的客户端程序,也无须考虑所谓客户端的配置,只要能够连上网络,用户就 能在网页上浏览c a d 图形文件,并对图形进行实时同步地讨论交流和审核标 注,换句话说,用户的所有丌发活动完全通过网页来进行。 为此,经过多年的不懈努力,本课题组已经初步开发了一个协同c a d 系统 ( 我们称为w 曲c a d ) 。该系统采用i a v a 语言,从底层开始完全独立自主地构 建而成。它拥有上面提及的所有特性,支持多用户、跨平台以及可异地实时交 互等。在该系统旱可以进行一些简单的二维图形设计,基本上满足了一个c a d 系统设计平台的要求。 但是,w e b c a d 系统在数据交互方面还存在一定的缺陷。现在工程领域应 用最广泛的文件存储格式是a u t o d e s k 公司的d w g 格式,这也是其名下软件 a u t o c a d 默认保存方式。a u t o d e s k 公司作为计算机辅助设计领域的佼佼者,其 旗下的d w g 文件格式已几乎成为一种标准。w e b c a d 系统如要得到更好的应用, 需要能够支持d w g 文件格式。目前该系统仅能对简单的直线或圆弧等进行d w g 文件格式的读写操作,本文通过讨论目前基于协同的w e b c a d 系统的理论和实 3 第1 章绪论 践,在w e b c a d 的二维功能方面进行了一些修正和改进,主要的研究内容包括: 1 w e b c a d 系统的结构和模块分析 2 w e b c a d 系统中二维绘图功能的不足之处 3 w e b c a d 系统读取d w g 文件中部分图形的研究 1 4 论文结构安排 根据本课题的研究目标与研究内容,本论文共分六章,各章节内容安排如 下: 第一章:简要介绍了相关的概念和背景知识,提出本文工作的研究意义和 主要研究内容。 第二章:概述了w e b c a d 系统的总体框架和功能,介绍了d w g 文件结构, 并总结了w e b c a d 二维功能方面的缺陷。 第三章:针对d w g 文件中部分图形不能被f 确读取的问题进行了分析,找 出其错误原因并加以更f 。 第四章:具体研究了一些二维辅助功能。 第五章:总结了全文的工作,并对后续的研究工作提出了建议和展望。 4 第2 章w e b c a d 系统分析 第2 章w e b c a d 系统分析 本章首先将对w e b c a d 系统作总体框架的介绍,分析其结构框架,并阐述 其主要功能,简要介绍一下用到的技术手段,最后指出系统在二维绘图方面的 不足之处。 2 1w e b c a d 系统结构 2 1 1w e b c a d 系统介绍 w e b c a d 是本实验室自主开发的一个捐j 有自主知识版权的、基于w e b 的 协同设计环境。它支持多用户、实时、跨平台的异地协同设计。该系统在j a v a 平台上开发,以c a d 图形为对象,具有实现异地实时作图的设计功能,设计结 果可以保存为d w g 文件,并可实现对部分c a d 图形文件d w g 的浏览及批注, 对图形实时的多用户讨论以及多用户的多级管理等。 图2 1w e b c a d 系统界面 5 第2 章w e b c a d 系统分析 目前已基本实现了对工程图形的建立、设计、浏览、修改等功能,通过网 页多用户可以进行实时协同设计,可以对d w g 文件浏览、批注。图1 为该系 统界面:界面上边是菜单栏、工具栏,拥有一些基本的软件功能,而工具栏也 给出了文件操作、视图变换、绘图以及标注等功能,方便用户操作;界面左侧 为协同部分,用来多用户协同管理、实时讨论;界面右侧为客户绘图区,所绘 制的图像在其他客户端也可以显示、修改。 2 1 2 体系结构 w e b c a d 系统是基于分布式技术,通过i n t e m e t 来进行浏览和操作。目前 分布式系统比较流行的结构有两种:c l i e n t s e r v e r 两层结构、b r o w s e r s e r v e r d a t a 三层体系结构。两层模式的c l i e n t s e r v e r 结构中,客户端负责事务处理和显示, 服务器端负责数据处理和数据库存放,从而使客户端的任务相对比较繁重,不 利于网络协同。而在b r o w s e r s e r v e r d a t a 三层体系结构下,表示层( p r e s e n t a t i o n ) 、 业务层( b u s i n e s sl o g i c ) 和数据层( d a t as e r v i c e ) 相对独立。表示层用来实现与 用户的交互,向服务器发送或从服务器接收消息,并负责显示;业务层负责进 行具体运算,接收用户请求进行消息的传递及数据处理;数据层则是接收服务 器对数据库操作的要求,对数据库中的数据进行查询、修改、更新等。 三层b r o w s e r s e r v e r d a t a 体系结构是传统的两层c l i e n t s e r v e r 体系结构的 改进,它把两层c l i e n t s e r v e r 结构中的的事务处理逻辑模块从客户机的任务中 分离了出来,可维护性、可扩展性及可重用性得到了提高。因此系统应用j a v a 、 r m i ( r e m o t em e t h o di n v o c a t i o n ) 和e j b ( e n t e r p r i s ej a v ab e a n s ) 等技术,建 立b r o w s e r s e r v e r d a t a 三层体系结构,可以实现多用户实时交互,进行异地协 同设计c a d 图形,模块结构如下图所示: 6 第2 章w e b c a d 系统分析 图2 2w e b c a d 系统模块结构 2 2d w g 文件结构分析 随着i n t e m e t 的发展,人们在网上交流信息变得越来越频繁,现代的设计活 动中也出现了基于网络的协同设计。在众多的c a d 软件中,a u t o d e s k 公司开 发的a u t o c a d 以其易于使用、功能完善等特点,受到了设计人员的普遍欢迎, 由此a u t o c a d 的d w g 和d x f 文件格式成为了二维工程图事实上的一种标准。 d x f 文件格式已经公开,并且是文本格式,读取相对比较简单。目前本课题组 也在研究它的格式,并基本上可以读取全部数据。但是仅仅知道d x f 格式是不 够的,因为:1 很多图形文件都是保存为d w g 格式;2 d x f 文件格式体积一 般比较大,需要占用大量空间,会影响网上传输速度;3 d x f 是文本格式,安 全保密性较差;4 d w g 格式转换到d x f 离不开特定的软件,而且数据不丢失 这一点无法保证。所以在网上浏览d w g 图形,已经成为一种迫切的需求。但 是d w g 图形文件是采用压缩的二进制形式,格式比较复杂,而且a u t o d e s k 公 司并不对外公布d w g 图形文件的格式,这就使得在网上发布和浏览d w g 文 件变得非常困难。为了实现基于w e b 的协同设计,我们就需要对d w g 文件的 格式进行研究和学习。 7 第2 章w e b c a d 系统分析 2 2 1 数据对象 a u t o c a d 数据主要由对象组成。对象保存在d w g 图形文件中,又可分为 图形对象和非图形对象。图形对象又称为实体,代表所组成图形的可见对象, 包括圆弧,圆,椭圆,直线等,用户可以在屏幕上看见并且能够对实体进行操 作;非图形对象是图形中的不可见对象,如图层,线型和标注样式等。图3 所 示为d w g 文件数据库结构。 其中,表是为了方便索引而引入的一种数据结构。a u t o c a d 数据库中共有 9 种符号表,除了块表( b l o c k t a b l e ) 和层表( l a y e r t a b l e ) 外,还有线型表 ( l i n e t y p e t a b l e ) 、视1 3 表( v p o r t t a b l e ) 、尺寸标注表( d i m s t y l e t a b l e ) 、文字 样式表( s t y l e t a b l e ) 、用户坐标系表( u c s t a b l e ) 、视图表( v i e w t a b l e ) 、应用 程序注册表( a p p i d t a b l e ) 。 2 2 2 数据结构 d 粥文 擎数据摩 i毒j毒 l 羼表l 块表 其他符号对象字寅 i1 lljj i 层表记录i 块表记录 符号表记录 对馥i l 毒 l 夹体 l 图2 3d w g 文件数据库结构 d w g 采用压缩的二进制格式,所以它定义了许多自己的数据类型,有的 甚至很复杂,所以对d w g 文件的读写都显得非常困难。但是这些数据结构对 数据的压缩和减少文件的大小是非常有用的。例如数据类型b 表示一个位,o 或1 :数据r c ( r a ws h o r t ) ,表示未压缩的字符,一个字节等等 1 3 】。 2 2 3 文件结构 a u t o c a d 已经发布了多个正式版本,相对应的d w g 文件格式也在不断 8 第2 章w e b c a d 系统分析 的变化,w e b c a d 系统起步阶段,d w g 才更新到r 2 0 0 0 版本,至今为止,又 相继出现了r 2 0 0 4 、r 2 0 0 7 和r 2 0 1 0 版本。为了继承早先的基础工作,本文以 r 2 0 0 0 版d w g 文件作为基准。 d w g 文件从结构上可主要分为文件头、图像数据、头部变量、类定义、 填充、实体对象、对象映射表等几部分。这几部分表达了d w g 文件中实体的 复杂逻辑关系,组成了一个有机整体。我们读取d w g 文件是要提取实体相关信 息,所以文件中的一些部分并不需要考虑,这是与保存d w g 文件不同的地方。 我们需要读取的部分有:文件头、头部变量、实体映射表以及实体部分。具体 来说: 文件头:通过读取文件头,可以得到当前d w g 文件的版本,以及一些数 据部分的位置和大小,最主要的是下面的头部变量和实体映射表的位置和大小。 头部变量:由文件头可以得知头部变量的位置,然后把一些重要的信息读 取出来,比如背景颜色、线宽、下一个可用的句柄( 即当前实体已经用的句柄 有多大了) 、字体样式和尺寸样式等。 实体映射表:同样从文件头可以得知实体映射表的位置。实体映射表对实 体的定位意义重大,表旱每一个单元就是一个( 地址句柄) 对,每一对数据明 确地指示了一个实体对象,这是因为在d w g 文件中,当知道一个实体在文件 中的地址和这个实体的句柄时,这个实体就能被唯一地确定了。 实体部分:根据读取实体映射表得到的结果,依次把实体读取出来; 2 2 4d w g 实体结构 实体数据是d w g 文件中比较重要的数据,它的结构也是其中最为复杂的。 d w g 文件中实体的种类大概有八十多种,其中七十多种为普通实体,扩展实 体( e e d ,e x t e n d e de n t i t yd a t a ) 有十多种。扩展实体的格式相对不固定,而普 通实体的格式基本上是固定的,它包括如下几部分: 令公共的实体数据( c o m m o ne n t i t yd a t a ) 夺实体的数据( 因不同的实体而异) 夺公共的实体句柄数据( c o m m o ne n t i t yh a n d l ed a t a ) 夺c r c 具体地,公共的实体数据包括:普通实体的实体代码( e n t i t yc o d e ) ,这个 代码指明了这个实体是什么类型,是直线还是圆弧等等;实体句柄;实体数据 大小;线宽、颜色等等。公共实体句柄数据则包括实体所在层的句柄,上一个 实体的句柄和下一个实体的句柄等。实体的数据,因实体的属性不同而复杂程 度不一。一般地,普通实体如线、点、圆等结构相对简单,而扩展实体如填充 9 第2 章w e b c a d 系统分析 ( h a t c h ) 、块( b l o c k ) 等则比较复杂。 例如普通实体圆的数据: c o m m o ne n t i t yd a t a c e n t e r圆心 r a d i u s 半径 t h i c k n e s s 线的厚度 e x t r u s i o n 拉伸 c o m m o ne n t i t yh a n d l ed a t a c r c 由上面的数据可知,圆的具体的数据主要有圆心、半径等几个简单的属性。 而对于扩展实体,如填充( h a t c h ) ,它可能包括很多个实体,例如很多线段, 而每一条线段数据又有不同,因而相对比较复杂。 2 2 5 d w g 文件读写方法【9 】 在传统的c a d 软件开发中,大都会选用高级语言作为主要的开发平台,如 v c + + 、v bs c r i p t 、j a v a 等,其中关键之处有两点,一是图形支撑系统,二是图 形数据的传递与交换。一般是与a u t o c a d 进行图形数据交换,这样就可以在充 分利用a u t o c a d 已有的强大的图形管理功能的同时,又能对图形数据进行独立 地组织。因此在专业的c a d 软件中,如何对d w g 文件格式进行可靠的读写操 作便成为比较重要的问题。 大体上有以下几种读写d w g 图形文件的方法: ( 1 ) 借助于a u t o d e s k 公司提供的o b j e c t a r x a d s 、a u t ol i s p 或v b a , 可以在a u t o c a d 软件的内部读取和写入d w g 文件。这种方法优点极为明显, 因为在同一软件内,不会出现数据丢失的现象,但是开发复杂,维护比较困难, 不易于程序调试。 ( 2 ) 通过a u t o c a d 的o l e a c t i v e x 接口来自动化实现。相对于前一种方 法来说,这种方法降低了门槛,只需熟悉v c + + 编程的基本知识,了解d w g 文件基本结构,就能很快进行开发工作。但缺点是运行速度慢,且运行时必须 要安装有a u t o c a d 的相应产品。 ( 3 ) 利用第三方应用程序接口( a p i ) 软件( 如l i b d w g 和o p e n d w g 等) , 这些软件可以读写d w g 文件,功能很强、性能可靠,但是在短期内很难熟练 使用,且费用不菲。 ( 4 ) 直接读写二进制加密格式的d w g 文件。w e b c a d 系统就采用这种 方法,优点就是拥有自主版权,掌握核心技术,可以方便地使用开发。缺点是 1 0 第2 章w e b c a d 系统分析 d w g 文件格式复杂,读写有一定的难度。 2 3 系统功能及待完善处 正如绪论中所提,系统在与a u t o c a d 数据交互及二维绘图中还存在一定的 不足之处,具体一一论述如下。 2 3 1 缺少或不完善处 w e b c a d 系统经过十数年的不断累积,已基本拥有了一个c a d 系统所应 有的功能。但由于时间跨度较大,且每届同学所做侧重点不同,编程习惯又不 统一,因此w e b c a d 系统留下了一些功能及结构上的一些缺陷,下面详细分析。 功能缺少:基本的绘图功能都已具备,基本的点、线、圆弧都可绘制,复 杂图形也都是由这几种简单图形组合而成。相比较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 交互方面,导入d w g 文件时,其内的椭圆弧、文 字、填充、标注、线型等均出现错误,导出d w g 文件时,如有样条曲线、多段 线、标注、填充等,也不能正确保存。 2 3 2 拟修改处 根据以上提出的问题,这里主要研究其中两点: 1 研究导入d w g 文件时部分实体不能f 确读入的问题,这些实体包括椭 圆弧、文字、填充、标注以及线型等。主要分析这些实体在d w g 文件中的 结构以及w e b c a d 读取d w g 文件实体数据的方法,找出错误原因并加以 修正。 2 对二维绘图功能作一个补充,增加直接标注表面粗糙度符号和绘制正多 边形的功能,并能在绘图时控制显示或隐藏线宽。 第2 章w e b c a d 系统分析 第3 章与a u t o c a d 的交互 第3 章与a u t o c a d 的交互 此章主要研究w e b c a d 读取d w g 文件中的数据。在实验室之前的研究工 作中,已经做到对部分图形进行i f 确读取,诸如直线段、圆( 弧) 、椭圆、多段 线和矩形,另外一些图形如椭圆弧、标注、样条、填充及文字等还有待改善, 下面将分类详细阐述。 3 1 简单实体 本文所谓的简单实体,就是说直接由单个直线段、圆弧段或文字段表示的 实体,例如系统中已经解决的直线、圆( 弧) 、椭圆等,它们结构比较单一,读 取也相对容易。下面详细说明一下读取椭圆弧和文字时的错误之处及解决方法 3 1 1 椭圆弧 3 1 1 1 错误表现及原因 在读取d w g 文件里的椭圆弧时,显示到w e b c a d 中为一个整椭圆,如下 图所示: 图3 1a u t o c a d 中的椭圆( 弧) 读入到w e b c a d 中 可知w e b c a d 确实是找到了该椭圆弧在d w g 文件中位置并加以读取,只 是把不封闭的弧读成封闭弧,由上图可见,椭圆弧的整体位置及大小还是正确 的。 进一步分析其原因在于,椭圆弧在a u t o c a d 和w e b c a d 中的参数表达有 1 3 第3 章与a u t o c a d 的交互 些不同。a u t o c a d 将其与椭圆都归于e l l i p s e 一类,表达参数为:中心点、长半 轴方向向量、短长半轴之比、起始角度和终止角度。若起始终止角度相差2 ( 或零) ,则为椭圆,否则为椭圆弧。椭圆可看做是椭圆弧的特例( 弧封闭) 。 而在w e b c a d 中,当初设计系统时,为了更好地区分和利用不同的图形, 分别设立了两种对象o v a l 和o v a l a r c ,分别来表示椭圆和椭圆弧,其参数略有 不同。o v a l 对象参数为:中心点、长轴长、短轴长和起始点。o v a l a r c 对象在 o v a l 对象的基础上增加了起始、终止角度和弧终点三个参数。在原来的w e b c a d 系统中,将e l l i p s e 类认为只是表示一个完整的椭圆,读到w e b c a d 中全部转 换为o v a l 类,即参数起始角度和终止角度“丢了 ,所以无论椭圆弧是否封闭, 读出来都是一个封闭的椭圆。其示意图如下: o 命, y 。 挚建 、丝竺、二 之竺兰竺i 图3 2 椭圆在a u t o c a d 与w e b c a d 么i 司的参数转换 3 1 1 2 解决方法 在根据实体映射表读取d w g 文件中的实体时,如发现实体代码为0 x 2 3 ,表 明这是一个e l l i p s e 对象,按照其结构读取其全部内容后,将其中读到的起始、 终止角度值提出来做个比较,若相差在区间 0 ,27 r 】,则说明读到的是椭圆弧, 将其转换为w e b c a d 中的o v a l a r c 类。其流程如下: 1 4 第3 章与a u t o c a d 的交且 图3 3 读取椭圆弧流程 程序中分别实例化椭圆o v a l 类和椭圆弧o v a l a r c 类对象,以起始、结尾角 度差值来决定用哪个实例对象。在新增加的程序中,还需要注意椭圆弧的方向。 在a u t o c a d 中绘制椭圆弧时,一种方式是直接在界面上用鼠标拾取开始和结束 位置,一种是键盘输入起始、终止角度,前一种方法简单明了,后一种方法示 意图如下: o :吣9 。0 图3 4a u t o c a d 中以始末角度值绘制椭圆弧 由图可知:在a u t o c a d 中以下列方式( 中心点:1 ,长短半轴:2 和3 ,起 始和终止角度:0 。和1 8 0 。) 绘制椭圆弧时,起点由以下方式确定: 1 如果第一个轴( 即2 ) 为短轴,则顺时针找到的第一个长轴顶点为起点。 2 如果第一个轴( 即2 ) 为长轴,则此长轴的另一个端点为起点。 综上所述,修正后w e b c a d 读取椭圆( 弧) 的显示效果如下: 1 5 ) 、。o 第3 章与a u t o c a d 的交互 3 1 2 文字 图3 5 修正后的w e b c a d 读取椭圆( 弧) 3 1 2 1 错误表现及原因 a u t o c a d 的文字有两种形式:单行文字t e x t 和多行文字m t e x t 。对于不需 要多种字体或多行的内容,可以创建单行文字。单行文字对于标签非常方便。 对于较长、较为复杂的内容,可以创建多行或段落文字。多行文字是由任意数 目的文字行或段落组成的,布满指定的宽度,还可以沿垂直方向无限延伸。 而在w e b c a d 中,只定义了一种文字类:w b t e x t 。无论是单行还是多行 文字,读取后都转换为w b

温馨提示

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

评论

0/150

提交评论