冲裁力与压力中心计算机辅助设计_第1页
冲裁力与压力中心计算机辅助设计_第2页
冲裁力与压力中心计算机辅助设计_第3页
冲裁力与压力中心计算机辅助设计_第4页
冲裁力与压力中心计算机辅助设计_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

1、冲裁力与压力中心计算机辅助设计摘要:计算机辅助设计(cad)技术起步于上世纪50年代后期,经过半个多世纪的发 展,冃前国内外已研发出许多通用的cad软件。冲裁模的压力屮心计算是否准确对于 模具结构设计非常重要。随着计算机辅助设计技术(cad)的进步,使用计算机自动 计算冲裁件冲裁力和压力屮心,已经口益成为冲压模具设计的必然趋势。在本文屮, 研究了基于vb环境下的压力屮心cad系统的开发,对其方法、过程及手段,进行系 统的、全面的研究和阐述,对系统的正常运行提供了指导,不仅可以提高设计效率和 设计质量,并能进一步开发cam系统,满足市场的需求,适应时代的发展。本文完成的主要任务有:1 阐述了 c

2、ad技术的基本理论,包括其概念、原则等。2. 介绍了压力屮心cad系统的设计理念、原理、过程和一些关键技术,并进行分 析;3. 利用autocad辅助法,完成压力屮心cad系统设计。关键词:cad,压力屮心,设计,系统blanking force and center of pressure computer aided designabstract: computer aided design (cad) technology started in the late 1950 s, after more than half a century of development, many gen

3、eral cad software have been developed at home and abroad, whether the precision of center of pressure calculation of blanking die is very important to the design of die structure. as cad technology progresses, using the computer to automatically calculate blanking part blanking force and center of p

4、ressure has increasingly become an inevitable trend of stamping die design. this paper was focused on the research of the center of pressure of cad system based on vb environment, with the aim to provide guidance for the normal operation of the system. a systemic overview on the method and process a

5、nd method was carried out.lt is not only improving the design efficiency and quality, but also further development of cam system, which meet the demand of the market and consistent with the development of modern technology.main tasks of this paper are:1. this paper expounds the basic theory of cad t

6、echnology, including its concept, principle, etc;2. this paper introduces the pressure center of cad system design idea, principle, process and some key technologies, and analyzed;3. the design of the pressure center cad system is completed by autocad assistant method.key words: cad, center of press

7、ure, design, system1绪论11.1计算机辅助设计技术概述11.1.1计算机辅助设计技术概念11.1.2计算机辅助设计技术的发展概况11.1.3计算机辅助设计技术发展趋势21.2论文概述21.2. 1选题目的及意义31.2.2论文主要工作32压力中心cad系统的总体设计42. 1可行性分析42.1.1技术可行性42. 1.2经济可行性42. 1.3操作可行性42. 1.4法律可行性42. 2需求规范52. 2. 1 概述52. 2. 2功能需求52. 3系统的开发方法52. 4系统的开发模型62. 5支撑软件的选择72. 6系统的程序框图73冲裁件图形输入103. 1冲裁件图形

8、的几何模型113. 2冲裁件图形的编辑113. 3 dxf 文件123. 3. 1 dxf文件的生成与导入123. 3. 2 dxf文件的结构123. 4程序接口技术13in3.5界面图形174压力中心、冲裁力与压力机的选用224.1压力中心计算原理224. 1. 1多线段的压力中心224. 1.2多圆弧压力中心234. 1.3多圆的压力中心234. 2冲裁力与顶件力254. 3压力机的选用274. 3. 1压力机数据库的建立274. 3.2压力机的选用285系统实现295. 1命名规则295.1.1基木数据类型295. 1.2常量命名305. 1.3其它部分命名规则305. 2界面设计305

9、. 2. 1界面的功能描述305. 2. 2 界面306系统测试326. 1程序测试基础理论326. 1. 1程序测试定义326. 1.2程序测试基木概念326. 2软件测试方法分类336. 2. 1静态测试与动态测试336. 2.2黑盒白盒与白盒测试336. 3压力中心cad系统测试346.4调试346. 5测试扌艮告347结论35参考文献36致谢38附录程序全文391绪论1.1计算机辅助设计技术概述1.1.1计算机辅助设计技术概念计算机辅助设计技术(cad),即利用计算机软、硬件系统辅助工程技术人员或工 程进行设计、分析、修改以及以交互式显示或输出的一种方法(手段),是一门多学科 的综合应

