模具CAD、CAM实训报告_第1页
模具CAD、CAM实训报告_第2页
模具CAD、CAM实训报告_第3页
模具CAD、CAM实训报告_第4页
模具CAD、CAM实训报告_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、目 录第1章绪论. 1 1.1Pro/E模具设计简介 1 1.2Pro/E数控加工简介. 2第2章 典型塑件模具设计. 52.1塑件表壳工艺性 . 52.2塑件表壳模具设计 6第3章 塑件凹模数控加工 . 17 3.1 表壳凹模数控加工 17第4章 总结 . 23模具CAD/CAM实训报告专 业:材料成型及控制工程班 级:材料成型0941姓 名:刘文帝学 号:10指导教师: 王东明机械工程学院2012年12月第一章 绪论一.Pro-E模具设计简介.Pro-E模具设计简介Pro/E第一个提出了 HYPERLINK /view/725815.htm t _blank 参数化设计的概念,并且采用了单

2、一数据库来解决特征的相关性问题。另外,它采用模块化方式,用户可以根据自身的需要进行选择,而不必安装所有模块。Pro/E的基于特征方式,能够将设计至生产全过程集成到一起,实现并行工程设计。它不但可以应用于工作站,而且也可以应用到单机上。 Pro/E采用了模块方式,可以分别进行草图绘制、零件制作、装配设计、钣金设计、加工处理等,保证用户可以按照自己的需要进行选择使用。 1. HYPERLINK /view/725815.htm t _blank 参数化设计 相对于产品而言,可以把它看成几何模型,而无论多么复杂的几何模型,都可以分解成有限数量的构成特征,而每一种构成特征,都可以用有限的参数完全约束,

3、这就是参数化的基本概念。 2.基于 HYPERLINK /view/1028483.htm t _blank 特征建模 Pro/E是基于特征的实体模型化系统,工程设计人员采用具有智能特性的基于特征的功能去生成模型,如 HYPERLINK /picview/271866/271866/0/b0742dfaf2d68d59a8d31181.html o 查看图片 t _blank 系列化快餐托盘设计腔、壳、倒角及 HYPERLINK /view/358973.htm t _blank 圆角,您可以随意勾画草图,轻易改变模型。这一功能特性给工程设计者提供了在设计上从未有过的简易和灵活,特别是在设计系

4、列化产品上更是有得天独到的优势。 3.单一数据库 Pro/Engineer是建立在统一基层上的数据库上,不象一些传统的CAD/CAM系统建立在多个数据库上。所谓单一数据库,就是工程中的资料全部来自一个库,使得每一个独立用户在为一件产品造型而工作,不管他是哪一个部门的。换言之,在整个设计过程的任何一处发生改动,亦可以前后反应在整个设计过程的相关环节上。例如,一旦工程详图有改变,NC( HYPERLINK /view/7645.htm t _blank 数控)工具 HYPERLINK /view/59642.htm t _blank 路径也会自动更新;组装工程图如有任何变动,也完全同样反应在整个

5、HYPERLINK /view/3169335.htm t _blank 三维模型上。这种独特的 HYPERLINK /view/9900.htm t _blank 数据结构与工程设计的完整的结合,使得一件产品的设计结合起来。这一优点,使得设计更优化,成品质量更高,产品能更好地推向市场,价格也更便宜。 HYPERLINK /picview/271866/271866/0/948bcfc8ddf7e2507f3e6f9d.html o 查看图片 t _blank 大型捕鲸船装配设计24.直观装配管理 HYPERLINK /view/934933.htm t _blank Pro/ENGINEER

6、的基本结构能够使您利用一些直观的命令,例如“贴合”、“插入”、“对齐”等很容易的把零件装配起来,同时保持设计意图。高级的功能支持大型复杂装配体的构造和管理,这些装配体中零件的数量不受限制。 5.易于使用 菜单以直观的方式联级出现,提供了逻辑选项和预先选取的最普通选项,同时还提供了简短的菜单描述和完整的在线帮助,这种形式使得容易学习和使用。.模具设计的流程1. 在计算机的硬盘空间创建一个文件夹,并将设计模型文件放入该文件夹中。2. 打开Pro/E,将工作路径设置到步骤1创建的文件夹。3. 打开设计模型检查其单位制,一般将其转化为公制(mmns)。4. 创建模具模型1) 文件 新建 选择“制造|模

