**
** NX8_Open1.c
**
** Description:
** Contains Unigraphics entry points for the application.
**
*****************************************************************************/
/* Include files */
#include <stdio.h>
#include <uf.h>
#include <uf_ui.h>
#include "stdio.h"
#include "math.h"
#include "string.h"
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
FILE*fp;
int i,gcode;
char fname[14],gvalue[65];
float xs[100],ys[100],zs[100],xe[100],ye[100],ze[100];
static int report_error( char *file, int line, char *call, int irc)
{
if (irc)
{
char err[133],
msg[133];
sprintf(msg, "*** ERROR code %d at line %d in %s:\n+++ ",
irc, line, file);
UF_get_fail_message(irc, err);
UF_print_syslog(msg, FALSE);
UF_print_syslog(err, FALSE);
UF_print_syslog("\n", FALSE);
UF_print_syslog(call, FALSE);
UF_print_syslog(";\n", FALSE);
if (!UF_UI_open_listing_window())
{
UF_UI_write_listing_window(msg);
UF_UI_write_listing_window(err);
UF_UI_write_listing_window("\n");
UF_UI_write_listing_window(call);
UF_UI_write_listing_window(";\n");
}
}
return(irc);
}
int scanline()
{
printf("Enter DXF file name:");
scanf("%s",fname);
strcat(fname,".dxf");
fp=fopen(fname,"r");
do
{
fscanf(fp,"%d",&gcode);
fscanf(fp,"%s",gvalue);
}
while(gcode!=2||strcmp(gvalue,"ENTITIES")!=0);
do
{
fscanf(fp,"%d",&gcode);
fscanf(fp,"%s",gvalue);
if(gcode==0&&strcmp(gvalue,"LINE")==0)outline();
}
while(gcode!=0||strcmp(gvalue,"ENDSEC")!=0);
fclose(fp);
return 0;
}
int outline()
{
do{fscanf(fp,"%d",&gcode);
if(gcode==10)
{i=i+1;
fscanf(fp,"%f",&xs[i]);
}
else
fscanf(fp,"%s",gvalue);
}while(gcode!=10);
fscanf(fp,"%d",&gcode);
fscanf(fp,"%f",&ys[i]);
fscanf(fp,"%d",&gcode);
fscanf(fp,"%f",&zs[i]);
fscanf(fp,"%d",&gcode);
fscanf(fp,"%f",&xe[i]);
fscanf(fp,"%d",&gcode);
fscanf(fp,"%f",&ye[i]);
fscanf(fp,"%d",&gcode);
fscanf(fp,"%f",&ze[i]);
return 0;
}
/*****************************************************************************
** Activation Methods
*****************************************************************************/
/* Unigraphics Startup
** This entry point activates the application at Unigraphics startup */
extern DllExport void ufsta( char *param, int *returnCode, int rlen )
{
/* Initialize the API environment */
if( UF_CALL(UF_initialize()) )
{
/* Failed to initialize */
return;
}
/* TODO: Add your application code here */
void main ()
{
int n;
i=0;
scanline();
printf("Enter data file name:");
scanf("%s",fname);
fp=fopen(fname,"w");
fprintf(fp,"%d\n",i);
for(n=1;n<=i;n++)
{
fprintf(fp,"%f,%f,%f\n",xs[n],ys[n],zs[n]);
fprintf(fp,"%f,%f,%f\n",xe[n],ye[n],ze[n]);
}
fclose(fp);
}
/* Terminate the API environment */
UF_CALL(UF_terminate());
}
/*****************************************************************************
** Utilities
*****************************************************************************/
/* Unload Handler
** This function specifies when to unload your application from Unigraphics.
** If your application registers a callback (from a MenuScript item or a
** User Defined Object for example), this function MUST return
** "UF_UNLOAD_UG_TERMINATE". */
extern int ufusr_ask_unload( void )
{
return( UF_UNLOAD_UG_TERMINATE );
}
下面是错误显示
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(113): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(122): error C2065: “n”: 未声明的标识符
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(122): error C2065: “n”: 未声明的标识符
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(122): error C2065: “n”: 未声明的标识符
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(124): error C2065: “n”: 未声明的标识符
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(124): error C2065: “n”: 未声明的标识符
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(124): error C2065: “n”: 未声明的标识符
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(125): error C2065: “n”: 未声明的标识符
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(125): error C2065: “n”: 未声明的标识符
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(125): error C2065: “n”: 未声明的标识符
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(131): error C2143: 语法错误 : 缺少“)”(在“字符串”的前面)
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(131): error C2143: 语法错误 : 缺少“)”(在“字符串”的前面)
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(131): error C2143: 语法错误 : 缺少“{”(在“字符串”的前面)
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(131): error C2059: 语法错误:“<未知>”
1>e:\2\nx8_open1\nx8_open1\nx8_open1.c(132): error C2059: 语法错误:“}”
2 个解决方案
#1
main函数前面丢了一个右大括号
#2
偶遇到类似问题都是用
“每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”
的方法解决的。
“每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”
的方法解决的。
#1
main函数前面丢了一个右大括号
#2
偶遇到类似问题都是用
“每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”
的方法解决的。
“每次用/*...*/注释掉不同部分再重新编译,直到定位到具体语法出错的位置。”
的方法解决的。