(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
展开阅读全文