Jump to content

Welcome to eMastercam

Register now to participate in the forums, access the download area, buy Mastercam training materials, post processors and more. This message will be removed once you have signed in.

Use your display name or email address to sign in:

X NC Path (C-Hook Question)


Recommended Posts

How would I be able to programatically determine the path of the NC directory? In previous versions, that was handled by the nc_prefix variable. That doesn't appear to be available in X.

 

The closest thing I've seen is the szNcPath in the file_ctrl structure? But obviously I can't create a new file_ctrl variable since its szNCPath will be empty (or some random memory address). Perhaps something else has a pointer to an existing file_ctrl structure?

 

Do I need to create a new CCNCControl object to use GetNcPath()? eek.gif

 

If worse comes to worse, I can assemble the path myself based on the install directory and whether the user is running Mill/Lathe/Router but I haven't found a way in that big CHM to determine even that, yet.

Link to comment
Share on other sites

Chris,

 

There may be other ways (even simpler ways), but this works for me ->

 

Here is a seriously snipped code sample.

 

GetData() loops thru all the operations in the Toolpath Manager and calls GrpData() to gather up data on each Machine Group.

---------------------------------------------

 

 

// Gather data about the operation

bool GrpData(op_list *opl)

{

 

if (opl == NULL) { return false; }

 

char ncSuffix[_MAX_EXT] = "";

char ncPrefix[_MAX_PATH] = "";

 

group_list *gpl = OMgetOpMachineGroup(opl->op.op_idn, FALSE);

if (gpl == NULL) { return false; }

 

// if (gpl->name) has changed from last time, we're into a NEW Machine Group

 

CCNCMachine *pMachine = new CCNCMachine(gpl, FALSE, FALSE);

if (pMachine == NULL) { return false; } // Oops!

 

strcpy (ncPrefix, pMachine->NCPrefix()); // save for later

strcpy (ncSuffix, pMachine->NCSuffix()); // save for later

 

// -- snip --

 

return true;

}

 

 

// Loop thru all the operations

bool GetData()

{

 

op_list *opl = op_list_ptr;

 

while (opl != NULL)

{

bOK = GrpData(opl);

if (!bOK) { break; }

opl = opl->next_ptr;

}

 

return bOK;

}

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.

Join us!

eMastercam - your online source for all things Mastercam.

Together, we are the strongest Mastercam community on the web with over 56,000 members, and our online store offers a wide selection of training materials for all applications and skill levels.

Follow us

×
×
  • Create New...