📄 header.c
字号:
dxf_INT16( 70,me->visretain );
dxf_string( 9,"$PLINEGEN" );
dxf_INT16( 70,me->plinegen );
dxf_string( 9,"$PSLTSCALE" );
dxf_INT16( 70,me->psltscale );
dxf_string( 9,"$TREEDEPTH" );
dxf_INT16( 70,me->treedepth );
dxf_string( 9,"$DWGCODEPAGE" );
switch( me->dwgcodepage )
{
case 1 :dxf_string( 3,"ascii" );
break;
case 2 :dxf_string( 3,"iso8859-1" );
break;
case 3 :dxf_string( 3,"iso8859-2" );
break;
case 4 :dxf_string( 3,"iso8859-3" );
break;
case 5 :dxf_string( 3,"iso8859-4" );
break;
case 6 :dxf_string( 3,"iso8859-5" );
break;
case 7 :dxf_string( 3,"iso8859-6" );
break;
case 8 :dxf_string( 3,"iso8859-7" );
break;
case 9 :dxf_string( 3,"iso8859-8" );
break;
case 10 :dxf_string( 3,"iso8859-9" );
break;
case 11 :dxf_string( 3,"dos437" );
break;
case 12 :dxf_string( 3,"dos850" );
break;
case 13 :dxf_string( 3,"dos852" );
break;
case 14 :dxf_string( 3,"dos855" );
break;
case 15 :dxf_string( 3,"dos857" );
break;
case 16 :dxf_string( 3,"dos860" );
break;
case 17 :dxf_string( 3,"dos861" );
break;
case 18 :dxf_string( 3,"dos863" );
break;
case 19 :dxf_string( 3,"dos864" );
break;
case 20 :dxf_string( 3,"dos865" );
break;
case 21 :dxf_string( 3,"dos869" );
break;
case 22 :dxf_string( 3,"dos932" );
break;
case 23 :dxf_string( 3,"mac-roman" );
break;
case 0 :
default :dxf_string( 3,"undefined" );
break;
}
}
if ( ( !__drawing->acad10 AND !__drawing->acad11 ) OR me->flatland )
{
dxf_string( 9,"$VIEWCTR" );
dxf_DOUBLE( 10,me->viewctr_x );
dxf_DOUBLE( 20,me->viewctr_y );
dxf_string( 9,"$VIEWSIZE" );
dxf_DOUBLE( 40,me->viewsize );
dxf_string( 9,"$SNAPMODE" );
dxf_INT16( 70,me->snapmode );
dxf_string( 9,"$SNAPUNIT" );
dxf_DOUBLE( 10,me->snapunit_x );
dxf_DOUBLE( 20,me->snapunit_y );
dxf_string( 9,"$SNAPBASE" );
dxf_DOUBLE( 10,me->snapbase_x );
dxf_DOUBLE( 20,me->snapbase_y );
dxf_string( 9,"$SNAPANG" );
dxf_DOUBLE( 50,me->snapang );
dxf_string( 9,"$SNAPSTYLE" );
dxf_INT16( 70,me->snapstyle );
dxf_string( 9,"$SNAPISOPAIR" );
dxf_INT16( 70,me->snapisopair );
dxf_string( 9,"$GRIDMODE" );
dxf_INT16( 70,me->gridmode );
dxf_string( 9,"$GRIDUNIT" );
dxf_DOUBLE( 10,me->gridunit_x );
dxf_DOUBLE( 20,me->gridunit_y );
dxf_string( 9,"$FASTZOOM" );
dxf_INT16( 70,me->fastzoom );
dxf_string( 9,"$VIEWDIR" );
dxf_DOUBLE( 10,me->viewdir_x );
dxf_DOUBLE( 20,me->viewdir_y );
dxf_DOUBLE( 30,me->viewdir_z );
}
dxf_string( 0,"ENDSEC" );
#endif
}
PUBLIC void AcadHeader__set_default( AcadHeader *me )
{
me = me;
}
PRIVATE void set_pointer( INT32 position, INT32 value )
{
#ifdef BIG_ENDIAN
INT32_reverse( &value );
#endif
lseek( __drawing->output_file,position,SEEK_SET );
write( __drawing->output_file,( char * )&value,sizeof( value ) );
}
void set_header_pointers( INT32 layers_start, INT32 font_styles_start,
INT32 line_types_start, INT32 views_start,
INT32 ucss_start, INT32 viewports_start,
INT32 blocks_start, INT32 indirect_start,
INT32 block_names_start, INT32 dwgmgr_start )
{
set_pointer( 0x18,block_names_start );
set_pointer( 0x32,block_names_start );
set_pointer( 0x1c,blocks_start );
set_pointer( 0x24,indirect_start );
set_pointer( 0x3c,layers_start );
set_pointer( 0x46,font_styles_start );
set_pointer( 0x50,line_types_start );
set_pointer( 0x5a,views_start );
set_pointer( 0x3f5,ucss_start );
set_pointer( 0x506,viewports_start );
set_pointer( 0x518,dwgmgr_start );
}
PRIVATE void set_UINT8( UINT8 value,unsigned char *p )
{
*p = value;
}
PRIVATE void set_INT16( INT16 value,unsigned char *p )
{
unsigned char *x;
int i;
#ifdef BIG_ENDIAN
INT16_reverse( &value );
#endif
x = ( unsigned char * )&value;
for ( i = 1; i <= 2; ++i ) *p++ = *x++;
}
PRIVATE void set_INT32( INT32 value ,unsigned char *p )
{
unsigned char *x;
int i;
#ifdef BIG_ENDIAN
INT32_reverse( &value );
#endif
x = ( unsigned char * )&value;
for ( i = 1; i <= 4; ++i ) *p++ = *x++;
}
PRIVATE void set_DOUBLE( DOUBLE value, unsigned char *p )
{
unsigned char *x;
int i;
#ifdef BIG_ENDIAN
DOUBLE_reverse( &value );
#endif
x = ( unsigned char * )&value;
for ( i = 1; i <= 8; ++i ) *p++ = *x++;
}
PUBLIC void AcadHeader__write( AcadHeader *me )
{
unsigned char *header;
header = ( unsigned char * )get_memory( DEFAULT_HEADER_SIZE );
memcpy( ( char * )header,( char * )default_header,DEFAULT_HEADER_SIZE );
set_INT16( me->blocks,header+0x2e );
set_INT16( me->layers,header+0x38 );
set_INT16( me->styles,header+0x42 );
set_INT16( me->layer,header+0x48 );
set_INT16( me->line_types,header+0x4c );
set_INT16( me->views,header+0x56 );
set_DOUBLE( me->insbase_x,header+0x5e );
set_DOUBLE( me->insbase_y,header+0x66 );
set_DOUBLE( me->insbase_z,header+0x6e );
set_INT16( me->plinegen,header+0x76 );
set_DOUBLE( me->extmin_x,header+0x78 );
set_DOUBLE( me->extmin_y,header+0x80 );
set_DOUBLE( me->extmin_z,header+0x88 );
set_DOUBLE( me->extmax_x,header+0x90 );
set_DOUBLE( me->extmax_y,header+0x98 );
set_DOUBLE( me->extmax_z,header+0xa0 );
set_DOUBLE( me->limmin_x,header+0xa8 );
set_DOUBLE( me->limmin_y,header+0xb0 );
set_DOUBLE( me->limmax_x,header+0xb8 );
set_DOUBLE( me->limmax_y,header+0xc0 );
set_DOUBLE( me->viewctr_x,header+0xc8 );
set_DOUBLE( me->viewctr_y,header+0xd0 );
set_DOUBLE( me->viewsize,header+0xe0 );
set_INT16( me->snapmode,header+0xe8 );
set_DOUBLE( me->snapunit_x,header+0xea );
set_DOUBLE( me->snapunit_y,header+0xf2 );
set_DOUBLE( me->snapbase_x,header+0xfa );
set_DOUBLE( me->snapbase_y,header+0x102 );
set_DOUBLE( me->snapang,header+0x10a );
set_INT16( me->snapstyle,header+0x112 );
set_INT16( me->snapisopair,header+0x114 );
set_INT16( me->gridmode,header+0x116 );
set_DOUBLE( me->gridunit_x,header+0x118 );
set_DOUBLE( me->gridunit_y,header+0x120 );
set_INT16( me->orthomode,header+0x128 );
set_INT16( me->regenmode,header+0x12a );
set_INT16( me->fillmode,header+0x12c );
set_INT16( me->qtextmode,header+0x12e );
set_INT16( me->dragmode,header+0x130 );
set_DOUBLE( me->ltscale,header+0x132 );
set_DOUBLE( me->text_size,header+0x13a );
set_DOUBLE( me->tracewid,header+0x142 );
set_INT16( me->clayer,header+0x14a );
set_INT16( me->psltscale,header+0x156 );
set_INT16( me->treedepth,header+0x158 );
set_INT16( me->lunits,header+0x164 );
set_INT16( me->luprec,header+0x166 );
set_INT16( me->axismode,header+0x168 );
set_DOUBLE( me->axisunit_x,header+0x16a );
set_DOUBLE( me->axisunit_y,header+0x172 );
set_DOUBLE( me->sketchinc,header+0x17a );
set_DOUBLE( me->filletrad,header+0x182 );
set_INT16( me->aunits,header+0x18a );
set_INT16( me->auprec,header+0x18c );
set_INT16( me->text_style,header+0x18e );
set_INT16( me->osmode,header+0x190 );
set_INT16( me->attmode,header+0x192 );
memcpy( ( char * )( header+0x194 ),me->menu,sizeof( me->menu ) );
set_DOUBLE( me->dimscale,header+0x1a3 );
set_DOUBLE( me->dimasz,header+0x1ab );
set_DOUBLE( me->dimexo,header+0x1b3 );
set_DOUBLE( me->dimdli,header+0x1bb );
set_DOUBLE( me->dimexe,header+0x1c3 );
set_DOUBLE( me->dimtp,header+0x1cb );
set_DOUBLE( me->dimtm,header+0x1d3 );
set_DOUBLE( me->dimtxt,header+0x1db );
set_DOUBLE( me->dimcen,header+0x1e3 );
set_DOUBLE( me->dimtsz,header+0x1eb );
set_UINT8( me->dimtol,header+0x1f3 );
set_UINT8( me->dimlim,header+0x1f4 );
set_UINT8( me->dimtih,header+0x1f5 );
set_UINT8( me->dimtoh,header+0x1f6 );
set_UINT8( me->dimse1,header+0x1f7 );
set_UINT8( me->dimse2,header+0x1f8 );
set_UINT8( me->dimtad,header+0x1f9 );
set_INT16( me->limcheck,header+0x1fa );
set_DOUBLE( me->elevation,header+0x229 );
set_DOUBLE( me->thickness,header+0x231 );
set_DOUBLE( me->viewdir_x,header+0x239 );
set_DOUBLE( me->viewdir_y,header+0x241 );
set_DOUBLE( me->viewdir_z,header+0x249 );
set_INT16( me->blipmode,header+0x2e3 );
set_UINT8( me->dimzin,header+0x2e5 );
set_DOUBLE( me->dimrnd,header+0x2e6 );
set_DOUBLE( me->dimdle,header+0x2ee );
memcpy( ( char * )( header+0x2f6 ),me->dimblk,sizeof( me->dimblk ) );
set_INT16( me->fastcircle,header+0x317 );
set_INT16( me->coords,header+0x319 );
set_INT16( me->cecolor,header+0x31b );
set_UINT8( me->celtype_index,header+0x31d );
set_UINT8( me->celtype,header+0x31e );
set_INT32( me->tdcreate_days,header+0x31f );
set_INT32( me->tdcreate_fraction,header+0x323 );
set_INT32( me->tdupdate_days,header+0x327 );
set_INT32( me->tdupdate_fraction,header+0x32b );
set_INT32( me->tdindwg_days,header+0x32f );
set_INT32( me->tdindwg_fraction,header+0x333 );
set_INT32( me->tdusrtimer_days,header+0x337 );
set_INT32( me->tdusrtimer_fraction,header+0x33b );
set_INT16( me->usrtimer,header+0x33f );
set_INT16( me->fastzoom,header+0x341 );
set_INT16( me->skpoly,header+0x343 );
set_DOUBLE( me->angbase,header+0x353 );
set_INT16( me->angdir,header+0x35b );
set_INT16( me->pdmode,header+0x35d );
set_DOUBLE( me->pdsize,header+0x35f );
set_DOUBLE( me->plinewid,header+0x367 );
set_INT16( me->useri1,header+0x36f );
set_INT16( me->useri2,header+0x371 );
set_INT16( me->useri3,header+0x373 );
set_INT16( me->useri4,header+0x375 );
set_INT16( me->useri5,header+0x377 );
set_DOUBLE( me->userr1,header+0x379 );
set_DOUBLE( me->userr2,header+0x381 );
set_DOUBLE( me->userr3,header+0x389 );
set_DOUBLE( me->userr4,header+0x391 );
set_DOUBLE( me->userr5,header+0x399 );
set_UINT8( me->dimalt,header+0x3a1 );
set_UINT8( me->dimaltd,header+0x3a2 );
set_UINT8( me->dimaso,header+0x3a3 );
set_UINT8( me->dimsho,header+0x3a4 );
memcpy( ( char * )( header+0x3a5 ),me->dimpost,sizeof( me->dimpost ) );
memcpy( ( char * )( header+0x3b5 ),me->dimapost,sizeof( me->dimapost ) );
set_DOUBLE( me->dimaltf,header+0x3c5 );
set_DOUBLE( me->dimlfac,header+0x3cd );
set_INT16( me->splinesegs,header+0x3d5 );
set_INT16( me->splframe,header+0x3d7 );
set_INT16( me->attreq,header+0x3d9 );
set_INT16( me->attdia,header+0x3db );
set_DOUBLE( me->chamfera,header+0x3dd );
set_DOUBLE( me->chamferb,header+0x3e5 );
set_INT16( me->mirrtext,header+0x3ed );
set_INT16( me->ucss,header+0x3f1 );
set_INT16( me->dwgcodepage,header+0x3f9 );
set_DOUBLE( me->ucsorg_x,header+0x3fb );
set_DOUBLE( me->ucsorg_y,header+0x403 );
set_DOUBLE( me->ucsorg_z,header+0x40b );
set_DOUBLE( me->ucsxdir_x,header+0x413 );
set_DOUBLE( me->ucsxdir_y,header+0x41b );
set_DOUBLE( me->ucsxdir_z,header+0x423 );
set_DOUBLE( me->ucsydir_x,header+0x42b );
set_DOUBLE( me->ucsydir_y,header+0x433 );
set_DOUBLE( me->ucsydir_z,header+0x43b );
set_DOUBLE( me->target_x,header+0x443 );
set_DOUBLE( me->target_y,header+0x44b );
set_DOUBLE( me->target_z,header+0x453 );
set_DOUBLE( me->lens_length,header+0x45b );
set_DOUBLE( me->twist_angle,header+0x463 );
set_DOUBLE( me->front_clipping_plane,header+0x46b );
set_DOUBLE( me->back_clipping_plane,header+0x473 );
set_INT16( me->viewmode,header+0x47b );
set_UINT8( me->dimtofl,header+0x47d );
memcpy( ( char * )( header+0x47e ),me->dimblka,sizeof( me->dimblka ) );
memcpy( ( char * )( header+0x49f ),me->dimblkb,sizeof( me->dimblkb ) );
set_UINT8( me->dimsah,header+0x4c0 );
set_UINT8( me->dimtix,header+0x4c1 );
set_UINT8( me->dimsoxd,header+0x4c2 );
set_DOUBLE( me->dimtvp,header+0x4c3 );
set_INT16( me->handling,header+0x4ec );
set_INT16( me->handseed,header+0x4f4 );
set_INT16( me->surfu,header+0x4f6 );
set_INT16( me->surfv,header+0x4f8 );
set_INT16( me->surftype,header+0x4fa );
set_INT16( me->surftab1,header+0x4fc );
set_INT16( me->surftab2,header+0x4fe );
/*set_INT16( me->viewports_size,header+0x500 );*/
set_INT16( me->viewports,header+0x502 );
set_INT16( me->dimstyle,header+0x524 );
set_INT16( me->flatland,header+0x50a );
set_INT16( me->splinetype,header+0x50c );
set_INT16( me->ucsicon,header+0x50e );
set_INT16( me->ucs,header+0x510 );
set_UINT8( me->worldview,header+0x51c );
put_array( ( char * )header,DEFAULT_HEADER_SIZE );
free( ( char * )header );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -