⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 header.c

📁 AutoCAD DWG-file viewer
💻 C
📖 第 1 页 / 共 4 页
字号:
	dprintf( "\tIUNITMODE %d\n",me->unitmode );	
	dprintf( "\tDIMFRAC %lf\n",me->dimtfac );
	dprintf( "\tPUCSORG %lf,%lf,%lf\n",me->pucsorg_x,me->pucsorg_y,me->pucsorg_z );
	dprintf( "\tPUCSXDIR %lf,%lf,%lf \n",me->pucsxdir_x,me->pucsxdir_y,me->pucsxdir_z );
	dprintf( "\ttPUCSYDIR  %lf,%lf,%lf\n",me->pucsydir_x,me->pucsydir_y,me->pucsydir_z );
	dprintf( "\tTILEMODE %d\n",me->tilemode );
	dprintf( "\tPEXTMIN %lf,%lf,%lf\n",me->pextmin_x,me->pextmin_x,me->pextmin_z );
	dprintf( "\tPEXTMAX %lf,%lf,%lf\n",me->pextmax_x,me->pextmax_y,me->pextmax_z );
	dprintf( "\tPLIMMIN %lf,%lf\n",me->plimmin_x,me->plimmin_y);
	dprintf( "\tPLIMMAX %lf,%lf\n",me->plimmax_x,me->plimmax_y );
	dprintf( "\tPINSBASE %lf,%lf,%lf\n",me->pinsbase_x,me->pinsbase_y,me->pinsbase_z );
	dprintf( "\tMAXACTVP %d\n",me->maxactvp );
	dprintf( "\tDIMGAP %lf\n",me->dimgap );
 	dprintf( "\tVISTRETAIN %d\n",me->visretain );
 	dprintf( "\tPELEVATION %lf\n",me->pelevation ); 
       }
#endif
}


PUBLIC void AcadHeader__read( AcadHeader *me )

