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

📄 main.c

📁 AutoCAD DWG-file viewer
💻 C
字号:
/****************************************************************/
/*			COPYRIGHT NOTICE			*/
/*			----------------			*/
/*  All software in this listing remain the strict copyright	*/
/*  of Ilija Kovacevic and cannot be copied or used in any way	*/
/*  except by written permission of Ilija Kovacevic.		*/
/*								*/
/*	Copyright (c) 1992 Ilija Kovacevic			*/
/*	www.kov.com   email ilija@kov.com			*/
/****************************************************************/

#include <setjmp.h>
#include "dwgin.h"

static jmp_buf exception_jumper;
static boolean dump;
static boolean create;

PUBLIC void warning( char *fmt,... )
               
{
va_list ap;
char message[ 256 ];

va_start( ap,fmt ); 
vsprintf( message, fmt, ap );   
va_end( ap );
printf( "%s\n",message );
}


PRIVATE void get_options( int *argc,char *argv[] )

{
int argument,parameter;

/* go along the list of command line arguments and pick out those that begin
with '-'.  These are options */

for ( argument = 1; argument < *argc; ++argument )
	{
	if ( *argv[ argument ] EQ '-' )  /* if the argument is an option */
		{
		/* option parameter */
		if ( strcmp( argv[ argument ],"-c" ) EQ 0 ) create = true;
		if ( strcmp( argv[ argument ],"-d" ) EQ 0 ) debugger = true;
		if ( strcmp( argv[ argument ],"-v" ) EQ 0 ) verbose = true;
		if ( strcmp( argv[ argument ],"-D" ) EQ 0 ) dump = true;

		/* remove this argument from list by moving the remaining arguments left */
		for ( parameter = argument; parameter < *argc; ++parameter )
			{
			argv[ parameter ] = argv[ parameter + 1 ];
			}
		--argument;	/* do no skip, this will be incremented in for loop */
		--*argc;		/* 1 less parameter now as the option has been removed */
		}
	}
}


PRIVATE void help( void )

{
printf( "\n" );
printf( "\n" );
printf( "\n" );
printf( "\n" );
printf( "Dxfout - AutoCAD dxfout utility\n" );
printf( "Version 1.00 Beta. Copyright (c) 1992 Ilija Kovacevic\n" );
printf( "-----------------------------------------------------\n" );
printf( "\n" );
printf( "USAGE\n" );
printf( "dxfout <drawing_name>         e.g. dxfout columbia\n" );
printf( "\n" );
printf( "\n" );
}


PRIVATE int catch_exception( void ) 

{ 
return( setjmp( exception_jumper ) );
}


PUBLIC int main( int argc,char *argv[] )

{
AcadDrawing *drawing;
char full_name[ 256 ];


if ( catch_exception() ) 
	{
	printf( "Error\n" );
	exit( 0 );
	}
get_options( &argc,argv );				/* set up for command line options */

if ( argc <= 1 ) return 1;
strcpy( full_name,argv[ 1 ] );
set_extension( full_name,"dwg" );
drawing = AcadDrawing__create( full_name );
AcadDrawing__read( drawing );
if ( dump ) 
	{
	AcadDrawing__dump_to_debug_file( drawing );
	exit( 0 );
	} 
if ( argc EQ 2 ) AcadDrawing__dxfout( drawing,argv[ 1 ] );
else if ( argc EQ 3 ) AcadDrawing__dxfout( drawing,argv[ 2 ] );
else
	{
	help();
	return( 1 );
	}
if ( create ) AcadDrawing__write( drawing,"test.dwg" );
return( 0 );
}


PUBLIC void throw_exception( char *fmt, ... )

{
va_list ap;
char status[ 80 ];

va_start( ap,fmt );
vsprintf( status,fmt,ap );   
va_end( ap );
warning( status );
longjmp( exception_jumper,1 );
}


PUBLIC void terminate( int exit_code )

{
exit( exit_code );
}


PUBLIC void read_error( char *fmt, ... )

{
va_list ap;
char status[ 80 ];

va_start( ap,fmt );
vsprintf( status,fmt,ap );   
va_end( ap );
printf( "\nError : %s\n",status );
exit( 0 );
}

⌨️ 快捷键说明

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