10、用技术。cad技术是一种综合性的,复杂的系统工程,该技术经历了由简单的二维、三维制 图到几何建模、工程分析、仿真实验等众多产品的设计发展历程,应用于众多科学领 域。1.1. 2计算机辅助设计技术的发展概况1950年,第一台图形显示器在美国麻省理工学院诞牛。到20世纪50年代末期, mit的林肯实验室在旋风计算机上开发出了 sage空中防御系统,第一次使用了具有指 挥和控制功能的crt显示器,操作者可以用笔在屏幕上指出被确定的目标,它预示着 交互计算机图形学的产牛。到60年代,cad技术开始迅速发展,实现了二维、三维 图形的绘制,cad系统逐渐被众多企业接受,逐渐形成cad产业。70年代研制出了

11、许 多关于模具cad/cam方面的专门系统,适用于各种类型的模具设计与制造,并取得了 显著效果。20世纪80年代,随着工程站及微型计算机的出现,利用计算机进行图形 处理已开始被越来越多的人接受,推动了 cad技术产业的普及。80年代中期,美国的 cv公司提出了一种比无约束自由造型更新颖、更好的算法一参数化实体造型方法,该 方法主要有以下特点:基于特征、全尺寸约朿、全数据相关、尺寸驱动设计修改。但 是,由于投资大、开发难度大,cv公司拒绝了参数化技术方案,基于策化参数化技术 的人因此建立了一个参数技术(parametric technology corp. ptc),开始硏制 pro/engin

12、eer的参数化软件。20世纪90年代以后,国外的cad/ cam技术向更高的 方向发展,许多cad/cam系统实现了商品化,如ugii、solidworks等系统在模具行业 得到应用。它们的成功应用为cad的发展提供了更大的空间与可能。我国cad技术的开始于上世纪60年代,当时主要利用计算机进行几何设计和辅 助绘图,主要研究单位是高校。“七五”期间,我国开始引进cad/ cae/ cam系统, 开始应用于各个制造业领域,推动中国产业的发展。与此同时,有多个单位相继完成 率冲裁模cad/cam系统、多工位级进模cad系统等。20世纪90年代以来,cad技术 不断进行完善,广泛应用了特征和约束的变

13、量化和参数化方法,使得制图更加精确, 另外,由过去的单机或局域网向互联网工作方式发展,概念设计成为了今后研究的热 点。“十五”期间,我国在模具制造信息化方面取得了一些成就,例如,开发了模具 制造系统与装备,并实现了与其他相关技术与装备的系统集成;开发了注塑成型过程 计算机模拟仿真软件,实现了与cad/cam系统的无缝衔接及其他众多成就,并在多家 模具企业和高校中得到推广。二次开发是增值开发商或最终用户在软件开发商所提供的开发环境与编程接口 基础上,根据自身的技术需求,进行新功能开发或软件环境定制的过程,从木质上讲, 二次开发也是一个软件创新过程。由于经二次开发后的cad应用软件具有良好的人 机

14、界面,并融进了大量专业设计人员的经验,使一般的设计人员能够使用计算机进行 产品设计,从而提高了设计效率和质量。用autocad求冲裁力与压力中心的方法, 用autocad的查询功能,查出全部实体体积的同时,也顺带也顺带查出了他们的整体 的质心位置,当§取值足够小时,这些实体的质心位置的(x, y)坐标值可以认为等 于模具的压力中心位置,并且不会有太大的误差。solid edge软件计算压力中心法7 ,基于autocad2000的冲模压力中心确定方法,轮廓环重心求解法等许多方法。1. 1. 3计算机辅助设计技术发展趋势随着cad技术不断的硏究、开发和应用,对cad技术有了越来越高,越来

