购买与咨询 NX 二次开发视频教程,请联系微信号:13890821008 QQ号:85585969
int PrintPart(tag_t InPart)
{
UF_PART_set_display_part(InPart);
UF_ASSEM_set_work_part(InPart);
TagL tagAllSheets;
int Type,SubType;
tag_t CurObj=NULL_TAG;
//遍歷找出所有的圖紙
UF_OBJ_cycle_objs_in_part(InPart,UF_drawing_type,&CurObj);
while(CurObj)
{
UF_OBJ_ask_type_and_subtype(CurObj,&Type,&SubType);
UF_OBJ_cycle_objs_in_part(InPart,UF_drawing_type,&CurObj);
}
UF_PLOT_job_options_t JobOptions;
UF_PLOT_banner_options_t BannerOptions;//旗幟, 通欄頭號標題
TCHAR *JobName;
int Count=1;
//tag_t drawing_sheet;
UF_CALL(UF_PLOT_ask_default_job_options( &JobOptions));//查询默认的打印任务选项,线宽设置等
UF_CALL( UF_PLOT_ask_default_banner_options( &BannerOptions));
UF_DRAW_info_t DrawInfo;
TCHAR Profile[S257];
tagAllSheets.tmp=tagAllSheets.first;
while(tagAllSheets.tmp)
{
UF_DRAW_ask_drawing_info(tagAllSheets.tmp->ent,&DrawInfo);
switch(DrawInfo.size_state)//確定使用哪一個打印配置
{
default:
case UF_DRAW_METRIC_SIZE:
switch(DrawInfo.size.metric_size_code)
{
default:
case UF_DRAW_A4:
strcpy_s(Profile,"A4_h");//h表示橫向 幫使用者配置好 配置檔A4_h 專用於A4紙張的打印
break;
case UF_DRAW_A3:
strcpy_s(Profile,"A3_h");// 幫使用者配置好 配置檔A3_h 專用於A3紙張的打印
break;
case UF_DRAW_A2:
strcpy_s(Profile,"A2_h");
break;
case UF_DRAW_A1:
strcpy_s(Profile,"A1_h");
break;
case UF_DRAW_A0:
strcpy_s(Profile,"A0_h");
break;
}
break;
case UF_DRAW_ENGLISH_SIZE:
tagAllSheets.tmp=tagAllSheets.tmp->Next;//目前還不處理英制圖紙
continue;
break;
case UF_DRAW_CUSTOM_SIZE://豎向即為 UF_DRAW_CUSTOM_SIZE
if (fabs(DrawInfo.size.custom_size[0]-297.0)<=dert&&fabs(DrawInfo.size.custom_size[1]-210.0)<=dert)
{
strcpy_s(Profile,"A4_s");//s表示豎向
}
else if (fabs(DrawInfo.size.custom_size[0]-420.0)<=dert&&fabs(DrawInfo.size.custom_size[1]-297.0)<=dert)
{
strcpy_s(Profile,"A3_s");
}
else if (fabs(DrawInfo.size.custom_size[0]-594.0)<=dert&&fabs(DrawInfo.size.custom_size[1]-420.0)<=dert)
{
strcpy_s(Profile,"A2_s");
}
else if (fabs(DrawInfo.size.custom_size[0]-841.0)<=dert&&fabs(DrawInfo.size.custom_size[1]-594.0)<=dert)
{
strcpy_s(Profile,"A1_s");
}
else if (fabs(DrawInfo.size.custom_size[0]-1189.0)<=dert&&fabs(DrawInfo.size.custom_size[1]-841.0)<=dert)
{
strcpy_s(Profile,"A0_s");
}
break;
}
UF_CALL( UF_PLOT_ask_default_job_name(tagAllSheets.tmp->ent, &JobName ));//通过图纸得到默认的任务名
UF_free(JobName);
}
return 1;
} 回复可见的内容...