#include <stdio.h>
#include <uf_draw.h>
#include <string.h>
#include <uf.h>
#include <uf_ui.h>
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
static int report_error( char *file, int line, char *call, int irc)
{
if (irc)
{
char
err[133],
messg[300];
UF_get_fail_message(irc, err);
sprintf(messg, "\n%s\nerror %d at line %d in %s\n%s",
err, irc, line, file, call);
printf("%s\n", messg);
strcpy(&messg[129], "...");
uc1601(messg, TRUE); /* Internal only - remove for external */
}
return(irc);
}
static void do_it(void)
{
tag_t 图纸页TAG;
tag_t 视图TAG = NULL_TAG;
tag_t 新细节视图;
char 图纸页名称="SHEET1";
char 视图名称字符串="TOP";
char 视图名称[30]="";
double 图纸尺寸[2];//[0]高度、[1]宽度;
double 视图左下角基点坐标[2] = { 4.0, 4.0};
double 视图右上角基点坐标[2]= { 12.0, 12.0};
double 视图比例 = 2, 绘图参考点[2] = { 20.0, 20.0};
double 视图参考点[2] = { 4.0, 4.0};
int 制图单位=2;//1 =英制,2 =公制
int 图纸页尺寸=5;//0 =自定义尺寸、1 = A / A0、2 = B / A1、3 = C / A2、4 = D / A3、5 = E / A4、6 = F / -、7 = H / -、8 = J / -
/* 创建一个新的图纸页 */
UF_CALL( uc6478( 图纸页名称, 1, 图纸页尺寸, &图纸尺寸));
/* 将视图添加到图纸页 */
UF_CALL( uc6481( 图纸页名称, 视图名称字符串, 视图参考点, 1));
UF_CALL( UF_DRAW_ask_current_drawing( &图纸页TAG));
/* 添加局部视图 */
UF_CALL( uc6499( 图纸页名称, 视图名称));
/* 从视图名称获取视图TAG */
UF_CALL( UF_OBJ_cycle_by_name( 视图名称, &视图TAG));
UF_CALL( UF_DRAW_add_detail_view( 图纸页TAG, 视图TAG, 视图左下角基点坐标,
视图右上角基点坐标, 视图比例, 绘图参考点, &新细节视图));
}
void ufusr(char *param, int *retcode, int paramLen)
{
if (UF_CALL(UF_initialize())) return;
do_it();
UF_terminate();
}
int ufusr_ask_unload(void)
{
return (UF_UNLOAD_IMMEDIATELY);
}
————————————————————————————