15、越多的 新要求,以满足市场的需求,适应时代的发展。随着经济与社会的快速发展,cad技 术发展的主要趋势是集成化、智能化、并行化、网络化和标准化,先进设计技术和制 造方法得到不断应用的推广。我国的制造业也日益注重对cad技术的应用,不断完善 cad技术,并不断提升其应用范围。1. 2论文概述1.2.1选题目的及意义随着工业牛产和科学技术的发展,市场需求的增加,产品更新换代的速度加快加 快,产品的牛产正朝着精密、复杂、高质量和牛产周期缩短的方向发展。依靠传统的 经验和手工计算已不能满足需求,因此,依靠计算机的模具辅助工具就应运而生。目 前,许多产品中的零部件依靠冲裁模去完成,冲裁模与零件压力中心是

16、否在重合,对 模具的精度和寿命有着很大程度上的影响,对零件的质量也有不同程度的影响。现在 提倡节约资源,使资源充分利用,响应时代的号召,在冲裁模压力机的选择上,根据 零件的最小冲裁力选择最适和压力机显得非常重要。利用计算机求出冲裁件的压力中 心及最小冲裁力,有利于降低模具设计者的计算量,缩短产品的研发周期,提高工作 效率,降低牛产成木,节约资源等。1. 2. 2论文主要工作(1) 木文主要工作 确定开发方案根据冲裁件综合特性,确定软件的开发方法,选择软件开发所需的软、硬件环 境。 确定软件的总结构对软件任务进行分析、分解,确定总体结构,进行合理的模块规划。 确定软件的功能所设计的压力中心cad

17、系统软件符合冲裁模的要求,其功能主要包括,二维图形 的输入与显示、压力中心、冲裁力与顶件力的计算。(2) 软件的关键技术 冲裁件图形数据的读取; 在visual basic环境下的程序设计; 界面图形的绘出,压力中心的计算。2压力中心cad系统的总体设计2. 1可行性分析可行性分析是对项目的主要内容和相关情况,从技术、经济、工程等方面进行研 究和分析,并在项目建成后,对项目产生的经济和社会影响进行分析,提出建设性的 意见,为项目建成提供基木的、全面的依据。cad系统技术可行性研究,从系统发展 规划出发,论述系统理论的可行性,同时论证在技术手段上的可实现性。由于cad系统开发是一项投资大、涉及面

18、广的工程复杂的系统工程,需要充分的 进行可行性研究,以确保投资的准确性,而且cad系统是一项辅助性质的工程,必须 站在系统的角度论证它的可行性才有说服力,才有意义。可行性分析可从以下四个方 面来考虑。2. 1.1技术可行性该压力中心cad系统,它采用了 visual basic与autocad相结合。而如今使用 visual basic编写程序也没原来那么麻烦,界面的设计也不需要很复杂,我们可以从 visual basic中找到符合自己要求的工具,来进行自己的设计。所以,该系统的开发 在技术上是可行的。2. 1. 2经济可行性从我搜集的一些资料来看,压力中心cad系统对计算机硬件要求不高,而这

19、是我 们自行开发的系统,成木可很低,还有后期维护的费用也相对比较低廉。2. 1. 3操作可行性该系统在操作上满足用户的基木要求,操作界面通俗易懂,即使非专业人士,也 能成功使用该系统。2. 1. 4法律可行性木系统开发不会侵犯他人、集体或国家利益,不存在危害他人、集体或国家的行 为,不存在侵权等问题,不违反国家法律,因此具有法律可行性。综上所述,从技术、经济、操作、法律等层次方面都是可行的,而h对开发人员 要求不高,所以这个系统的开发是可行的。2. 2需求规范2. 2. 1概述为了保证冲压机各模具正常工作,必须使冲模的压力中心与冲压机滑块中心线相 符合,否则在冲压时会使冲模与冲模机滑块歪斜,引

20、起凹凸模间隙不均和导向零件加 速磨损,造成刃口和其他零件的磨损何。压力中心cad系统就是确保模具在设计时, 其压力中心在一条直线上。压力中心cad系统包括冲裁件图形的输入、冲裁边力偶的计算、压力中心的计算、 最小冲裁力的计算等功能,能够完成单工序冲裁模、级进冲裁模和复合冲裁模等压力 中心的计算机辅助设计。木章主要以所开发的基于vb环境下的压力中心cad系统为 例,详细介绍系统的功能和结构。2. 2. 2功能需求木系统的功能是帮助用户更加快捷的计算冲裁件的压力中心及冲裁力,达到简化 计算的目的。23系统的开发方法现代cad系统的开发严格按照“软件工程学”的方法进行研究和设计。工程化软 件的具体要