{
unsigned header_size;
char *buffer;
INT16 read_size;

__drawing->acad11 = __drawing->acad11 = __drawing->acad26 = __drawing->acad9 = __drawing->acad10 = false;
if ( read( __drawing->source_file,( char * )&me->acadver,sizeof( me->acadver ) ) NEQ sizeof( me->acadver ) ) read_error( "Not an AutoCAD drawing" );
if ( strcmp( me->acadver,"AC1002" ) EQ 0 ) 
        {
        __drawing->acad25 = true;
        header_size = 0x3a1 /* some start at 0x36f */;
        }
else if ( strcmp( me->acadver,"AC1003" ) EQ 0 ) 
        {
        __drawing->acad26 = true;
        header_size = 0x3d5;
        }
else if ( strcmp( me->acadver,"AC1004" ) EQ 0 ) 
        {
        __drawing->acad9 = true;
        header_size = 0x3ef;
        }
else if ( strcmp( me->acadver,"AC1005" ) EQ 0 ) read_error( "Unknown acad version AC1005" );
else if ( strcmp( me->acadver,"AC1006" ) EQ 0 ) 
        {
        __drawing->acad10 = true;
        header_size = 0x51e;
        }
else if ( strcmp( me->acadver,"AC1008" ) EQ 0 ) 
        {
        __drawing->acad11 = true;
        header_size = 0x6cd;
        }
else if ( strcmp( me->acadver,"AC1009" ) EQ 0 ) 
        {
        __drawing->acad11 = true;
	header_size = 0x6cd;
	}
else read_error( "Unknown acad version" );
lseek( __drawing->source_file,0L,SEEK_SET ); /* start again from begining of file */
buffer = ( char * )malloc( header_size );
if ( !buffer ) read_error( "Cannot create header buffer %x",header_size );
if ( ( read_size = read( __drawing->source_file,buffer,header_size ) ) NEQ header_size ) 
	{
	read_error( "corrupt AutoCAD drawing %xH read %xH requested",read_size,header_size );
	}

me->entities_start = convert_INT32( ( INT32 * )( buffer+0x14 ) ) ;
me->block_names_start = convert_INT32( ( INT32 * )( buffer+0x18 ) );  /* THIS ALSO APPEARS AT 0x32 */
me->blocks_start = convert_INT32( ( INT32 * )( buffer+0x1c ) );
me->indirects_start = convert_INT32( ( INT32 * )( buffer+0x24 ) );  
me->block_name_size = convert_INT16( ( INT16 * )( buffer+0x2c ) );
me->blocks = convert_INT16( ( INT16 * )( buffer+0x2e ) );
me->layer_size = convert_INT16( ( INT16 * )( buffer+0x36 ) );  
me->layers = convert_INT16( ( INT16 * )( buffer+0x38 ) );  
me->layers_start = convert_INT32( ( INT32 * )( buffer+0x3c ) );  
me->font_styles_size = convert_INT16( ( INT16 * )( buffer+0x40 ) );  
me->styles = convert_INT16( ( INT16 * )( buffer+0x42 ) );
me->font_styles_start = convert_INT32( ( INT32 * )( buffer+0x46 ) );  
me->next_entity = convert_INT16( ( INT16 * )( buffer+0x47 ) );
me->layer = convert_INT16( ( INT16 * )( buffer+0x48 ) );  
me->line_type_size = convert_INT16( ( INT16 * )( buffer+0x4a ) );  
me->line_types = convert_INT16( ( INT16 * )( buffer+0x4c ) );
me->line_types_start = convert_INT32( ( INT32 * )( buffer+0x50 ) );  
me->view_size = convert_INT16( ( INT16 * )( buffer+0x54 ) );  
me->views = convert_INT16( ( INT16 * )( buffer+0x56 ) );
me->views_start = convert_INT32( ( INT32 * )( buffer+0x5a ) );  
me->insbase_x = convert_DOUBLE( ( DOUBLE * )( buffer+0x5e ) );
me->insbase_y = convert_DOUBLE( ( DOUBLE * )( buffer+0x66 ) );
me->insbase_z = convert_DOUBLE( ( DOUBLE * )( buffer+0x6e ) );
me->entities = convert_INT16( ( INT16 * )( buffer+0x76 ) );  
me->plinegen = convert_INT16( ( INT16 * )( buffer+0x76 ) );
me->extmin_x = convert_DOUBLE( ( DOUBLE * )( buffer+0x78 ) );
me->extmin_y = convert_DOUBLE( ( DOUBLE * )( buffer+0x80 ) );
me->extmin_z = convert_DOUBLE( ( DOUBLE * )( buffer+0x88 ) );
me->extmax_x = convert_DOUBLE( ( DOUBLE * )( buffer+0x90 ) );
me->extmax_y = convert_DOUBLE( ( DOUBLE * )( buffer+0x98 ) );
me->extmax_z = convert_DOUBLE( ( DOUBLE * )( buffer+0xa0 ) );
me->limmin_x = convert_DOUBLE( ( DOUBLE * )( buffer+0xa8 ) );
me->limmin_y = convert_DOUBLE( ( DOUBLE * )( buffer+0xb0 ) );
me->limmax_x = convert_DOUBLE( ( DOUBLE * )( buffer+0xb8 ) );
me->limmax_y = convert_DOUBLE( ( DOUBLE * )( buffer+0xc0 ) );
me->viewctr_x = convert_DOUBLE( ( DOUBLE * )( buffer+0xc8 ) );
me->viewctr_y = convert_DOUBLE( ( DOUBLE * )( buffer+0xd0 ) );
me->viewsize = convert_DOUBLE( ( DOUBLE * )( buffer+0xe0 ) );
me->snapmode = convert_INT16( ( INT16 * )( buffer+0xe8 ) );
me->snapunit_x = convert_DOUBLE( ( DOUBLE * )( buffer+0xea ) );
me->snapunit_y = convert_DOUBLE( ( DOUBLE * )( buffer+0xf2 ) );
me->snapbase_x = convert_DOUBLE( ( DOUBLE * )( buffer+0xfa ) );
me->snapbase_y = convert_DOUBLE( ( DOUBLE * )( buffer+0x102 ) );
me->snapang = convert_DOUBLE( ( DOUBLE * )( buffer+0x10a ) );
me->snapstyle = convert_INT16( ( INT16 * )( buffer+0x112 ) );
me->snapisopair = convert_INT16( ( INT16 * )( buffer+0x114 ) );
me->gridmode = convert_INT16( ( INT16 * )( buffer+0x116 ) );
me->gridunit_x = convert_DOUBLE( ( DOUBLE * )( buffer+0x118 ) );
me->gridunit_y = convert_DOUBLE( ( DOUBLE * )( buffer+0x120 ) );
me->orthomode = convert_INT16( ( INT16 * )( buffer+0x128 ) );
me->regenmode = convert_INT16( ( INT16 * )( buffer+0x12a ) );
me->fillmode = convert_INT16( ( INT16 * )( buffer+0x12c ) );
me->qtextmode = convert_INT16( ( INT16 * )( buffer+0x12e ) );
me->dragmode = convert_INT16( ( INT16 * )( buffer+0x130 ) );
me->ltscale = convert_DOUBLE( ( DOUBLE * )( buffer+0x132 ) );
me->text_size = convert_DOUBLE( ( DOUBLE * )( buffer+0x13a ) );
me->tracewid = convert_DOUBLE( ( DOUBLE * )( buffer+0x142 ) );
me->clayer = convert_INT16( ( INT16 * )( buffer+0x14a ) );
me->psltscale = convert_INT16( ( INT16 * )( buffer+0x156 ) );
me->treedepth = convert_INT16( ( INT16 * )( buffer+0x158 ) );
me->lunits = convert_INT16( ( INT16 * )( buffer+0x164 ) );
me->luprec = convert_INT16( ( INT16 * )( buffer+0x166 ) );
me->axismode = convert_INT16( ( INT16 * )( buffer+0x168 ) );
me->axisunit_x = convert_DOUBLE( ( DOUBLE * )( buffer+0x16a ) );
me->axisunit_y = convert_DOUBLE( ( DOUBLE * )( buffer+0x172 ) );
me->sketchinc = convert_DOUBLE( ( DOUBLE * )( buffer+0x17a ) );
me->filletrad = convert_DOUBLE( ( DOUBLE * )( buffer+0x182 ) );
me->aunits = convert_INT16( ( INT16 * )( buffer+0x18a ) );
me->auprec = convert_INT16( ( INT16 * )( buffer+0x18c ) );
me->text_style = convert_INT16( ( INT16 * )( buffer+0x18e ) );
me->osmode = convert_INT16( ( INT16 * )( buffer+0x190 ) );
me->attmode = convert_INT16( ( INT16 * )( buffer+0x192 ) );
strcpy( me->menu,buffer+0x194 );
me->dimscale = convert_DOUBLE( ( DOUBLE * )( buffer+0x1a3 ) );
me->dimasz = convert_DOUBLE( ( DOUBLE * )( buffer+0x1ab ) ); 
me->dimexo = convert_DOUBLE( ( DOUBLE * )( buffer+0x1b3 ) );
me->dimdli = convert_DOUBLE( ( DOUBLE * )( buffer+0x1bb ) );
me->dimexe = convert_DOUBLE( ( DOUBLE * )( buffer+0x1c3 ) );
me->dimtp = convert_DOUBLE( ( DOUBLE * )( buffer+0x1cb ) );  
me->dimtm = convert_DOUBLE( ( DOUBLE * )( buffer+0x1d3 ) );
me->dimtxt = convert_DOUBLE( ( DOUBLE * )( buffer+0x1db ) );
me->dimcen = convert_DOUBLE( ( DOUBLE * )( buffer+0x1e3 ) );
me->dimtsz = convert_DOUBLE( ( DOUBLE * )( buffer+0x1eb ) );
me->dimtol = *( buffer+0x1f3 );
me->dimlim = *( buffer+0x1f4 );
me->dimtih = *( buffer+0x1f5 );
me->dimtoh = *( buffer+0x1f6 );
me->dimse1 = *( buffer+0x1f7 );
me->dimse2 = *( buffer+0x1f8 );
me->dimtad = *( buffer+0x1f9 );
me->limcheck = convert_INT16( ( INT16 * )( buffer+0x1fa ) );
me->elevation = convert_DOUBLE( ( DOUBLE * )( buffer+0x229 ) );
me->thickness = convert_DOUBLE( ( DOUBLE * )( buffer+0x231 ) );
me->viewdir_x = convert_DOUBLE( ( DOUBLE * )( buffer+0x239 ) );
me->viewdir_y = convert_DOUBLE( ( DOUBLE * )( buffer+0x241 ) );
me->viewdir_z = convert_DOUBLE( ( DOUBLE * )( buffer+0x249 ) );
me->blipmode = convert_INT16( ( INT16 * )( buffer+0x2e3 ) );
me->dimzin = *( buffer+0x2e5 );
me->dimrnd = convert_DOUBLE( ( DOUBLE * )( buffer+0x2e6 ) );
me->dimdle = convert_DOUBLE( ( DOUBLE * )( buffer+0x2ee ) );
strcpy( me->dimblk,buffer+0x2f6 );
me->fastcircle = convert_INT16( ( INT16 * )( buffer+0x317 ) );
me->coords = convert_INT16( ( INT16 * )( buffer+0x319 ) );
me->cecolor = convert_INT16( ( INT16 * )( buffer+0x31b ) );
me->celtype_index = *( buffer+0x31d );
me->celtype = *( buffer+0x31e );
me->tdcreate_days = convert_INT32( ( INT32 * )( buffer+0x31f ) );   
me->tdcreate_fraction = convert_INT32( ( INT32 * )( buffer+0x323 ) );       
me->tdupdate_days = convert_INT32( ( INT32 * )( buffer+0x327 ) );
me->tdupdate_fraction = convert_INT32( ( INT32 * )( buffer+0x32b ) );
me->tdindwg_days = convert_INT32( ( INT32 * )( buffer+0x32f ) );
me->tdindwg_fraction = convert_INT32( ( INT32 * )( buffer+0x333 ) );
me->tdusrtimer_days = convert_INT32( ( INT32 * )( buffer+0x337 ) );
me->tdusrtimer_fraction = convert_INT32( ( INT32 * )( buffer+0x33b ) );
me->usrtimer = convert_INT16( ( INT16 * )( buffer+0x33f ) );
me->fastzoom = convert_INT16( ( INT16 * )( buffer+0x341 ) );
me->skpoly = convert_INT16( ( INT16 * )( buffer+0x343 ) );
me->angbase = convert_DOUBLE( ( DOUBLE *)(buffer+0x353) );
me->angdir = convert_INT16( ( INT16 * )( buffer+0x35b ) );
me->pdmode = convert_INT16( ( INT16 * )( buffer+0x35d ) );
me->pdsize = convert_DOUBLE( ( DOUBLE * )( buffer+0x35f ) );
me->plinewid = convert_DOUBLE( ( DOUBLE * )( buffer+0x367 ) );
me->useri1 = convert_INT16( ( INT16 * )( buffer+0x36f ) );
me->useri2 = convert_INT16( ( INT16 * )( buffer+0x371 ) );
me->useri3 = convert_INT16( ( INT16 * )( buffer+0x373 ) );
me->useri4 = convert_INT16( ( INT16 * )( buffer+0x375 ) );
me->useri5 = convert_INT16( ( INT16 * )( buffer+0x377 ) );
me->userr1 = convert_DOUBLE( ( DOUBLE * )( buffer+0x379 ) );
me->userr2 = convert_DOUBLE( ( DOUBLE * )( buffer+0x381 ) );
me->userr3 = convert_DOUBLE( ( DOUBLE * )( buffer+0x389 ) );
me->userr4 = convert_DOUBLE( ( DOUBLE * )( buffer+0x391 ) );
me->userr5 = convert_DOUBLE( ( DOUBLE * )( buffer+0x399 ) );
if ( __drawing->acad26 OR __drawing->acad9 OR __drawing->acad10 OR __drawing->acad11 )
        {
        me->dimalt = *( buffer+0x3a1 );
        me->dimaltd = *( buffer+0x3a2 );
        me->dimaso = *( buffer+0x3a3 );  /* 2.6 */
        me->dimsho = *( buffer+0x3a4 );  /* 2.6 */
	strcpy( me->dimpost,buffer+0x3a5 );
        strcpy( me->dimapost,buffer+0x3b5 );
        me->dimaltf = convert_DOUBLE( ( DOUBLE * )( buffer+0x3c5 ) );
        me->dimlfac = convert_DOUBLE( ( DOUBLE * )( buffer+0x3cd ) );
        }
if ( __drawing->acad9 OR __drawing->acad10 OR __drawing->acad11 )
        {
        me->splinesegs = convert_INT16( ( INT16 * )( buffer+0x3d5 ) );
        me->splframe = convert_INT16( ( INT16 * )( buffer+0x3d7 ) );
        me->attreq = convert_INT16( ( INT16 * )( buffer+0x3d9 ) );
        me->attdia = convert_INT16( ( INT16 * )( buffer+0x3db ) );
        me->chamfera = convert_DOUBLE( ( DOUBLE * )( buffer+0x3dd ) );
        me->chamferb = convert_DOUBLE( ( DOUBLE * )( buffer+0x3e5 ) );
        me->mirrtext = convert_INT16( ( INT16 * )( buffer+0x3ed ) );
        }
if ( __drawing->acad10 OR __drawing->acad11 )
        {
        me->ucss_size = convert_INT16( ( INT16 * )( buffer+0x3ef ) );  
        me->ucss = convert_INT16( ( INT16 * )( buffer+0x3f1 ) );  
        me->ucss_start = convert_INT32( ( INT32 * )( buffer+0x3f5 ) ); /* 6 INT32 ? see next */
       	me->dwgcodepage  = convert_INT16( ( INT16 * )( buffer+0x3f9 ) );
        me->ucsorg_x = convert_DOUBLE( ( DOUBLE * )( buffer+0x3fb ) );
        me->ucsorg_y = convert_DOUBLE( ( DOUBLE * )( buffer+0x403 ) );
        me->ucsorg_z = convert_DOUBLE( ( DOUBLE * )( buffer+0x40b ) );
        me->ucsxdir_x = convert_DOUBLE( ( DOUBLE * )( buffer+0x413 ) );
        me->ucsxdir_y = convert_DOUBLE( ( DOUBLE * )( buffer+0x41b ) );
        me->ucsxdir_z = convert_DOUBLE( ( DOUBLE * )( buffer+0x423 ) );
        me->ucsydir_x = convert_DOUBLE( ( DOUBLE * )( buffer+0x42b ) );
        me->ucsydir_y = convert_DOUBLE( ( DOUBLE * )( buffer+0x433 ) );
        me->ucsydir_z = convert_DOUBLE( ( DOUBLE * )( buffer+0x43b ) );
        me->target_x = convert_DOUBLE( ( DOUBLE * )( buffer+0x443 ) );
        me->target_y = convert_DOUBLE( ( DOUBLE * )( buffer+0x44b ) );
        me->target_z = convert_DOUBLE( ( DOUBLE * )( buffer+0x453 ) );
        me->lens_length = convert_DOUBLE( ( DOUBLE * )( buffer+0x45b ) );
        me->twist_angle = convert_DOUBLE( ( DOUBLE * )( buffer+0x463 ) );
        me->front_clipping_plane = convert_DOUBLE( ( DOUBLE * )( buffer+0x46b ) );
        me->back_clipping_plane = convert_DOUBLE( ( DOUBLE * )( buffer+0x473 ) );
        me->viewmode = convert_INT16( ( INT16 * )( buffer+0x47b ) );
        me->dimtofl = *( buffer+0x47d );
        strcpy( me->dimblka,buffer+0x47e );
        strcpy( me->dimblkb,buffer+0x49f );
        me->dimsah = *( buffer+0x4c0 );
        me->dimtix = *( buffer+0x4c1 );
        me->dimsoxd = *( buffer+0x4c2 );
        me->dimtvp = convert_DOUBLE( ( DOUBLE * )( buffer+0x4c3 ) );
        me->handling = convert_INT16( ( INT16 * )( buffer+0x4ec ) );
        me->handseed = convert_INT16( ( INT16 * )( buffer+0x4f4 ) );
        me->surfu = convert_INT16( ( INT16 * )( buffer+0x4f6 ) );
        me->surfv = convert_INT16( ( INT16 * )( buffer+0x4f8 ) );
        me->surftype = convert_INT16( ( INT16 * )( buffer+0x4fa ) );
        me->surftab1 = convert_INT16( ( INT16 * )( buffer+0x4fc ) );
        me->surftab2 = convert_INT16( ( INT16 * )( buffer+0x4fe ) );
        me->viewports_size = convert_INT16( ( INT16 * )( buffer+0x500 ) );
        me->viewports = convert_INT16( ( INT16 * )( buffer+0x502 ) );
	me->dimstyle = convert_INT16( ( INT16 * )( buffer+0x524 ) );
        me->viewports_start = convert_INT32( ( INT32 * )( buffer+0x506 ) );
        me->flatland = convert_INT16( ( INT16 * )( buffer+0x50a ) );
        me->splinetype = convert_INT16( ( INT16 * )( buffer+0x50c ) );
        me->ucsicon = convert_INT16( ( INT16 * )( buffer+0x50e ) );
        me->ucs = convert_INT16( ( INT16 * )( buffer+0x510 ) );  
        me->dwgmgr_start = convert_INT32( ( INT32 * )( buffer+0x518 ) );
        me->worldview = *( buffer+0x51c );
        }
if ( __drawing->acad11 )
	{
        me->applications_size = convert_INT16( ( INT16 * )( buffer+0x512 ) );
        me->applications = convert_INT16( ( INT16 * )( buffer+0x514 ) );
        me->applications_start = convert_INT32( ( INT32 * )( buffer+0x518 ) );
	me->dimstyles_size = convert_INT16( ( INT16 * )( buffer+0x522 ) );
	me->dimstyles = convert_INT16( ( INT16 * )( buffer+0x524 ) );
        me->dimstyles_start = convert_INT32( ( INT32 * )( buffer+0x528 ) );
	me->dimclrd = convert_INT16( ( INT16 * )( buffer+0x531 ) );
	me->dimclre = convert_INT16( ( INT16 * )( buffer+0x533 ) );
	me->dimclrt = convert_INT16( ( INT16 * )( buffer+0x535 ) );
	me->shadedge = convert_INT16( ( INT16 * )( buffer+0x537 ) );
	me->shadedif = convert_INT16( ( INT16 * )( buffer+0x539 ) );
	me->unitmode = convert_INT16( ( INT16 * )( buffer+0x53d ) );
	me->dimtfac = convert_DOUBLE( ( DOUBLE * )( buffer+0x5df ) );
	me->pucsorg_x = convert_DOUBLE( ( DOUBLE * )( buffer+0x5e7 ) );
	me->pucsorg_y = convert_DOUBLE( ( DOUBLE * )( buffer+0x5ef ) );
	me->pucsorg_z = convert_DOUBLE( ( DOUBLE * )( buffer+0x5f7 ) );
	me->pucsxdir_x = convert_DOUBLE( ( DOUBLE * )( buffer+0x5ff ) );
	me->pucsxdir_y = convert_DOUBLE( ( DOUBLE * )( buffer+0x607 ) );
	me->pucsxdir_z = convert_DOUBLE( ( DOUBLE * )( buffer+0x60f ) );
	me->pucsydir_x = convert_DOUBLE( ( DOUBLE * )( buffer+0x617 ) );
	me->pucsydir_y = convert_DOUBLE( ( DOUBLE * )( buffer+0x61f ) );
	me->pucsydir_z = convert_DOUBLE( ( DOUBLE * )( buffer+0x627 ) );
        me->pucs = convert_INT16( ( INT16 * )( buffer+0x62f ) );  
	me->tilemode = convert_INT16( ( INT16 * )( buffer+0x631 ) );
	me->pextmin_x = convert_DOUBLE( ( DOUBLE * )( buffer+0x637 ) );
	me->pextmin_y = convert_DOUBLE( ( DOUBLE * )( buffer+0x63f ) );
	me->pextmin_z = convert_DOUBLE( ( DOUBLE * )( buffer+0x647 ) );
	me->pextmax_x = convert_DOUBLE( ( DOUBLE * )( buffer+0x64f ) );
	me->pextmax_y = convert_DOUBLE( ( DOUBLE * )( buffer+0x657 ) );
	me->pextmax_z = convert_DOUBLE( ( DOUBLE * )( buffer+0x65f ) );
	me->plimmin_x = convert_DOUBLE( ( DOUBLE * )( buffer+0x667 ) );
	me->plimmin_y = convert_DOUBLE( ( DOUBLE * )( buffer+0x66f ) );
	me->plimmax_x = convert_DOUBLE( ( DOUBLE * )( buffer+0x677 ) );
	me->plimmax_y = convert_DOUBLE( ( DOUBLE * )( buffer+0x67f ) );
	me->pinsbase_x = convert_DOUBLE( ( DOUBLE * )( buffer+0x687 ) );
	me->pinsbase_y = convert_DOUBLE( ( DOUBLE * )( buffer+0x68f ) );
	me->pinsbase_z = convert_DOUBLE( ( DOUBLE * )( buffer+0x697 ) );
	me->maxactvp = convert_INT16( ( INT16 * )( buffer+0x6a9 ) );
	me->dimgap = convert_DOUBLE( ( DOUBLE * )( buffer+0x6ab ) );
  	me->pelevation = convert_DOUBLE( ( DOUBLE * )( buffer+0x6b3 ) ); 
	me->visretain = *( buffer+0x6bb );
       }
}