7、具型腔”并输入模具模型名称,同时将默认模板前方框中的勾去掉 确认 在接下来的对话框中选择与设计模型相同的单位制(mmNs) 确认即可进入模具模型的设计界面。2) 使用菜单管理器命令“模具模型” 装配 参考模型 在打开的对话框中选择设计模型文件 确认 进入组件放置对话框 利用装配知识将设计模型放入模具模型空间确认后会弹出创建参考模型对话框,在其中选择“合并参考”,并输入参考模型的名称确认。3) 使用图层管理方法将设计模型的参考面和坐标系隐藏起来。4) 设定收缩率:菜单管理器命令“收缩” 公式 1+S 尺寸或比例方式设定,设定完成后可利用“收缩信息”查看。5) 创建工件模型:菜单管理器命令“模具模

8、型” 创建 工件模型 手工在弹出的对话框中选择“零件|实体”并输入工件模型的名称 确认 创建特征 确定 可利用实体造型方法创建六面体确认后在模型空间中会出现一个绿色的实体。5. 设计浇注系统:菜单管理器命令“特征” 型腔组件实体利用剪切方法创建主流道、点浇口等。(例:用旋转剪切方法创建主流道时,绘制完旋转轴和旋转截面后 确定 “相交”上滑板 取消“自动更新”项 选中要移除的项,右击选中移除 确定即可。)6. 设计分型面菜单管理器命令“分型面” 创建在弹出的对话框中输入分型面的名称或使用默认的名称确认增加接下来使用曲面的编辑与修改功能创建分型面,有下列几种常用的方法:1) 按下“隐藏|显示”按钮

9、在弹出的对话框中将工件模型隐藏确定菜单管理器命令“复制”在设计模型上选择要复制的面完成(若需要将复制得到的曲面上的“破孔”进行填充,则在“曲面:复制”对话框中选择“填充环” 定义选择包含破孔的分型面确认)再使用“延伸”的方法将复制得到的面延伸至工件模型的外表面。2) 阴影(即采用光投影的方法产生分型面,在此之前不能将工件模型隐藏)在弹出的对话框中选择“方向”向定义在参考模型上选择一个面用来指定投影方向确认。7. 菜单管理器命令“模型体积块” 分割两个体积块|所有工件确认选择上述创建的分型面确认在弹出的对话框中输入体积块的名称或采用默认的名称确认。8. 菜单管理器命令“模具组件” “抽取”将上一

10、步产生的体积块转化为相应的模具组件。9. 菜单管理器命令“铸模” “创建” 输入名称生成一个浇注件。10. 菜单管理器命令“模具开模” 定义开模步骤定义移动选择模具组件指定开模方向输入开模距离,完成一个模具组件的开模动作接下来按相同的方法定义其他组件的开模动作。11. 利用“分析”菜单对参考模型的拔模角、壁厚、投影面积、分型面等进行检测。一.Pro-E数控加工简介.Pro-E数控加工简介CAD/CAM是计算机辅助设计(Computer Aided Design)和计算机辅助制造(Computer Aided Manufacturing)的简称。CAD/CAM软件经历了从二维绘图到三维数字建模,

11、从零件设计到产品设计,从物理样机到虚拟样机,从工程分析到产品优化的发展过程,技术日益成熟,在工业领域得到了广泛应用。目前世界上应用比较广泛的CAD/CAM软件主要有Pro/E、UG、CATIA、MasterCAM、CAXA等。Pro/Engineer是美国参数技术公司(Parametric Technology Corporation ,简称PTC)的优秀产品,它集成了零件设计、产品装配、模具设计、数控加工、钣金件设计、铸造件设计、造型设计、逆向工程、自动测量、机构仿真、应力分析,产品数据库管理等功能于一体,广泛应用在机械、汽车、模具、航天、家电、工业设计等行业。PTC公司在企业三维设计制造中

12、占用极其重要的地位,世界上主要大的汽车制造公司(福特、宝马、丰田、现代等)和飞机制造公司(波音、空中客车等)都是PTC的客户,摩托罗拉使用的就是PTC公司的解决方案,使手机模具的开发只需要48小时!Pro/Engineer Wildfire 3.0中文版是PTC公司于2006年4月推出的最新版本,本次培训将重点介绍Pro/NC(Numerical Control)模块。数控铣削是最常用的机械加工方法之一,既可以加工具有平面形状的零件,又可以加工曲面零件,还可以加工带有孔系的盘、套、板类零件,因此铣削加工在机械加工行业的应用十分广泛。Pro/NC中的铣削加工方法主要有体积块加工、局部铣削加工、曲

13、面铣削加工、平面加工、轮廓加工、腔槽加工、轨迹加工、孔加工、螺纹加工、刻模加工、陷入加工等。数控车削加工方法主要有区域车削、轮廓车削、凹槽车削、螺纹车削等。.数控加工的流程第二章 典型塑料模具设计工具-定制屏幕-文件-设置工作目录和试除不显示、窗口和帮助-激活和关闭窗口将工作目录设置在桌面-ProE模具设计-例5:表壳-biao ke下。1.建立参照模型打开biaoke。Prt关闭窗口,试除。2.创建模具模型(装配参照模型、创建工件)新建-制造-模具型腔,名称biaoke,使用缺省模板,mmns_mfg_mold,确定。模具模型-装配-参照模型-biaoke.prt-缺省-确定,创建-工件-手

