www.pudn.com > dwg.rar > dwg.h


//*************************************************************************** 
//*------------用C写.DWG图形函数,程序名dwg.c,样板文件为ACAD 10.0版----------- 
// 
//*  本函数可以被VC++ 6.0调用 
// 
//*  作者  :安徽省水利水电勘测设计院   水工一室   
//* 
//*                        朱 群    
//* 
//*                 Email:zhuqunyj@sina.com.cn 
//*                      1995.11. turbo 2.0 
//*                      2001.7.29. VC++ 6.0 
//*************************************************************************** 
#ifndef   _WRITE_ACAD_DWG_H 
#define   _WRITE_ACAD_DWG_H 
 
#define   int   __int16 
#pragma pack( 1 )  //Specifies packing alignment for structure 
 
/* 线型定义 */ 
#define  CONTINUOUS 0 
#define  DASHED     1 
#define  HIDDEN     2 
#define  CENTER     3 
#define  PHANTOM    4 
#define  DOT        5 
#define  DASHDOT    6 
#define  BORDER     7 
#define  DIVIDE     8 
 
/* 颜色定义 */ 
#define  Red        1 
#define  Yellow     2 
#define  Green      3 
#define  Cyan       4 
#define  Blue       5 
#define  Magenta    6 
#define  White      7 
 
#define  STANDARD       0   /* txt,hztxt */ 
#define  HZ_CMPLX        1   /* complex,hztxt */ 
#define  CMPLX_VERT      2   /* complex 垂直字型 大字体无垂直字型*/ 
#define  HZ_ROMS         3   /* romans,tztxt */ 
#define  ROMS_VERT       4   /* romans 垂直字型  大字体无垂直字型*/ 
/*------------------------*/ 
/* 文本对齐方式及特征定义 */ 
/*------------------------*/ 
/* 方式设置 */ 
#define  Rota      0x01 
#define  Xscal     0x02   /* X比例因子 */ 
#define  Obliq     0x04   /* 倾斜角 */ 
#define  Setsty    0x08   /* 设字型 */ 
#define  Rgnsty    0x10   /* 生成方式 */ 
#define  Dqsty     0x60   /* 对齐 */ 
 
/* 生成方式 */ 
#define  Bkword    0x02   /* 反向 */ 
#define  Updown    0x04   /* 颠倒 */ 
 
/* 对齐方式 */ 
#define  Start     0      /* 起点 */ 
#define  Center    1      /* 中央 */ 
#define  Right     2      /* 右对齐 */ 
#define  Align     3      /* 两点这间对准,高度可变 */ 
#define  Mid       4      /* 中点对准 */ 
#define  Fit       5      /* 文本在两点之间拟合,宽度可变 */ 
 
//******************************************************** 
//******采用PASCAL调用方式以便为VB使用******************** 
int  FAR PASCAL    wpoint(double x,double y); 
 
int FAR PASCAL     startdwg(char *filename); 
int FAR PASCAL     enddwg(); 
int FAR PASCAL     chgcolor(char nom); 
int FAR PASCAL     chgltype(char nom); 
int FAR PASCAL     colorbylayer(); 
int FAR PASCAL     ltypebylayer(); 
 
int FAR PASCAL     wline(double x1,double y1,double x2,double y2); 
int FAR PASCAL     wcircle(double x,double y,double r); 
int FAR PASCAL     warc(double x,double y,double r,double sa,double ea); 
 
int FAR PASCAL     settexthigh( double h); 
int FAR PASCAL     settextrotang( double ang); 
int FAR PASCAL     settextxscale( double xsca); 
int FAR PASCAL     settextobliq( double obl); 
int FAR PASCAL     settextstyle( char sty); 
int FAR PASCAL     settextccstyle( char cc); 
int FAR PASCAL     settextdqstyle(char dq); 
int FAR PASCAL     cltextset(); 
int FAR PASCAL     wtext(double x,double y,char *text,...); 
 
//wtext 仅用于VB,VC可采用wtext代替 
int FAR PASCAL     wtext1(double x,double y,char *text,double dqx,double dqy); 
 
 
int FAR PASCAL     setlayer(char *layna,int color,int linetp); 
int FAR PASCAL     setplinew(double sw,double ew); 
 
int FAR PASCAL     wpline(char attr2); 
int FAR PASCAL     wvertex(double x,double y,char attr2); 
int FAR PASCAL     wseqend(); 
 
int FAR PASCAL     wdoughnut(double x,double y,double rr,double ww); 
int FAR PASCAL     w3dface(double x1,double y1,double x2,double y2,\ 
	    double x3,double y3,double x4,double y4); 
int FAR PASCAL     wrect(double sx,double sy,double ex,double ey); 
int FAR PASCAL     setbaseXY(double x,double y); 
int FAR PASCAL     setrbase(double x,double y); 
int FAR PASCAL     setscale(double sca); 
double  FAR PASCAL getscale(); 
double  FAR PASCAL getbasex(); 
double  FAR PASCAL getbasey(); 
 
 
int FAR PASCAL      npline(int n,...); 
int FAR PASCAL      pline(double x1,double y1,double x2,double y2); 
int FAR PASCAL      ppolygon(int n,...); 
int FAR PASCAL      nline(int n,...); 
int FAR PASCAL      lpolygon(int n,...); 
int FAR PASCAL      Strlen(char *str); 
int FAR PASCAL      wsolid(double x1,double y1,double x2,double y2, 
		double x3,double y3,double x4,double y4); 
 
#pragma pack() 
#undef int 
#endif