21、求是:(1) 正确性:实现软件的全部功能,并保证正确;(2) 可靠性:软件可多次反复使用且不失败,出错概率小于设定的指标;(3) 简明性:表达简洁、可读性强,程序内部、外部层次分明,接口简单;(4) 易维护:能方便地实现系统的校正维护、适应维护和完善维护;(5) 结构化设计方法:用大众熟悉的顺序、判断、循环三种基木逻辑分支实现每 个模块的程序编写;(6) 文档齐全、格式规范。根据软件工程学的方法,cad系统的生命周期可分为系统分析、系统设计、程序 设计、系统测试和系统维护五个阶段。前4个阶段为开发期,最后1个阶段为维护 期。(1) 系统分析:在进行需求分析的基础上,确定系统开发的目标、功能、性

22、能、 接口和适用范围,建立系统的总体逻辑模型。(2) 系统设计:结构化设计方法,明确软件系统构架,包括划分模块、模块之间 的通信等。(3) 程序设计:根据系统设计完善并完成系统设计规范、利用visual basic 6.0 语言实现系统的功能及优化。除此以外,程序的结构、算法及系统的安全性、可靠性、 实用性等也都需要认真思考。(4) 系统测试:分析系统,对系统和程序的设计做最后的审查,确保满足用户的 需求和软件的质量。对系统进行测试时,应按照一下的原则进行: 为保证系统测试质量,测试人员与开发人员分开。 设计测试试样时,要给出测试试样的预期结果,做到有的放矢。 要设计非法输入测试试样,保证程序

23、可以拒绝接受非法输入,并给出提示信 息,指引用户进行正确的操作。 对程序进行修改之后,要进行回归测试,减免由于修改程序而引起新错误。 在进行深入测试时,要重点测试容易出错的部分。(5) 系统维护:cad系统牛命周期的最后一个阶段。软件交给用户使用后,对软件 进行纠错与完善。此外,在软件的开发的每个阶段,均要编写详细的开发文档。2. 4系统的开发模型当前,模具cad系统的开发常见的模型有:快速原型法和牛命周期模型等。牛命周期模型是将软件工程学和系统工程的理论和方法引入cad系统的设计中 来,是计算机系统开发中最常见、最有效的方法之一。在整个cad系统的开发过程中, 将其划分为若干个阶段,提前设定

24、好每个阶段的任务,再按一定的标准去顺序完成。 但缺点是一个长的开发周期长,开发过程复杂,且随外部环境的变化影响系统的正常 运行。快速原型法(rapid prototyping)是近年来提出来的一种以计算机为基础的系统 开发方法,它首先根据用户需求构造一个功能简单的系统,然后对原型系统逐步求精, 不断扩充完善得到最终的软件系统阳。快速成型的优点是,它是以用户为中心,所以, 在系统的牛命周期的设计阶段起一个积极的作用,有效地减少系统开发的风险,特別 是在大型系统的开发,对项目分析不能一次完成,使用快速原型法效果更加显著。其 缺点是,快速原型法的选择缺乏一定的评判标准,与系统开发人员的经验及水平有很

25、 大关联,若是选取不当,则会浪费时间和精力,并对用户造成影响。木压力中心cad系统的开发模型是将二者结合起来,将已有的经验用作原型来知 道生命周期各阶段工作的完成,从而节约人力、物力、时间,提高了开发效率,加快 了开发进度。2. 5支撑软件的选择autocad软件是由美国欧特克有限公司(autodesk)出品的一款自动计算机辅助 设计软件,主要用于绘制二维制图和基木三维设计,使用者无需懂得编程,即可实现 自动制图,因此autocad在全球广泛使用,较常用于土木建筑,装饰装潢,工程制图, 电子工业,服装加工等领域。因此选用autocad软件。该软件用于压力中心cad系统设计,具有以下的优点:(1

26、) autocad提供了丰富的作图功能,操作方便;(2) 作图精度高;(3) 具有强大的图形编辑功能,可对现有的图形进行编辑;(4) 可方便的进行图形的输出,图形的保管,查看非常方便。2. 6系统的程序框图首先,用户启动压力中心cad系统,选择要打开的冲裁件的文件,系统会按照 设定好的程序对文件进行读取,对文件中的各线段、圆、圆弧进行识别,并临时保存, 直到把需要的数据全部读取完毕,然后进行绘图命令,在界面上的图片框中央进行冲裁件图形绘制,并适应图片框大小。然后点击界面上的计算压力中心按钮,则会自动 把冲裁件的压力中心坐标计算出来,并把压力中心点在图形上显示出来。在文木框中 输入材料的厚度和抗