14、动-名称wp-确定-创建特征-加材料-拉伸、实体-完成-定义内部草绘-草绘。3.设置收缩率收缩-按尺寸-比率0.005-4.设置分型面侧面影像曲线分型曲面-裙状曲面-特征曲线-完成,环分类-外侧-确定5.构建模具体积块体积分割块-完成-确定,分别更改加亮体积块的名称,分别为UP和DOWN6.抽取模具元件模具元件-抽取-选取全部体积块-确定-完成7.创建模具特征(1)创建顶针孔草绘的基准点-选取草绘平面-,特征/型腔组件/顶针孔-推针孔:竖直的-在点上-确定-选点-完成-正向-相交元件-自动添加,输入5-确定两次,在输入沉孔孔直径10和深度40,确定-完成(2)创建等高线平面命令-特征/型腔组件

15、/等高线-选取草绘平面-缺省相交元件-自动添加/确定-完成/返回(3)创建浇口菜单管理器-特征/型腔组件/实体切减材料/旋转/实体/完成-右键定义内部草绘-选取草绘平面,绘制浇口形状,单击确定,单击菜单管理器中【完成/返回】。9.铸模在菜单管理器中选取【铸模/创建】命令,输入零件名称molding,回车两次,单击【完成/返回】。10.开模在菜单管理器中选取【模具进料孔】命令,在下拉菜单中选取【定义间距/定义移动】命令,选取移动构件、分解方向及位移,单击【完成/返回】,如图所示 第三章 塑件凹模数控加工表壳凹模数控加工1. 选取【文件/设置工作目录】命令,将工作目录保存在biaoke所在文件夹下

16、,然后【确定】。2. 【文件/新建】菜单命令,打开【新建】对话框3. 制造模型/装配/参照模型-cavity.pr-打开-元件放置-缺省-,创建参照模型-同一模型-确定(2)在菜单管理器中选取【制造模型/创建/工件】命令,输入零件名称回车,弹出下拉菜单选取【实体/加材料/拉伸/实体】,单击确定。右键定义内部草绘,选取草绘平面、参照,绘制矩形,单击确定,确定拉伸长度,单击按钮。4. 菜单管理器中-制造设置- NC机床-机床设置-参照/加工零点,在【原始】界面下选取坐标系,在【定向】界面下选取XYZ的方向,单击【退刀/曲面】,弹出【退刀设置】对话框,设定退刀高度,单击确定两次,在菜单5.粗加工。在

17、菜单管理器中选取【加工/NC序列/加工/体积块/3轴/完成】命令,设置下拉菜单下选取【刀具/参数/体积】,单击完成。弹出【刀具设定】对话框如图所示3-7,设置刀具直径、高度值,单击【应用/确定】。弹出【编辑序列参数“体积块铣削”】对话框如图所示3-8,设定【切削进给量/步长深度/跨度/安全距离/主轴转速】的相应数值,单击确定。在工具栏单击【铣削体积块】命令,右键定义内部草绘如图所示3-9,绘制铣削平面,完成草绘,拉伸至平面,拉伸完成实体块如图3-10。在菜单管理器中单击【完成序列/完成/返回】。在菜单管理器中单击【加工/NC序列/序列/演示轨迹/NC检测】命令,查看加工过程6. 精加工内腔轮廓

18、。在菜单管理器中选取【加工/NC序列/加工/轮廓/3轴/完成】命令,在序列设置下拉菜单下选取【刀具/参数/曲面】,单击完成。弹出【刀具设定】对话框如图3-12,设置刀具直径、高度值,单击【应用/确定】。弹出【编辑序列参数“剖面铣削”】对话框如图3-13,设定【切削进给量/步长深度/安全距离/主轴转速】的相应数值,单击确定。在菜单管理器单击【选取曲面/模型/完成/曲面/完成】命令,选取内腔曲面如图3-14。单击确定,在菜单管理器中单击 【完成序列/完成/返回】。在菜单管理器中单击【加工/NC序列/序列/演示轨迹/屏幕检测】命令7. 精加工内腔底曲面。在菜单管理器中选取【加工/NC序列/加工/曲面

