c语言画直线存为dxf格式,用C语言生成DXF文件.doc

(1) 用C语言生成DXF文件

#include"stdio.h"

#include"conio.h"

FILE *fp;

void hsec(),endsec();

void line();

void arc();

void text();

main()

{

char a[8]="KEY40";

clrscr();

fp=fopen("d:\\key.dxf","w");

if(fp==NULL)

{

printf("cant open\n");

exit(1);

}

hsec(fp);

line(fp,20.0,20.0,50.0,20.0);

line(fp,20.0,30.0,50.0,30.0);

arc(fp,20.0,25.0,5.0,90.0,270.0);

arc(fp,50.0,25.0,5.0,-90.0,90.0);

text(fp,30.0,45.0,3.5,0.0,0.0,a);

endsec(fp);

fclose(fp);

}

接口子程序///

void hsec(FILE *fp)

{

fprintf(fp,"0\nSECTION\n2\nENTITIES\n");/***\n为换行符***/

}

void line(FILE *fp,double x1,double y1,double x2,double y2)

{

fprintf(fp,"0\nline\n8\nA\n10\n");//A为层名

fprintf(fp,"%9.4f\n",x1);

fprintf(fp,"20\n");

fprintf(fp,"%9.4f\n",y1);

fprintf(fp,"11\n");

fprintf(fp,"%9.4f\n",x2);

fprintf(fp,"21\n");

fprintf(fp,"%9.4f\n",y2);

}

void arc(FILE *fp,double x,double y,double r,double sang,double eang)

{

fprintf(fp,"0\narc\n8\nA\n10\n");//A为层名

fprintf(fp,"%9.4f\n",x);

fprintf(fp,"20\n");

fprintf(fp,"%9.4f\n",y);

fprintf(fp,"40\n");

fprintf(fp,"%9.4f\n",r);

fprintf(fp,"50\n");

fprintf(fp,"%9.4f\n",sang);

fprintf(fp,"51\n");

fprintf(fp,"%9.4f\n",eang);

}

void cirlce(FILE *fp,double x,double y,double r)

{

fprintf(fp,"0\ncircle\n8\nA\n10\n");//A为层名

fprintf(fp,"%9.4f\n",x);

fprintf(fp,"20\n");

fprintf(fp,"%9.4f\n",y);

fprintf(fp,"40\n");

fprintf(fp,"%9.4f\n",r);

}

void text(FILE *fp,double x,double y,double h,double rota,double ang,char *tex)

{

fprintf(fp,"0\ntext\n8\nA\n10\n");//A为层名

fprintf(fp,"%9.4f\n",x);

fprintf(fp,"20\n");

fprintf(fp,"%9.4f\n",y);

fprintf(fp,"40\n");

fprintf(fp,"%9.4f\n",h);

fprintf(fp,"1\n");

fprintf(fp,"%s\n",tex);

fprintf(fp,"50\n");

fprintf(fp,"%9.4f\n",rota);

fprintf(fp,"51\n");

fprintf(fp,"%9.4f\n",ang);

}

void endsec(FILE *fp)

{

fprintf(fp,"0\nENDSEC\n0\nEOF\n");

}

3

展开阅读全文

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值