27、剪切强度,点击计算,则会自动计算出所需冲裁力和顶件力,点 击查询压力机参数,可以查看己存储的压力机参数,根据计算出冲裁力,进行压力机 的初选。v图2.1流程图3冲裁件图形输入冲裁件的图形输入是根据零件的几何特征,按照一定的方法,把图形数据输入到 计算机中。冲裁件的图形输入是开发压力中心cad系统的基础。常见的冲裁件图形输入方式有下列几种:(1) 节点输入法冲裁件图形是二维平面图形,其组成元素的交点或切点,称为节点。输入图形的各元素的节点信息,以及其间的拓补关系,则可以在计算机中建立零 件二维图。冲裁件图形的拓补关系简单,只需将个元素之间按顺序首尾相连即可。因 此,此种输入法需要先手工计算出各元

28、素的参数及节点坐标,然后再按照一定的顺序 进行输入计算机,则可以在计算机上得到所需冲裁件图形信息。这种方法简单易操作,但前期准备周期长,数据较多时,易出错,而且难以及时 发现,还需要逐项检测个元素信息,降低了其精确度。(2) nc语言描述法nc是数字控制(numerical contro 1)的缩写,是根据几何定义语句去描述零件的 形状。其中apt (automatically programmed tool)语言接近英语语言,书写方式也与 英语相似,容易被人掌握,因此数控语言中使用最多的是apt语言,其应用最广、影 响最深远、最有代表性。冲裁件图形是简单的二维图形,只需用apt语言中的一小部

29、分即可对图形几何形 状的完成描述,所以一些cad/cam系统用的是经简化后的apt语言。这种方法操作直观方便,容易发现错误,但占用机上时间太多,需事先计算出全 部节点的绝对坐标,适用于有一定apt语言功底或英语具有一定基础的人员。(3) 数字化仪法数字化仪,是一种计算机输入装置,它可以将各种图形的坐标值,确切输入到计 算机中,并显示在计算机屏幕上。其工作原理是:游标在电磁感应板上运动时,通过 接口,将电磁感应板上的图形坐标信息数字化,同步传入计算机中,经过处理,在计 算机屏幕上显示出图形信息。当然,作为一种非主流汉字输入方式,其输入速度不够 快,准确率也低于键盘输入。(4) 逐段输入图形元素的

30、交互式输入法采用该方法输入图形时,整个过程始终由菜单驱动。图形输入系统包括三级子菜 单,其工作方式是:首先选择工作状态和背景颜色,然后通知系统所要进行处理的图 形是己存在的,还是新建立的。然后对要处理的图形选择所需的命令进行编辑,得到 所需要的图形信息。利用这种交互式输入法输入冲裁件图形时,首先建立坐标系,对图形的轮廓、元 素和尺寸进行编号,并按编号把尺寸数据一次存放在数据文件中。该方法可对图形进 行交互编辑、修改、插入和删除,具有输入直观、及时显示的优点问。(5) autocad 辅助法通过在一些比较成熟的绘图系统(如autocad. i-deas drafting等等)基础上 开发出功能齐

31、全、方便使用的冲裁件二维绘图环境,将有利于缩短压力中心cad系统 的开发周期。以上几种冲裁件图形输入方法在都存在优点,对于压力中心cad系统的推广应用 有着不同程度的影响,因此选取一种有效的图形输入方法显得尤为重要。压力中心cad 系统使用autocad辅助法,是以autocad软件为图形编辑器,生成dxf文件,再读取 文件,经过系统处理,得到所需的图形信息,从而实现图形的自动输入。选用autocad作为冲裁件图形输入的支撑环境的优点有: 绘图功能好,可画点、线、圆、圆弧等,还拥有目标捕捉功能; 图形编辑功能好,可复制、旋转、镜像、块插入等; 具有标准图形文件交换的接口。3. 1冲裁件图形的几

32、何模型几何模型是根据冲裁件的几何信息及其拓补关系,即对线段、圆、圆弧之间的相 互关系的定义,完成对冲裁件的形状描述。几何信息是指图形形状特征参数,包括线 段端点,圆的中心和半径和圆弧的中心,半径,起始角度和终止角度。拓补关系是指 个元素之间的联系,按照一定的方向进行首尾相接。32冲裁件图形的编辑冲裁件图形的编辑是依靠autocad软件进行。在软件的绘图界面中选取所需的命 令,按照一定的尺寸及约束,把冲裁件图形在屏幕上进行绘制及编辑。3. 3 dxf文件dxf-drawing exchange file (图画交换文件),是美国欧特克公司开发的第一 个进行autocad图形交换的文件格式,主要适

33、用于外部程序和不同图形系统之间的信 息交换。由于autocad t泛应用于世界二维领域及其世界影响力,因此,大多数cad 系统支持dxf文件格式,经常以dxf文件作为中介,完成与autocad图形软件或其他 系统的图形信息的交换。因此,dxf文件格式己成为事实上的工业标准。3. 3. 1 dxf文件的生成与导入在autocad图形编辑状态下,点击另存为或输入dxf0ut命令并按之后的提示进 行操作,就可以把绘制好的图形牛成一个dxf文件。同样,通过打开或dxfin命令, 可以将其他系统或外部程序牛成dxf文件导入进系统。3. 3.2 dxf文件的结构一个dxf文件包含它相应图形的全部信息,其总

34、结构由7个段和文件结尾组成, 分别为:(1) 标题段(header)记录图形系统的一般信息,由标题变量及当前状态或当前值表示。(2) 类段(classes)记录应用程序定义的类,这些类的实例可能击现在blocks. entities和objects 中。(3) 表段(tables)包含9个符号表的定义:应用程序标识表、块参照表、标注样式表、图层表、线 型表、文字样式表、用户坐标系表、视图表、视口配置表冋。这些表记录了图形编辑 的支撑环境。(4) 块段(blocks)块段顺序的记录了每个块的定义,每个快均由块名、类型、基点和该块的全体成 员定义,有关块的定义与实体段相同。(5) 实体段(enti

35、ties)记录每一个实体的所有信息,包括每一个实体的类型、图层名,颜色,尺寸和等 信息,是记录零件信息的主要部分。(6) 对象段(objects)包括图形数据库的所有非图形实体的数据,所有既不是实体的,也不是符号表的 记录或实例都在该段表述。(7) 预览段(thumbnailimage)以位图形式描述了牛成该dxf文件时显示在屏幕上的画面,其大小是导入dxf文 件时对话框上“预览”图像的大小。(8) 文件结尾以“0”和“eof”两行结尾,作为整个dxf文件结束的标志,其中, 表示空格。组(group)是构成dxf文件的最小单元,一个dxf文件有若于组,每组在该文 件中占两行,首行称为组码,是一

36、个非零的正整数;第二行称为组值。组码说明组值 的数据类型,数据的具体值就是组值,两行组合起来才是完成的数据。冲裁件图形信息,包含在dxf文件中的实体段,因此,只需对dxf的实体段的数 组信息进行采集。在dxf文件中,存储实体的命令与基木绘图命令相同,而且编辑命 令 trim、break> chamfer. fillet 等生成的图形,也为 line、circlr 和 arc 等命令 保存,这就为dxf文件的读取提供了很大便利,降低了程序语言的编写难度。34程序接口技术接口技术采用vb6. 0 (visual basic6.0)编写,其主要是从autocad绘制并生成 的冲裁件图形的dxf

37、文件中提取压力中心cad系统所需要的信息。该程序主要是利用vb6. 0语言中的line input语句逐组读取dxf中的组码和组 值,然后利用if语句找到实体段中图形编辑命令字符串(如line. circle. arc等), 再利用case语句分类读取实体段的具体数据,并分別进行存储,方便工程后续的调 用。以下为读取dxf文件源码:dim linep(l to 100) as linetype,线段存储编号,最大值为 100dim arcp(l to 100) as arctype'圆弧段存储编号,最大值为100dim circlep(l to 100) as circletype,圆