19、/3轴/完成】命令,在序列设置下拉菜单下选取【刀具/参数/曲面】,单击完成。弹出【刀具设定】对话框如图3-16,设置刀具直径、高度值,单击【应用/确定】。弹出【编辑序列参数“剖面铣削”】对话框如图3-13,设定【切削进给量/步长深度/安全距离/主轴转速】的相应数值,单击确定。在菜单管理器单击【选取曲面/模型/完成/曲面/完成】命令,选取内腔曲面如图3-14,3-17 。单击确定,在菜单管理器中单击 【完成序列/完成/返回】。在菜单管理器中单击【加工/NC序列/序列/演示轨迹/屏幕检测】命令,查看加工过程如图所示3-18。 图3-16 图3-188.在菜单管理器中选取【CL数据/输出/操作/OP

20、010/文件/MCD文件】命令如图3-18,在【保存副本】对话框中单击确定。选取单击【Done Output】【完成/返回】,最后生成G代码,即一个*.tap文件,可用记事本打开并编辑,如图所第四章 总结时间总是过的很快,三周的CAD/CAM实习不经意间就结束了。虽然很多方面的操作不是很熟习,但是收获却是很多的。首先对CAD/CAM知识较以前来说有所提高,比以前全面了,以前生疏的操作命令在这三个星期的实习磨练下能够熟练运用。当然在画图的时候还是遇到困难,通过老师讲解与自己理解画出来,有些问题还是要自己独立思考,才能把新的知识转为自己的,在以后遇到难题的时候就能够很好的解决,在CAD/CAM的实

21、训中学会了这一点,这是一大收获。 在实训中学会了应用Pro/E模具设计和数控加工的操作方法,模具设计:1、设置工作目录2、新建模具设计文件3、建立模具模型4.设置尺寸收缩5.创建分型面6.构建分割体积块7.抽取模具元件8.创建模具特征9.铸模10.开模11.存盘 ;数控加工:1、加工前的准备工作2、创建NC加工文件3、创建制造模型4、定义操作5、创建NC序列6、后置处理。学会了用不同的方法创建不同的分型面,创建特征的方法等等。总而言之,在这次的CAD/CAM的实习我的专业知识在提高,同时还磨练了我的耐心,能够专注的去做好每一件事,体会到了合作的快乐,认识到了理论知识的重要性。在这次的CAD/C

22、AM的实习中得到了这方面很重要的知识与对于未来工作的信心。附录资料:不需要的可以自行删除 C语言曲线函数像素函数putpixel() 画像素点函数 getpixel()返回像素色函数 直线和线型函数line() 画线函数 lineto() 画线函数 linerel() 相对画线函数 setlinestyle() 设置线型函数 getlinesettings() 获取线型设置函数 setwritemode() 设置画线模式函数 多边形函数HYPERLINK /view/553113.htmrectangle() 画矩形函数 bar() 画条函数 bar3d() 画条块函数 drawpoly()

23、画多边形函数 圆、弧和曲线函数getaspectratio()获取纵横比函数 circle()画圆函数 arc() 画圆弧函数 ellipse()画HYPERLINK /view/36981.htm椭圆弧函数 fillellipse() 画椭圆区函数 pieslice() 画扇区函数 sector() 画椭圆扇区函数 getarccoords()获取圆弧坐标函数 填充函数setfillstyle() 设置填充图样和颜色函数 setfillpattern() 设置用户图样函数 floodfill() 填充闭域函数 fillpoly() 填充多边形函数 getfillsettings() 获取填充

24、设置函数 getfillpattern() 获取用户图样设置函数 图像函数imagesize() 图像存储大小函数 getimage() 保存图像函数 putimage() 输出图像函数 图形和图像函数对许多图形HYPERLINK /view/330120.htm应用程序,直线和HYPERLINK /view/400.htm曲线是非常有用的。但对有些图形只能靠操作单个像素才能画出。当然如果没有画像素的功能,就无法操作直线和曲线的函数。而且通过大规模使用像素功能,整个图形就可以保存、写、擦除和与屏幕上的原有图形进行叠加。 (一) 像素函数putpixel() 画像素点函数功能: 函数putpix

25、el() 在图形模式下屏幕上画一个像素点。 用法: 函数调用方式为void putpixel(int x,int y,int color); 说明: 参数x,y为像素点的坐标,color是该像素点的颜色,它可以是颜色符号名,也可以是整型色彩值。 此函数相应的HYPERLINK /view/668911.htm头文件是graphics.h 返回值: 无 例: 在屏幕上(6,8)处画一个红色像素点: putpixel(6,8,RED); getpixel()返回像素色函数功能: 函数getpixel()返回像素点颜色值。 用法: 该函数调用方式为int getpixel(int x,int y);

26、 说明: 参数x,y为像素点坐标。 函数的返回值可以不反映实际彩色值,这取决于HYPERLINK /view/1120949.htm调色板的设置情况(参见setpalette()函数)。 这个函数相应的头文件为graphics.h 返回值: 返回一个像素点色彩值。 例: 把屏幕上(8,6)点的像素颜色值赋给变量color。 color=getpixel(8,6); (二) 直线和线型函数有三个画直线的函数,即line(),lineto(),linerel()。这些直线使用整型坐标,并相对于当前图形视口,但不一定受视口限制,如果视口裁剪标志clip为真,那么直线将受到视口边缘截断;如果clip为

27、假,即使终点坐标或新的当前位置在图形视口或屏幕极限之外,直线截断到屏幕极限。 有两种线宽及几种线型可供选择,也可以自己定义线图样。下面分别介绍直线和线型函数。 line() 画线函数功能: 函数line()使用当前绘图色、线型及线宽,在给定的两点间画一直线。 用法: 该函数调用方式为void line(int startx,int starty,int endx,int endy); 说明: 参数startx,starty为起点坐标,endx,endy为终点坐标,函数调用前后,图形状态下屏幕光标(一般不可见)当前位置不改变。 此函数相应的头文件为graphics.h 返回值: 无 例: 见函数

28、60.linerel()中的实例。 lineto() 画线函数功能: 函数lineto()使用当前绘图色、线型及线宽,从当前位置画一直线到指定位置。 用法: 此函数调用方式为void lineto(int x,int y); 说明: 参数x,y为指定点的坐标,函数调用后,当前位置改变到指定点(x,y)。 该函数对应的头文件为graphics.h 返回值: 无 例: 见函数60.linerel()中的实例。 linerel() 相对画线函数功能: 函数linerel() 使用当前绘图色、线型及线宽,从当前位置开始,按指定的水平和垂直偏移距离画一直线。 用法: 这个函数调用方式为void line

29、rel(int dx,int dy); 说明: 参数dx,dy分别是水平偏移距离和垂直偏移距离。 函数调用后,当前位置变为增加偏移距离后的位置,例如,原来的位置是(8,6),调用函数linerel(10,18)后,当前位置为(18,24)。 返回值:无 例: 下面的程序为画线函数调用实例: #i nclude void main() int driver,mode; driver=DETECT; mode=0; initgraph(&driver,&mode,); setcolor(15); line(66,66,88,88); lineto(100,100); linerel(36,64);

30、 getch(); restorecrtmode(); setlinestyle() 设置线型函数功能: setlinestyle() 为画线函数设置当前线型,包括线型、线图样和线宽。 用法: setlinestyle() 函数调用方式为void setlinestyle(int stly,unsigned pattern,int wigth); 说明: 参数style为线型取值,也可以用相应名称表示,如表1-10中所示。 参数pattern用于自定义线图样,它是16位(bit)字,只有当style=USERBIT_LINE(值为1)时,pattern的值才有意义,使用用户自定义线图样,与图样

31、中“1”位对应的像素显示,因此,pattern=0 xFFFF,则画实线;pattern=0 x9999,则画每隔两个像素交替显示的虚线,如果要画长虚线,那么pattern的值可为0 xFF00和0 xF00F,当style不为USERBIT_LINE值时,虽然pattern的值不起作用,但扔须为它提供一个值,一般取为0。 参数wigth用来设定线宽,其取值见表1-11,表中给出了两个值,即1和3,实际上,线宽取值为2也是可以接受的。 若用非法参数调用setlinestyle()函数,那么graphresult()会返回错误代码,并且当前线型继续有效。 Turbo C提供的线型与线宽定义在头文

32、件graphics.h中,表1-10和1-11分别列出了参数的取值与含义。 表1-10 线型 名称取值含义SOLID_LINE0实线DOTTED_LINE1点线CENTER_LINE2中心线DASHED_LINE3虚线USERBIT_LINE4用户自定义线型表1-11 线宽 名 称取 值说 明NORM_WIDTH(常宽)1一个像素宽(缺省值)THICK_WIDTH(加宽)3三个像素宽这个函数的头文件是graphics.h 返回值: 无 例: 下面的程序显示了BC中所提供的线型图样: #i nclude void main() int driver,mode;i; driver=DETECT;

33、mode=0; initgraph(&driver,&mode,); for(i=0;i4;i+) setlinestyle(i,0,1); line(i*50,200,i*50+60,200) ; getch(); restorecrtmode(); getlinesettings() 获取线型设置函数功能: 函数getlinesettings() 用当前设置的线型、线图样和线宽填 写linesettingstype型结构。 用法: 函数调用方式为void getlinesettings(struct linesettingstype *info); 说明: 此函数调用执行后,当前的线型、线

34、图样和线宽值被装入info指向的结构里,从而可从该结构中获得线型设置。 linesettingstype型结构定义如下: struct linesettingstype int linestyle; unsigned upattern; int thickness; ; 其中linestyle用于存放线型,线型值为表1-10中的各值之一。 upattern用为装入用户自定义线图样,这是16位字,每一位等于一个像素,如果哪个位被设置,那么该像素打开,否则关闭。 thickness为线宽值存放的变量,可参见表1-11。 getlinesettings()函数对应的头文件为graphics.h 返回

35、值: 返回的线型设置存放在info指向的结构中。 例: 把当前线型的设置写入info结构: struct linesettingstype info; getlinesettings(&info); setwritemode() 设置画线模式函数功能: 函数setwritemode() 设置画线模式 用法: 函数调用方式为 void setwritemode()(int mode); 说明: 参数mode只有两个取值0和1,若mode为0,则新画的线将覆盖屏幕上原有的图形,此为缺省画线输出模式。如果mode为1,那么新画的像素点与原有图形的像素点先进行异或(XOR)运算,然后输出到屏幕上,使用

36、这种画线输出模式,第二次画同一图形时,将擦除该图形。调用setwritemode()设置的画线输出模式只影响函数line(),lineto(),linerel(),recangle()和drawpoly()。 setwritemode()函数对应的头文件是graphics.h 返回值: 无 例: 设置画线输出模式为0: setwritemode(0); (三)、多边形函数对多边形,无疑可用画直线函数来画出它,但直接提供画多边形的函数会给用户很大方便。最常见的多边形有矩形、矩形块(或称条形)、多边形和多边形块,我们还把长方形条块也放到这里一起考虑,虽然它不是多边形,但它的特例就是矩形(块)。下面

37、直接介绍画多边形的函数。 rectangle() 画矩形函数功能: 函数rectangle() 用当前绘图色、线型及线宽,画一个给定左上角与右下角的矩形(正方形或长方形)。 用法: 此函数调用方式为void rectangle(int left,int top,int right,int bottom); 说明: 参数left,top是左上角点坐标,right,bottom是右下角点坐标。如果有一个以上角点不在当前图形视口内,且裁剪标志clip设置的是真(1),那么调用该函数后,只有在图形视口内的矩形部分才被画出。 这个函数对应的头文件为graphics.h 返回值: 无 例: 下面的程序画一

38、些矩形实例: #i nclude void main() int driver,mode; driver=DETECT; mode=0; initgraph(&driver,&mode,); rectangle(80,80,220,200); rectangle(140,99,180,300); rectangle(6,6,88,88); rectangle(168,72,260,360); getch(); restorecrtmode(); bar() 画条函数功能: 函数bar()用当前填充图样和填充色(注意不是给图色)画出一个指定上左上角与右下角的实心长条形(长方块或正方块),但没有四

39、条边线)。 用法: bar()函数调用方式为void bar(int left,int top,int right,int bottom); 说明: 参数left,topright,bottom分别为左上角坐标与右下角坐标,它们和调用函数rectangle()的情形相同,调用此函数前,可用setfillstyle()或setfillpattern()设置当前填充图样和填充色。 注意此函数只画没有边线的条形,如果要画有边线的的条形,可调用下面的函数bar3d()来画,并将深度参数设为0,同时topflag参数要设置为真,否则该条形无顶边线。 这 应的头文件为graphics.h 返回值: 无 例

40、: 见函数bar3d()中的实例。 bar3d() 画条块函数功能: 函数bar3d() 使用当前绘图色、线型及线宽画出三维长方形条块,并用当前填充图样和填 充色填充该三维条块的表面。 用法: 此函数调用方式为void bar3d(int left,int top,int right,int bottom,int depth,int topflag); 说明: 参数left,top,right,bottom分另为左上角与右下角坐标,这与bar()函数中的一样。参数depth为条块的深度,以像素为单位,通常按宽度的四分之一计算。深度方向通过屏显纵横比调节为约45度(即这时x/y比设置为1:1)。

41、 参数topflag相当于一个HYPERLINK /view/46060.htm布尔参数,如果设置为1(真)那么条块上放一顶面;若设置为0(假),则三维条形就没有顶面,这样可使多个三维条形叠加在一起。 要使图形更加美观,可利用函数floodfill()或setfillpattern()来选择填充图样和填充色(参见本小节(五)填充函数 )。 bar3d()函数对应的头文件为graphics.h 返回值: 无 例: 下面的程序画一个条形和条块: #i nclude void main() int driver,mode; driver=DETECT; mode=0; initgraph(&driv

42、er,&mode,); setfillstyle(SOLID-FILL,GREEN); bar(60,80,220,160); setfillstyle(SOLID-FILL,RED); bar3d(260,180,360,240,20,1); getch(); restorecrtmode(); drawpoly() 画多边形函数功能: 函数drawpoly() 用当前绘图色、线型及线宽,画一个给定若干点所定义的多边形。 用法: 此函数调用方式为void drawpoly(int pnumber,int *points); 说明: 参数pnumber为多边形的顶点数;参数points指向整型

