为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

CAD编程作图

2013-11-19 10页 doc 110KB 136阅读

用户头像

is_138037

暂无简介

举报
CAD编程作图 学生学号 0120901080209 实验课成绩 武汉理工大学 学 生 实 验 报 告 书 实验课程名称 CAD/CAM基础 开 课 学 院 材料学院 指导老师姓名 余世浩 学 生 姓 名 彭抗 学生专业班级 成型0902 2011 — 2012学年 第 一 学期 实验课程名称: CAD/CA...
CAD编程作图
学生学号 0120901080209 实验课成绩 武汉理工大学 学 生 实 验 报 告 书 实验课程名称 CAD/CAM基础 开 课 学 院 材料学院 指导老师姓名 余世浩 学 生 姓 名 彭抗 学生专业班级 成型0902 2011 — 2012学年 第 一 学期 实验课程名称: CAD/CAM基础 实验项目名称 图形软件的二次开发 实验成绩 实验者 彭抗 专业班级 成型0902 组别 同组者 实验日期 2011年11月1日 第一部分:实验 1.实验目的: (1)了解Auto CAD 图形交换文件(DXF文件)的结构和格式; (2)熟悉图形变换文件的程序生成方法; (3)编制生成Auto CAD图形交换文件的高级语言程序。实现零件图的自动生成和绘制。 2.实验: (1)编写含有生成直线、圆弧的DXF文件的接口程序; (2)编写生成某一标准零件DXF文件的主程序,经调试、编译、执行,生成该图形的DXF文件; (3)进入Auto CAD 软件,生成该图形。 3.实验原理: 1)DXF文件(图形变换文件)与DWG文件(图形文件)的转换 (1)由DWG文件生成DXF 文件 在Auto CAD 软件的命令(Command)状态下,执行DXFOUT命令,输入DXF文件名,即可生成当前图形文件的图形交换文件(DXF文件)。 (2)由DXF文件生成DWG文件 在Auto CAD软件的命令(Command)状态下,执行DXFIN命令,输入已有的DXF文件名,即可生成该DXF文件示的图形。 2)DXF文件的总体结构 DXF文件结构由五段组成: (1)HEADER 段 标题段 (2)TABLES 段 表段 (3)BLOCKS 段 块段 (4)ENTITIES 段 实体段 (5)EOF 段 文件结束段 在DXF文件中,尸体信息主要存放在ENTITIES段,而且仅有ENTITIES段和EOF段,DXF文件即可运行,因此,只需要重点讨论ENTITIES段和EOF段。 DXF文件ENTITIES段的结构为: 0 SECTION 2 ENTITIES … 实体信息(直线、圆弧、圆)描述 … 0 ENDSEC 0 EOF 3)接口程序设计 在ENTITIES段,其主要由直线段(LINE)、圆弧(ARC)和圆(CIRCLE)组成 。根据直线、圆弧、圆的结构,课编写相应的函数。 (1)写实体段头部的DXF文件的函数(宝库文件操作) dxfhead() {char mydxf[10]; printf("\input dxffile name:"); scanf("%s",mydxf); knm=fopen(mydxf,"w"); fputs("0\n",knm); fputs("SECTION\n",knm); fputs("2\n",knm); fputs("ENTITIES\n",knm); return; } (2)直线段的结构及写直线段的DXF文件的函数 ①直线段的结构 0 LINE 8 层号 10 Xs 20 Ys 11 Xe 21 Ye ②写直线段的DXF文件的函数 line(ceng,x1,y1,x2,y2) char ceng; float x1,y1,x2,y2; { fputs("0\n",knm); fputs("LINE\n",knm); fputs("8\n",knm); fprintf(knm,"%c\n",ceng); fputs("10\n",knm); fprintf(knm,"%f\n",x1); fputs("20\n",knm); fprintf(knm,"%f\n",y1); fputs("11\n",knm); fprintf(knm,"%f\n",x2); fputs("21\n",knm); fprintf(knm,"%f\n",y2); return;} (3)圆弧段的结构及写圆弧段的DXF文件的函数 ①圆弧段的结构 0 ARC 8 层号 10 X0 20 Y0 30 Z0 40 R 50 A1 51 a2 ②写圆弧段的DXF文件的函数 arc(ceng,x0,y0,r,stang,endang) char ceng; float x0,y0,r,stang,endang; { fputs("0\n",knm); fputs("ARC\n",knm); fputs("8\n",knm); fprintf(knm,"%c\n",ceng); fputs("10\n",knm); fprintf(knm,"%f\n",x0); fputs("20\n",knm); fprintf(knm,"%f\n",y0); fputs("40\n",knm); fprintf(knm,"%f\n",r); fputs("50\n",knm); fprintf(knm,"%f\n",stang); fputs("51\n",knm); fprintf(knm,"%f\n",endang); return;} (4)圆实体段的结构及写圆实体段的DXF文件的函数 ①圆弧段的结构 0 CIRCLE 8 层号 10 X0 20 Y0 30 Z0 40 R ②写圆实体段的DXF文件的函数 circle(ceng,x0,y0,r) char ceng; float x0,y0,r; { fputs("0\n",knm); fputs("CIRCLE\n",knm); fputs("8\n",knm); fprintf(knm,"%c\n",ceng); fputs("10\n",knm); fprintf(knm,"%f\n",x0); fputs("20\n",knm); fprintf(knm,"%f\n",y0); fputs("40\n",knm); fprintf(knm,"%f\n",r); return;} (5)写文件结束段DXF文件的函数 dxfend() {fputs("0\n",knm); fputs("ENDSEC\n",knm); fputs("0\n",knm); fputs("EOF\n",knm); fclose(knm); return;} 二、主要仪器设备及耗材 VisulC++ Auto CAD2004 第二部分:实验调试与结果分析(可加页) 1、 调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等) 编写的C语言程序如下所示: #include FILE*knm; main() { float l,b,r1,r2; scanf("%f%f%f%f",&l,&b,&r1,&r2); printf("%f%f%f%f\n",l,b,r1,r2); dxfhead(); line('0',-l/2.0,-b/2,-r2,-b/2.0); arc('0',0.0,-b/2.0,r2,180.0,360.0); line('0',r2,-b/2.0,l/2.0,-b/2.0); line('0',l/2.0,-b/2.0,l/2.0,b/2.0); line('0',l/2.0,b/2.0,r2,b/2.0); arc('0',0.0,b/2.0,r2,0.0,180.0); line('0',-r2,b/2.0,-l/2.0,b/2.0); line('0',-l/2.0,b/2.0,-l/2.0,-b/2.0); circle('0',0.0,0.0,r1); dxfend(); } dxfhead() {char mydxf[10]; printf("\input dxffile name:"); scanf("%s",mydxf); knm=fopen(mydxf,"w"); fputs("0\n",knm); fputs("SECTION\n",knm); fputs("2\n",knm); fputs("ENTITIES\n",knm); return; } line(ceng,x1,y1,x2,y2) char ceng; float x1,y1,x2,y2; { fputs("0\n",knm); fputs("LINE\n",knm); fputs("8\n",knm); fprintf(knm,"%c\n",ceng); fputs("10\n",knm); fprintf(knm,"%f\n",x1); fputs("20\n",knm); fprintf(knm,"%f\n",y1); fputs("11\n",knm); fprintf(knm,"%f\n",x2); fputs("21\n",knm); fprintf(knm,"%f\n",y2); return;} arc(ceng,x0,y0,r,stang,endang) char ceng; float x0,y0,r,stang,endang; { fputs("0\n",knm); fputs("ARC\n",knm); fputs("8\n",knm); fprintf(knm,"%c\n",ceng); fputs("10\n",knm); fprintf(knm,"%f\n",x0); fputs("20\n",knm); fprintf(knm,"%f\n",y0); fputs("40\n",knm); fprintf(knm,"%f\n",r); fputs("50\n",knm); fprintf(knm,"%f\n",stang); fputs("51\n",knm); fprintf(knm,"%f\n",endang); return;} circle(ceng,x0,y0,r) char ceng; float x0,y0,r; { fputs("0\n",knm); fputs("CIRCLE\n",knm); fputs("8\n",knm); fprintf(knm,"%c\n",ceng); fputs("10\n",knm); fprintf(knm,"%f\n",x0); fputs("20\n",knm); fprintf(knm,"%f\n",y0); fputs("40\n",knm); fprintf(knm,"%f\n",r); return;} dxfend() {fputs("0\n",knm); fputs("ENDSEC\n",knm); fputs("0\n",knm); fputs("EOF\n",knm); fclose(knm); return;} 运行C语言程序生成DXF格式文件以及Auto CAD软件中调用DXF格式文件 一、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等) 实验现象分析: 程序编写好以后运行没有错但是生成的DXF格式文件在Auto CAD软件里调用时图形绘制出现问题与自己设计的图形有出入,原来是坐标定义有问题,改正之后得出了正确结果。 二、实验小结、建议及体会 小结:通过实验了解了如何通过编制dxf文件的高级语言程序,学会了如何通过程序生成CAD图形。 体会:操作过程还是不熟练,还需要勤加练习才能了解和使用。
/
本文档为【CAD编程作图】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索