//------------------------------------------------------------------------------ //Callback Name: dialogShown_cb //This callback is executed just before the dialog launch. Thus any value set //here will take precedence and dialog will be launched showing that value. //------------------------------------------------------------------------------ public void dialogShown_cb() { try { Logger.Write(Environment.NewLine + "--- PREPARE GUI ---"); // GET WORKING SIM mySIM = (NXOpen.CAE.SimPart)theSession.Parts.BaseWork; Logger.Write("Working SIM : " + mySIM.Name); // GET ALL SOLUTION OBJECTS mySolutions = mySIM.Simulation.Solutions.ToArray().ToList(); Logger.Write("# Solutions = " + mySolutions.Count.ToString()); foreach (NXOpen.CAE.SimSolution solution in mySolutions) { Logger.Write(" " + solution.Name); } // ADD SOLUTION OBJECTS TO GUI LISTBOX LB_Solutions.SetListItems(mySolutions.Select(x => x.Name).ToArray()); Logger.Write("Added solutions to GUI"); } catch (Exception ex) { //---- Enter your exception handling code here ----- theUI.NXMessageBox.Show("Block Styler", NXMessageBox.DialogType.Error, ex.ToString()); } }
// METHODS // ------- /// <summary> /// Generates target CPP Result Probe in each Solution, which does not have this Result Probe yet /// </summary> /// <param name="solutions"></param> public void GenerateCPPResultProbes(List <NXOpen.CAE.SimSolution> solutions, NXOpen.CAE.SimPart mySIM) { Logger.Write(Environment.NewLine + "--- GENERATE CPP RESULT PROBES ---"); foreach (NXOpen.CAE.SimSolution solution in solutions) { Logger.Write(" SOLUTION: " + solution.Name.ToUpper()); try { // CHECK IF RESULT PROBE EXISTS ALREADY NXOpen.CAE.ResultProbe[] existingResultProbes; solution.GetAllResultProbes(out existingResultProbes); if (existingResultProbes.Any(x => x.Name.Contains("True Bolt Shear"))) { Logger.Write(" Already contains CPP Result Probe --> SKIPPED"); continue; } // MAKE SOLUTION ACTIVE mySIM.Simulation.ActiveSolution = solution; Logger.Write(" Made active solution"); // GENERATE CPP RESULT PROBE // Initialize NXOpen.CAE.ResultProbe _resultProbe = null; NXOpen.CAE.ResultProbeBuilder resultProbeBuilder = solution.CreateResultProbeBuilder(_resultProbe); // Name resultProbeBuilder.ProbeName = "True Bolt Shear"; // Formula resultProbeBuilder.Formula = "sqrt(bxy^2+bxz^2)"; // Iteration Definition resultProbeBuilder.Loadcase = NXOpen.CAE.ResultProbeBuilder.LoadcaseSelection.All; resultProbeBuilder.IterationTypeOption = NXOpen.CAE.ResultProbeBuilder.IterationType.All; resultProbeBuilder.Iteration = NXOpen.CAE.ResultProbeBuilder.IterationSelection.First; resultProbeBuilder.CombineAcrossIteration = false; // Selection and Averaging resultProbeBuilder.ModelSelectionType = NXOpen.CAE.ResultProbeBuilder.SelectionType.EntireModel; resultProbeBuilder.CombineAcross = false; // Output resultProbeBuilder.ErrorHndl = NXOpen.CAE.ResultProbeBuilder.ErrorHandling.Fillzero; resultProbeBuilder.ResultType = NXOpen.CAE.Result.Quantity.AppliedForce; resultProbeBuilder.Unit = (NXOpen.Unit)mySIM.UnitCollection.FindObject("Newton"); resultProbeBuilder.ResultReferenceType = NXOpen.CAE.SimResultReference.Type.Structural; // Create target Result Probe resultProbeBuilder.Commit(); // Clean up resultProbeBuilder.Destroy(); Logger.Write(" CPP Result Probe generated!"); } catch (Exception e) { Logger.Write(Environment.NewLine + "!ERROR occurred: " + Environment.NewLine + e.ToString() + Environment.NewLine); } } }