Cancel
Showing results for 
Search instead for 
Did you mean: 

Hiding the "Parallel Generate" option

Gears Esteemed Contributor Gears Esteemed Contributor
Gears Esteemed Contributor

While I realize this is NOT for everyone, and the default value should be to show it...

 

I, and some other users here, find "Parallel Generate" to be more of an annoyance than a help (we typically have small toolpaths that only take a few seconds to generate, _maybe_ a couple that take 30 or more seconds per part)

 

And it is way too easy to right-click -> and accidentally select "Parallel Generate" instead of "Generate".

As we are in Teamcenter, dealing with the dialogs to kill the parallel generate sometimes takes longer that a straight "Generate" would have taken.

 

I created an ER to allow us to hide the "Parallel Generate" option (ER 9068136) (I'm assuming as a customer default, but it could be a preference or whatever).

If you find this annoying too, feel free to file a "me too" ER with GTAC

Thanks for your time...Ken

Ken Akerboom Sr CAx Systems Engr, Moog, Inc.
Production: NX10.0.3.5 MP16/TC11.2
I'd rather be e-steamed than e-diseaseled


8 REPLIES

Re: Hiding the "Parallel Generate" option

Valued Contributor
Valued Contributor

I kind of use parallel generate quite often

But yes you are right

It is alot quicker to generate than parallel generate

We also use teamcenter (with all the manufacturing stuff stripped out of it)

Re: Hiding the "Parallel Generate" option

Gears Esteemed Contributor Gears Esteemed Contributor
Gears Esteemed Contributor

I have disabled parallel generate, but that doesn't remove it from the context menu, so I had to also add my own menu action, which in turn was used for the context menu too.

Menu file entries:

! disable parallel generate
    BUTTON      UG_CAM_ONT_TP_PARALLEL_GENERATE
    ACTIONS     ${UGII_INITIAL_UFUN_DIR}\NoLicenseMsg.dll

 HIDE UG_CAM_ONT_TP_PARALLEL_GENERATE

VB.NET source code:

Option Strict Off
Imports System
Imports System.IO
Imports System.Windows.Forms
Imports NXOpen
Imports NXOpen.UF
Imports NXOpen.Utilities

Module NoLicenseMsg
    Dim theSession    As Session   = Session.GetSession()
    Dim theUFSession  As UFSession = UFSession.GetUFSession()
    Dim theUISession  As UI        = UI.GetUI()
    
    Sub Main(CmdLineArgs As String())
        theUISession.NXMessageBox.Show("License Error", NXMessageBox.DialogType.Error, "No license for this feature available!")
    End Sub
    
    Public Function GetUnloadOption(ByVal dummy As String) As Integer
        Return CInt(Session.LibraryUnloadOption.Immediately)
    End Function
End Module

Hope this helps.

Stefan Pendl, Systemmanager CAx, HAIDLMAIR GmbH
Production: NX10.0.3, VERICUT 8.2, FBM, MRL 3.1.7 | TcUA 10.1 MP7 Patch 0 (10.1.7.0) | TcVis 11.4
Development: C (ITK), .NET, Tcl/Tk Testing: NX12.0 | AWC 3.4 Preparing: NX12.0

Employees of the customers, together we are strong Smiley Wink
How to Get the Most from Your Signature in the Community
NX Customization - Best Practice Guide

Re: Hiding the "Parallel Generate" option

Gears Esteemed Contributor Gears Esteemed Contributor
Gears Esteemed Contributor

Stefan -

I had thought of that (replacing the functionality using Menuscript) but that effects ALL the users.

And knowing Moog, there's someone, somewhere, who would kill me for disabling it ;-)

 

If it were a customer default, users could disable it if they wanted to (user level) or it could be disabled at site/group level if that was preferred.

 

Ken

Ken Akerboom Sr CAx Systems Engr, Moog, Inc.
Production: NX10.0.3.5 MP16/TC11.2
I'd rather be e-steamed than e-diseaseled


Highlighted

Re: Hiding the "Parallel Generate" option

Gears Esteemed Contributor Gears Esteemed Contributor
Gears Esteemed Contributor

I have used this to disable it for one department using UGII_GROUP_DIR after all the users from that department complained about it. That department usually only creates tool paths with a very short generation time, mostly drilling operations.

Sure a more intuitive way to disable it would be welcome.

Stefan Pendl, Systemmanager CAx, HAIDLMAIR GmbH
Production: NX10.0.3, VERICUT 8.2, FBM, MRL 3.1.7 | TcUA 10.1 MP7 Patch 0 (10.1.7.0) | TcVis 11.4
Development: C (ITK), .NET, Tcl/Tk Testing: NX12.0 | AWC 3.4 Preparing: NX12.0

Employees of the customers, together we are strong Smiley Wink
How to Get the Most from Your Signature in the Community
NX Customization - Best Practice Guide

Re: Hiding the "Parallel Generate" option

Gears Esteemed Contributor Gears Esteemed Contributor
Gears Esteemed Contributor

By the way, there's another reason to disable this...

If you use Teamcenter, parallel generate "checks out" an item ID, that (without using DBA / database magic) becomes un-available for use.

 

E.g....

Say your NC programs are the series "ABCnnnn" (ABC0001, ABC0002, ...).

You use the digits as part of the item ID to create the (Fanuc style) progam number ("O0001").

You have item "ABC1234" with CAM operations.

You parallel generate something.

NX uses "ABC1235" (or whatever the next available number in that series is...) as the item ID to do the parallel generate work.

Note that now item ID "ABC1235" is no longer "available" (i.e. you can't create part "ABC1235", and hence program "O1235")

(sigh...)

 

PR 9283175, I believe linked to PR 8331635

 

Ken Akerboom Sr CAx Systems Engr, Moog, Inc.
Production: NX10.0.3.5 MP16/TC11.2
I'd rather be e-steamed than e-diseaseled


Re: Hiding the "Parallel Generate" option

Valued Contributor
Valued Contributor

Not entirely off-topic but just in case someone sees this thread and gets the impression that parallel generate is an absolute hindrence I would like to present a different point of view.

 

I find it an invaluable tool and use it quite often especially when regenerating an entire program due to a model change and I can keep working in the same session.  My programs are typically a mix of long and short generating operations and parallel generate is lmost always a great thing for me.  Almost.  There are times when there are diminishing returns.  When I have  a large, 3D model with many, large operations, when executing parallel generate in those cases NX will process for a while before going in the background.  At that point I sometimes bail on parallel and instead opt to process normally then start another session of NX. 

NX 12.0.2

Re: Hiding the "Parallel Generate" option

Gears Esteemed Contributor Gears Esteemed Contributor
Gears Esteemed Contributor

@Mould_United

Understood (see my initial post)

That's why I want a Customer default - we could turn it off at the site level, but for those who want it, they can turn it on.

 

Although for us, the Teamcenter "let's create a new item" implementation makes this an absolute "show stopper"...

Ken Akerboom Sr CAx Systems Engr, Moog, Inc.
Production: NX10.0.3.5 MP16/TC11.2
I'd rather be e-steamed than e-diseaseled


Re: Hiding the "Parallel Generate" option

Gears Esteemed Contributor Gears Esteemed Contributor
Gears Esteemed Contributor

I have replaced the action for parallel generate by a custom dialog, that asks if the user really wants to use parallel generate.

I also would like to have NX not create a new item, but instead create a temporary part in the UGII_TEMP_DIR folder, this would keep the garbage away from our database.

The Siemens developers are not using any naming rules, so they are not littering their system.

I am in the nice position to have only one counter for MENCMachining objects, which has no deeper meaning, so I don't suffer from the already created item ID syndrome ;-)

'
' Created by SharpDevelop.
' User: stefan.pendl
' Date: 24.05.2018
' Time: 16:55
' 
' To change this template use Tools | Options | Coding | Edit Standard Headers.
'

Option Strict Off
Imports System
Imports System.IO
Imports System.Windows.Forms
Imports System.Collections.Generic
Imports NXOpen
Imports NXOpen.UF
Imports NXOpen.Utilities

Module HaiToolPathParallelGenerate
    Dim theSession    As Session   = Session.GetSession()
    Dim theUFSession  As UFSession = UFSession.GetUFSession()
    Dim theUI         As UI        = UI.GetUI()
    
    Sub Main(CmdLineArgs As String())
        theSession.LogFile.WriteLine("Executing ... " & System.Reflection.Assembly.GetExecutingAssembly().Location)
        
        Threading.Thread.CurrentThread.CurrentCulture = New Globalization.CultureInfo("en-US")
        Threading.Thread.CurrentThread.CurrentUICulture = New Globalization.CultureInfo("en-US")
        
        System.Windows.Forms.Application.EnableVisualStyles()
        
        Dim MyUndoMark As Session.UndoMarkId = _
            theSession.SetUndoMark(Session.MarkVisibility.Visible, "HaiToolPathParallelGenerate")
        
        ' uncomment the following lines to check for the correct application
        Dim AppID As Integer = UFConstants.UF_APP_NONE
        theUFSession.UF.AskApplicationModule(AppID)
        If AppID <> UFConstants.UF_APP_CAM Then
            theUI.NXMessageBox.Show("Application missmatch", NXMessageBox.DialogType.Error, "No NX CAM session, Exiting!")
            Exit Sub
        End If
        
        If theUI.NXMessageBox.Show("Parallel Generate", NXMessageBox.DialogType.Question, "Do you really want to execute parallel generate?") <> 1 Then
            Exit Sub
        End If
        
        Dim selectedTags  As Tag()   = Nothing
        Dim selectedCount As Integer = 0
        Dim selectedNodeList As New List(Of CAM.CAMObject)
        
        theUFSession.UiOnt.AskSelectedNodes(selectedCount, selectedTags)
        
        If selectedCount > 0 Then
            For Each selectedNode As Tag In selectedTags
                selectedNodeList.Add(CType(NXObjectManager.Get(selectedNode), CAM.CAMObject))
            Next
            
            theSession.Parts.Work.CAMSetup.ParallelGenerate(selectedNodeList.ToArray())
        End If
    End Sub
    
    Private Function HaiLocalizeText(theText As String) As String
        Dim theLocalizedText As String = Nothing
        
        theUFSession.Text.TranslateString2(theText, theLocalizedText)
        
        Return theLocalizedText
    End Function
    
    Public Function GetUnloadOption(ByVal dummy As String) As Integer
        Return CInt(Session.LibraryUnloadOption.Immediately)
    End Function
End Module

Hope this helps.

Stefan Pendl, Systemmanager CAx, HAIDLMAIR GmbH
Production: NX10.0.3, VERICUT 8.2, FBM, MRL 3.1.7 | TcUA 10.1 MP7 Patch 0 (10.1.7.0) | TcVis 11.4
Development: C (ITK), .NET, Tcl/Tk Testing: NX12.0 | AWC 3.4 Preparing: NX12.0

Employees of the customers, together we are strong Smiley Wink
How to Get the Most from Your Signature in the Community
NX Customization - Best Practice Guide

Learn online





Solution Information