43、HYPERLINK /view/209670.htm数组,该数组中是多边形所有顶点(x,y)坐标值,即一系列整数对,x坐标值在前。显然整型数组的维数至少为顶点数的2倍,在定义了多边形所有顶点的数组polypoints时,顶点数目可通过计算sizeof(polypoints)除以2倍的sizeof(int)得到,这里除以2倍的原因是每个顶点有两个整数坐标值。另外有一点要注意,画一个n个顶点的闭合图形,顶点数必须等于n+1,并且最后一点(第n+1)点坐标必须等于第一点的坐标。 drawpoly()函数对应的头文件为grpahics.h 返回值: 无 例: 下面的程序画一个封闭星形图与一个不封闭星形

44、图: #i nclude void main() int driver,mode; static int polypoints118=100,100,110,120,100,130,120,125,140,140,130,120, 140,110,120,115,100,100; static int polypoints218=180,100,210,120,200,130,220,125,240,140,230,120, 240,110,220,115,220,110; driver=DETECT; mode=0; initgraph(&driver,&mode,); drawpoly(9

45、,polypoints1); drawpoly(9,polypoints2); getch(); restorecrtmode(); (四)、 圆、弧和曲线函数在一个屏幕上画得很圆的图形到另一个屏幕上可能被压扁或拉长,这是因为每一种显示卡与之相应的显示模式都有一个纵横比。纵横比是指像素的水平方向大小与垂直方向大小的比值。如VGA显示卡由于偈素基本上是正方形,所以纵横比为1.000。 为了保证几何图形基本按预计情况显示在屏幕上,用屏显的纵横比来计算和纠正不同硬件及显示卡产生的畸变。计算纵横比所需要的水平方向和垂直方向的比例系数可调用函数getaspectratio()获得。 getaspectr

46、atio()获取纵横比函数功能: 函数getaspectratio()返回x方向和y方向的比例系数,用这两个整型值可计算某一特定屏显的纵横比。 用法: 此函数调用方式为void getaspectratio(int xasp,int yasp); 说明: 参数xasp指向的变量存放返回的x方向比例系数;参数yasp指向的变量存放返回的y方向比例系数。通常y方向比例系数为10 000, x方向比例系数不大于10 000(这是因为大多数屏幕像素高比宽长)。 注意纵横比自动用作下面函数arc(),circle()和pieslice()中的标尺因子,使屏幕上圆或弧正常显示。但用ellipse()函数画

47、椭圆必须调用本函数获取纵横比作为标尺因子,否则不予调整。纵横比可用于其它几何图形,目的是校正和显示图形。 getaspectratio()函数对应的头文件为graphics.h 返回值: 返回x与y方向比例系数分别存放在xasp和yasp所指向的变量中。 例: 下面的程序显示纵横比: int xasp,yasp; float aspectratio; getaspectratio(&xasp,&yasp); aspectratio=xasp/yasp; printf(aspect ratio: %f,aspectratio); circle()画圆函数功能: 函数circle()使用当前绘图色

48、并以实线画一个完整的圆。 用法:该函数调用方式为void circle(int x,int y,int radius); 说明: 参数x,y为圆心坐标,radius为圆半径,用像素个素表示。注意,调用circle()函数画圆时不用当前线型。 不同于ellipse()函数,只用单个半径radius参数调用circle()函数,故屏显纵横比可以自动调节,以产生正确的显示图。 此函数对应的头文件为graphics.h 返回值: 无 例: 画六个同心圆,圆心在(100,100)。 #i nclude void main() int driver,mode; driver=DETECT; mode=0;

49、 initgraph(&driver,&mode,); circle(100,100,10); circle(100,100,20); circle(100,100,30); circle(100,100,40); circle(100,100,50); circle(100,100,60); getch(); restorecrtmode(); arc() 画圆弧函数功能: 函数arc()使用当前绘图色并以实线画一圆弧。 用法: 函数调用方式为void arc(int x,int y,int startangle,int endangle,int radius); 说明: 参数x,y为圆心坐

50、标,startangle与endangle分别为起始角与终止角,radius为半径。圆心坐标和半径以像素个数给出,起始角和终止角以度为单位,0度位于右边,90度位于顶部,180度位于左边,底部是270度。同往常一样,360度与0度重合。角度按逆时针方向增加,但并不要求终止角一定比起始角大。例如指定300度和90度分别为起始角和终止角,与指定300度和450度分别为起始角和终止角可画出相同的弧。大于360度可作为参数,它将被化到0度360度范围里。函数arc()能画封闭圆,只要取起始角为0度,终止角为360度即可。此函数中,屏显纵横比可自动调节。 arc()函数对应的头文件为graphics.h

51、 返回值: 无 例: 以(200,200)为圆心,100为半径,从0度到120度画圆弧: #i ncludegraphics.h void main() int driver,mode; driver=DETECT; mode=0; initgraph(&driver,&mode,); setcolor(WHITE); arc(200,200,0,120,100); getch(); restorecrtmode(); graphics.h头文件的内容:/* graphics.h Definitions for Graphics Package. Copyright (c) Borland I

52、nternational 1987,1988 All Rights Reserved. */ #if _STDC_ #define _Cdecl #else #define _Cdecl cdecl #endif #if !defined(_GRAPHX_DEF_) #define _GRAPHX_DEF_ enum graphics_errors /* graphresult error return codes */ grOk = 0, grNoInitGraph = -1, grNotDetected = -2, grFileNotFound = -3, grInvalidDriver

53、= -4, grNoLoadMem = -5, grNoScanMem = -6, grNoFloodMem = -7, grFontNotFound = -8, grNoFontMem = -9, grInvalidMode = -10, grError = -11, /* generic error */ grIOerror = -12, grInvalidFont = -13, grInvalidFontNum = -14, grInvalidVersion = -18 ; enum graphics_drivers /* define graphics drivers */ DETEC

54、T, /* requests autodetection */ CGA, MCGA, EGA, EGA64, EGAMONO, IBM8514, /* 1 - 6 */ HERCMONO, ATT400, VGA, PC3270, /* 7 - 10 */ CURRENT_DRIVER = -1 ; enum graphics_modes /* graphics modes for each driver */ CGAC0 = 0, /* 320 x200 palette 0; 1 page */ CGAC1 = 1, /* 320 x200 palette 1; 1 page */ CGAC

55、2 = 2, /* 320 x200 palette 2: 1 page */ CGAC3 = 3, /* 320 x200 palette 3; 1 page */ CGAHI = 4, /* 640 x200 1 page */ MCGAC0 = 0, /* 320 x200 palette 0; 1 page */ MCGAC1 = 1, /* 320 x200 palette 1; 1 page */ MCGAC2 = 2, /* 320 x200 palette 2; 1 page */ MCGAC3 = 3, /* 320 x200 palette 3; 1 page */ MCG

56、AMED = 4, /* 640 x200 1 page */ MCGAHI = 5, /* 640 x480 1 page */ EGALO = 0, /* 640 x200 16 color 4 pages */ EGAHI = 1, /* 640 x350 16 color 2 pages */ EGA64LO = 0, /* 640 x200 16 color 1 page */ EGA64HI = 1, /* 640 x350 4 color 1 page */ EGAMONOHI = 0, /* 640 x350 64K on card, 1 256K on card, 4 pag

57、es */ HERCMONOHI = 0, /* 720 x348 2 pages */ ATT400C0 = 0, /* 320 x200 palette 0; 1 page */ ATT400C1 = 1, /* 320 x200 palette 1; 1 page */ ATT400C2 = 2, /* 320 x200 palette 2; 1 page */ ATT400C3 = 3, /* 320 x200 palette 3; 1 page */ ATT400MED = 4, /* 640 x200 1 page */ ATT400HI = 5, /* 640 x400 1 pa

58、ge */ VGALO = 0, /* 640 x200 16 color 4 pages */ VGAMED = 1, /* 640 x350 16 color 2 pages */ VGAHI = 2, /* 640 x480 16 color 1 page */ PC3270HI = 0, /* 720 x350 1 page */ IBM8514LO = 0, /* 640 x480 256 colors */ IBM8514HI = 1 /*1024x768 256 colors */ ; /* Colors for setpalette and setallpalette */ #

59、if !defined(_COLORS) #define _COLORS enum COLORS BLACK, /* dark colors */ BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, LIGHTGRAY, DARKGRAY, /* light colors */ LIGHTBLUE, LIGHTGREEN, LIGHTCYAN, LIGHTRED, LIGHTMAGENTA, YELLOW, WHITE ; #endif enum CGA_COLORS CGA_LIGHTGREEN = 1, /* Palette C0 Color Names */

60、CGA_LIGHTRED = 2, CGA_YELLOW = 3, CGA_LIGHTCYAN = 1, /* Palette C1 Color Names */ CGA_LIGHTMAGENTA = 2, CGA_WHITE = 3, CGA_GREEN = 1, /* Palette C2 Color Names */ CGA_RED = 2, CGA_BROWN = 3, CGA_CYAN = 1, /* Palette C3 Color Names */ CGA_MAGENTA = 2, CGA_LIGHTGRAY = 3 ; enum EGA_COLORS EGA_BLACK = 0

温馨提示

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

评论

0/150

提交评论