38、类存储编号,最大值为 100const pi 二 3.141592653public i, m, n as integer 'i for line, m for circle,n for arc'两行为一组对文件进行读取function readcodes() as variantdim codestr, valstr as stringline input #1, codestrline input #1, valstrreadcodes 二 array(trim(codestr), valstr)end functionfunction readdxf(byvai dxff

39、ile as string)dim codesopen dxffile for input as #1codes 二 readcodes()xmin 二 99999xmax 二-99999ymin = 99999ymax 二-99999i 二 0: m 二 0: n 二 0wh订e codes (1) <> eofcodes 二 readcodes()if codes(1) = "acdbline" or codes(1) = "line" then'判别是否为 线段wh订e codes (0) <> 31codes 二

40、readcodes()select case codes (0)case 10读取线段起点x值i 二 i + 1:linep(i). xstart 二 vai(codes(1)call setlimit(linep(i). xstart, linep(i) xstart, ymin,ymax)case 20读取线段起点y值linep(i). ystart = vai(codes(1)call setlimit(xmin, xmax,linep(i). ystart,linep(i). ystart)case 11读取线段终点x值linep(i).xend 二 vai(codes(1)call

41、setlimit(linep(i). xend, linep(i). xend, ymin, ymax)case 21读取线段终点y值linep(i).yend 二 vai(codes(1)call setlimit(xmin, xmax, linep(i). yend, linep(i). yend)end selectwendelself codes(1) = "acdbcircle" or codes(1) = "circle" then'判别 是否为圆wh订e codes (0) <> 40codes 二 readcodes(

42、)select case codes (0)case 10读取圆心x坐标m 二 m + 1:circlep(m). xcenter 二 vai(codes(1)call setlimit(circlep(m). xcenter, arcp(m). xcenter, ymin, ymax)case 20读取圆心y坐标circlep(m). ycenter 二 vai(codes(1)call setlimit(xmin, xmax, circlep(m) ycenter, circlep(m). ycenter)case 40'读取圆半径circlep(m). radius 二 vai(

43、codes(1)call setlimit(circlep(m). xcenter - circlep(m) radius, circlep(m). xcenter + circlep(m) radius, circlep(m) ycenter - circlep(m). radius, circlep(m). ycenter + circlep(m). radius)end selectwendelself codes(1) = "acdbarc" or codes(1) = arc then'判别是否为 圆弧dim countflag as integerdim

44、 tmpxcenter, tmpycenter, tmpradius, tmparcstart, tmparcend as doublecountflag 二 0while countflag < 5 codes 二 readcodes()select case codes (0)case 10'读取圆弧圆心x坐标countflag 二 countflag + 1 tmpxcenter 二 vai(codes(1) n 二 n + 1arcp(n). xcenter 二 tmpxcenterarcp(n). color = rgb (0, 0, 0)call setlimit(a

45、rcp(n). xcenter, arcp(n) xcenter, ymin, ymax)case 20'读取圆弧圆心y坐标countflag 二 countflag + 1 tmpycenter 二 vai(codes(1) arcp(n). ycenter 二 tmpycentercall setlimit (xmin, xmax, arcp (n) ycenter, arcp(n). ycenter)case 40'读取圆弧半径countflag 二 countflag + 1tmpradius 二 vai(codes(1) arcp(n). rcenter 二 tmpr

46、adiuscall setlimit(arcp(n). xcenter - arcp(n) rcenter, arcp (n). xcenter + arcp (n)reenter, arcp (n). ycenter - arcp (n) rcenter, arcp(n). ycenter + arcp(n). rcenter)case 50'读取圆弧起始点角度值countflag 二 countflag + 1arcp (n). startangle 二 vai(codes(1)case 51读取圆弧终点角度值countflag 二 countflag + 1arcp(n). en

47、dangle 二 vai(codes(1)end selectwendelself codes (1) = "polyline" or codes (1) = "acdbpolyline" then '如是多义线不用做end ifwendclose #1end function3.5界面图形界面图形是把冲裁件的零件图按一定比例进行缩放,使图形在界面中显示出来, 从而实现准确的判断打开文件是否正确。降低由于用户的疏忽而产生的不必要的劳 动。界面图形的实现,是将己保存的图形数据进行调用,在绘图编辑程序中进行图形 的绘制,再调整图形的在屏幕中的显示位置

48、及大小,更加直观的表现出图形的基木特 征。以下为绘图编辑源码:sub worldtoscreen(byvai fx as single, byvai fy as single, byref x as integer, byref y as integer)x 二(fx - mfwoldviewcenterx) / mfworldtoscreenx + miscrnviewcenterx y = miscrnviewcentery - (fy - mfwoldviewcentery) / mfworldtoscreeny end subprivate sub adjustscreen (byva

49、i minx as single, byvai miny as single, byvai maxx as single, byvai maxy as single)'这个过程你参考复印件,其作用是调整绘图屏幕的大小dim width as integerdim height as integermfwmaxx 二 maxxmfwminx 二 minxmfwmaxy 二 maxymfwminy 二 minym_fwo1dviewcenterx 二(maxx + minx) / 2m_fwo1dviewcentery 二(maxy + miny) / 2width 二 picturel.

50、 widthheight 二 picturel. heightmiscrnviewcenterx 二(width / 2)miscrnviewcentery 二(height / 2)mfworldtoscreenx 二 1.2 * (mfwmaxx - mfwminx) / width mfworldtoscreeny 二 1.2 * (mfwmaxy - mfwminy) / height if mfworldtoscreenx > mfworldtoscreeny thenif m fworldtoscreenx < 0. 02 thenm fworldtoscreenx 二

51、 0. 02elself m fworldtoscreenx < 0. 04 thenm fworldtoscreenx 二 0. 04elself m fworldtoscreenx < 0. 06 thenm fworldtoscreenx 二 0. 06elself m fworldtoscreenx < 0. 08 thenm fworldtoscreenx 二 0. 08elself m fworldtoscreenx < 0. 1 thenm fworldtoscreenx 二 0. 1end ifmfworldtoscreeny 二 mfworldtosc

52、reenxelseif m fworldtoscreeny < 0. 02 thenm fworldtoscreeny 二 0. 02elself m fworldtoscreeny < 0. 04 thenm fworldtoscreenx 二 0. 04elself m fworldtoscreeny < 0. 06 thenm fworldtoscreeny 二 0. 06elself m fworldtoscreeny < 0. 08 thenm fworldtoscreeny 二 0. 08elself m fworldtoscreeny < 0. 1

53、thenm fworldtoscreeny 二 0. 1end ifmfworldtoscreenx 二 mfworldtoscreenyend ifend sub'编辑线段绘图命令private sub lin ew(byval sx as sin gle, by vai sy as sin gle, by vai ex as sin gle,byvai ey as single)dim ixs as integerdim iys as integerdim ixe as integerdim iye as integercall worldtoscreen(sx, sy, ixs,

54、 iys)call worldtoscreen(ex, ey, ixe, iye)if ixs 二 ixe and iys 二 iye thenpicturel.line (ixs, iys)-(ixe, iye), vbredelse: picturel. line (ixs, iys)-(ixe, iye), vbwhiteend ifend sub'编辑圆及圆弧绘图命令private sub arc (byvai x as single, by vai y as single, byvai r as single, by vai startang as single, byvai

55、 endang as single, byvai flag as integer) dim ixc as integerdim iyc as integerdim ir as singledim tmp as singledim tmpx as singledim tmpy as singledim tmpix as integerdim tmpiy as integertmpx = x + r * cos(startang): tmpy = y + r * sin(startang)call worldtoscreen(tmpx, tmpy, tmpix, tmpiy):call world

56、toscreen(x, y, ixc, iyc)ir 二 sqr( (tmpix - ixc)八 2 + (tmpiy - iyc)八 2)'求在屏幕坐标系 下arc的半径if flag 二 true thenpicturel. circle (ixc, iyc), ir, vbwhite, startang * pi / 180, endang * pi / 180elsepicturel.circle (ixc, iyc), ir, vbwhiteend ifend sub'调用绘图命令,实现图形在图像框中的显示private sub 绘图()dim a as integerpicturel. cispicturel. drawwidth 二 3for a = 1 to ical 1 linew(linep(a). xs

温馨提示

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

评论

0/150

提交评论