PUBLIC void AcadHeader__dxfout( AcadHeader *me )

{
char handseed_name[ 80 ];

#ifndef WIN31
dxf_string( 0,"SECTION" );
dxf_string( 2,"HEADER" );

dxf_string( 9,"$ACADVER" );
if ( __drawing->acad25 ) dxf_string( 1,"AC1009" );
else if ( __drawing->acad25 ) dxf_string( 1,"AC1002" );
else if ( __drawing->acad26 ) dxf_string( 1,"AC1003" );
else if ( __drawing->acad9 ) dxf_string( 1,"AC1004" );
else if ( __drawing->acad10 ) dxf_string( 1,"AC1006" );
else if ( __drawing->acad11 ) dxf_string( 1,"AC1009" );

dxf_string( 9,"$INSBASE" ); 
dxf_DOUBLE( 10,me->insbase_x ); 
dxf_DOUBLE( 20,me->insbase_y ); 
dxf_DOUBLE( 30,me->insbase_z );

dxf_string( 9,"$EXTMIN" ); 
dxf_DOUBLE( 10,me->extmin_x );
dxf_DOUBLE( 20,me->extmin_y );
dxf_DOUBLE( 30,me->extmin_z );

dxf_string( 9,"$EXTMAX" );
dxf_DOUBLE( 10,me->extmax_x );
dxf_DOUBLE( 20,me->extmax_y );
dxf_DOUBLE( 30,me->extmax_z );

dxf_string( 9,"$LIMMIN" );
dxf_DOUBLE( 10,me->limmin_x );
dxf_DOUBLE( 20,me->limmin_y );

dxf_string( 9,"$LIMMAX" );
dxf_DOUBLE( 10,me->limmax_x );
dxf_DOUBLE( 20,me->limmax_y );

dxf_string( 9,"$ORTHOMODE" );
dxf_INT16( 70,me->orthomode );

dxf_string( 9,"$REGENMODE" );
dxf_INT16( 70,me->regenmode );

dxf_string( 9,"$FILLMODE" );
dxf_INT16( 70,me->fillmode );

dxf_string( 9,"$QTEXTMODE" );
dxf_INT16( 70,me->qtextmode );

dxf_string( 9,"$MIRRTEXT" );
dxf_INT16( 70,me->mirrtext );

dxf_string( 9,"$DRAGMODE" );
dxf_INT16( 70,me->dragmode );

dxf_string( 9,"$LTSCALE" );
dxf_DOUBLE( 40,me->ltscale );

dxf_string( 9,"$OSMODE" );
dxf_INT16( 70,me->osmode );

dxf_string( 9,"$ATTMODE" );
dxf_INT16( 70,me->attmode );

dxf_string( 9,"$TEXTSIZE" );
dxf_DOUBLE( 40,me->text_size );

dxf_string( 9,"$TRACEWID" );
dxf_DOUBLE( 40,me->tracewid );

dxf_string( 9,"$TEXTSTYLE" );
dxf_string(  7,style_name( me->text_style ) );

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -