Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations MintJulep on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Open API, problem with plot

Status
Not open for further replies.

freeman3k

Computer
Mar 26, 2008
2
Hello,
I'm new of the forum and NXOpen/C#, I'm try to write a command utility to plot in pdf a UGS/NX3 drawing, but I hit some problems and due to my poor experience I'm not able to fix it.

My first attempt was to create a CGM to PDF converter, but I realize is not possible to do.

So the second attempt was open a .prt drawing then convert in pdf, but here I got 2 problem

1) I was unable to do Plot.SaveCgm due to this error:
Unhandled Exception: NXOpen.NXException: NX error status: 1105012
at NXOpen.UF.UFPlot.SaveCgm(Tag drawing_sheet, JobOptions& job_options, String job_name, BannerOptions& banner_options, String cgm_file_name)
at cgm2jpg.CGM2IMAGEConverter..ctor(String[] args) in D:\User Profiles\apelle\My Documents\Visual Studio 2005\Projects\cgm2jpg\cgm2jpg\CGM2IMAGECon
verter.cs:line 88
at cgm2jpg.CGM2IMAGEConverter.Main(String[] args) in D:\User Profiles\apelle\My Documents\Visual Studio 2005\Projects\cgm2jpg\cgm2jpg\CGM2IMAGEConv
erter.cs:line 115

2) I use as pre-condition and existing CGM file and then try to print to file with: Plot.PrintFile, no error seems to be riese but no output will write. Here the log of NXPlot
26 Mar, 2008 14:16:17:BPS: SUBMIT_TIME
26 Mar, 2008 14:16:17:BPS: Job 0 Submitted
26 Mar, 2008 14:16:17:BPS: Sending bSec ...
26 Mar, 2008 14:16:17:BPS: Sending bPrintTo ...
26 Mar, 2008 14:16:17:BPS: Sending myModel ...
26 Mar, 2008 14:16:17:BPS: Sending myPlotter ...
26 Mar, 2008 14:16:17:BPS: Sending myProfile ...
26 Mar, 2008 14:16:17:BPS: Sending C:\Temp\3455603_ug_drw.cgm ...
26 Mar, 2008 14:16:17:BPS: QUEUE_TIME
26 Mar, 2008 14:16:17:BPS: Job Ready to Run
26 Mar, 2008 14:16:17:BPS: RUN_TIME
Wed Mar 26 14:16:17 2008

BPSPLOT: 1.0012 Windows NT 4.0COMMAND_LINE :"apelle" "PDFPlotter" "myProfile" "3455603_ug_drw.cgm":
Input FILE - 3455603_ug_drw.cgm (PASS)
Bypass Lic B ---------------------------- B -sdil329736934
Connect Method: CONNECT_EXECUTE
Queue_Name: ()
CMD_EXE: ( "3455603_ug_drw.cgm")
Exec Return A 0 226 Mar, 2008 14:16:17:BPS: DONE_TIME


APPENDING STATS FILE

26 Mar, 2008 14:16:17:BPS: SUBMIT_TIME
26 Mar, 2008 14:16:17:BPS: QUEUE_TIME
26 Mar, 2008 14:16:17:BPS: RUN_TIME
26 Mar, 2008 14:16:17:BPS: DONE_TIME


END OF STATS FILE

26 Mar, 2008 14:16:21:BPS: Downloading logfile.txt ...



Thanks in advance for you support.
Alfredo


My Code:
using System;
using System.Collections.Generic;
using System.Text;
using NXOpen;
using NXOpen.UF;

using System.Runtime.InteropServices;
using NXOpen.Drawings;


namespace cgm2jpg
{
class CGM2IMAGEConverter
{
static Session m_session;
static Random r = new Random();
static UFSession m_openSession;



public CGM2IMAGEConverter(string[] args)
{


m_session = Session.GetSession();


m_openSession = UFSession.GetUFSession();



System.Console.WriteLine("m_session :" + m_session.ToString());
if (m_session == null)
System.Console.WriteLine("m_session NULLA");
else
System.Console.WriteLine("m_session NON NULLA");

System.Console.WriteLine("m_openSession :" + m_openSession.ToString());
if (m_openSession == null)
System.Console.WriteLine("m_openSession NULLA");
else
System.Console.WriteLine("m_openSession NON NULLA");




PartLoadStatus pls;
Part p = m_session.Parts.Open("c:\\temp\\3459923_ug_drw.prt", out pls);


DrawingSheet[] dss = p.DrawingSheets.ToArray();
Console.WriteLine("Sheet number: " + dss.Length);
int i = 1;
foreach (DrawingSheet dw in dss)
{
Console.WriteLine(i++ + ": Altezza: " + dw.Height + " Larghezza: " + dw.Length);
UFPlot.JobOptions jo = new UFPlot.JobOptions();
jo.use_drawing_sheet_colors = false;
jo.use_drawing_sheet_widths = true;
jo.tolerance = 1;
jo.colors = UFPlot.Colors.BlackOnWhite;

NXOpen.UF.UFPlot.BannerOptions bo = new UFPlot.BannerOptions();
bo.show_banner = false;
bo.message = "";

jo.widths = UFPlot.Widths.StandardWidths;



// Console.WriteLine("1 " + dw.Tag);
// Console.WriteLine("2 " + jo);
// Console.WriteLine("3 " + bo);


m_openSession.Plot.SetSessionBannerOptions(ref bo);
m_openSession.Plot.SetSessionJobOptions(ref jo);

int seed = r.Next(1000000000);

string fn_pdf = "C:\\temp\\filename_" + seed + ".pdf";
string fn_cgm = "C:\\temp\\filename_" + seed + ".cgm";


Console.WriteLine(fn_pdf);
Console.WriteLine(fn_cgm);

//m_openSession.Plot.SaveCgm(dw.Tag, ref jo, "To_Cgm: " + fn_cgm, ref bo, fn_cgm);

m_openSession.Plot.PrintFile("C:\\Temp\\3455603_ug_drw.cgm", "PDFPlotter", "ps_profile_0", 1);



//m_openSession.Plot.ConvertFile("c:\\temp\\3455603_ug_drw.cgm", UFPlot.Format.TiffFormat, "c:\\temp\\out.tiff");

//m_openSession.Plot.Print(dw.Tag, ref jo, "TIFF Export File 1", ref bo, "TIFF Export File", "DRETIFF", 1);


}

}




public static void Main(string[] args)
{
CGM2IMAGEConverter convert = new CGM2IMAGEConverter(args);


}

}



}


 
Replies continue below

Recommended for you

Attached to prev-post you can find and image of NXPlot Administrator, with my printer configured
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor