首页 > 其他 > 详细

NX二次开发-UFUN获取当前导出CGM选项设置UF_CGM_ask_session_export_options

时间:2019-05-31 22:07:54      阅读:136      评论:0      收藏:0      [点我收藏+]
 1 文章转载自唐康林NX二次开发论坛,原文出处: http://www.nxopen.cn/thread-126-1-1.html
 2 
 3 刚才有同学问到这个问题,如果是用NXOpen来做,直接录制一下就可以了;
 4 在UFUN里面没有直接的函数;
 5 思路就是:
 6 1、先将工程图转换为cgm
 7 2、调用系统的cgm2pdf.exe工具,将上一步转换的cgm再转成PDF格式;
 8 以下是我写的一个例子。大家可以拿一个工程图测试以下代码,最后会在C盘生成tkl.cgm与tkl.pdf两个文件。
 9 
10 
11 #include <uf.h>
12 #include <uf_draw.h>
13 #include <uf_cgm.h>
14 #include <windows.h>
15 
16 
17 
18 UF_initialize();
19 
20 tag_t drawing_tag = NULL_TAG;
21 UF_DRAW_ask_current_drawing(&drawing_tag);
22 
23 if (drawing_tag != NULL_TAG)
24 {
25     UF_CGM_export_options_t export_options;
26     UF_CGM_ask_default_export_options(&export_options);
27     //UF_CGM_ask_session_export_options(&export_options);//用这个函数也可以初始化
28     export_options.reason = UF_CGM_pdf_reason;
29     UF_CGM_set_session_export_options(&export_options);
30 
31     char outFilePath[UF_CFI_MAX_FILE_NAME_BUFSIZE] = "c:\\tkl.cgm";
32     UF_CGM_export_cgm(drawing_tag, &export_options, outFilePath); //导出成CGM文件
33 
34     //将CGM转换成PDF
35     char outPdfFilePath[UF_CFI_MAX_FILE_NAME_BUFSIZE] = "c:\\tkl.pdf";
36     NXOpen::NXString nxbasedir = theSession->GetEnvironmentVariableValue("UGII_BASE_DIR");//获取NX主目录
37     std::ostringstream tempstring;
38     tempstring << nxbasedir.GetLocaleText() << "\\NXPLOT\\bin\\pdf\\cgm2pdf.exe " << outFilePath << " " << outPdfFilePath;
39     std::string covertvalule = tempstring.str();
40     WinExec(covertvalule.c_str(), SW_HIDE); //打开PDF转换器,并转换
41     tempstring.str("");
42     tempstring.clear();
43 }
44 
45 UF_terminate();

技术分享图片

NX二次开发-UFUN获取当前导出CGM选项设置UF_CGM_ask_session_export_options

原文:https://www.cnblogs.com/nxopen2018/p/10957394.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!