public static void Convert() { SetupInfo setup_info; string tool_info = ""; string ncdelcam_fpath = ""; try { Variables.doc = (FeatureCAM.FMDocument)fc.ActiveDocument; if (Variables.stock.IndexType == tagFMIndexType.eIT_None) { Variables.doc.Setups.Item(Variables.selected_setup_id + 1).Activate(); Variables.stock.SingleProgramWithProgramStop = false; } /* Verify that file is open */ if (Variables.doc == null) { MessageBox.Show(LanguageSupport.Translate(Properties.Resources.msg_no_open_files), LanguageSupport.Translate(Properties.Resources.str_prog_name)); return; } Variables.is_single_program = ( (Variables.stock.IndexType == FeatureCAM.tagFMIndexType.eIT_None && Variables.stock.SingleProgramWithProgramStop) || (Variables.stock.IndexType != FeatureCAM.tagFMIndexType.eIT_None && !Variables.stock.ToolDominant && Variables.stock.SingleProgram) || (Variables.stock.IndexType != FeatureCAM.tagFMIndexType.eIT_None && Variables.stock.ToolDominant) ); Directory.CreateDirectory(Variables.output_dirpath); /* Initialize setup information (set enabled/disabled) */ setup_info = null; foreach (FeatureCAM.FMSetup setup in Variables.doc.Setups) { if (!Variables.is_single_program) { setup_info = new SetupInfo(setup); if (Variables.setups_info == null) { Variables.setups_info = new List <SetupInfo>(); } Variables.setups_info.Add(setup_info); if (setup_info.enabled && setup_info.num_features > 0) { Variables.num_enabled_setups++; } } else { if (setup_info == null) { setup_info = new SetupInfo(setup); setup_info.name = Variables.doc.Name + "_combined_setup"; if (Variables.setups_info == null) { Variables.setups_info = new List <SetupInfo>(); } Variables.setups_info.Add(setup_info); } else { if (Variables.setups_info.Count == 1) { Variables.setups_info[0].ucss.Add(new UCS(setup.ucs)); } else { MessageBox.Show(LanguageSupport.Translate(Properties.Resources.msg_failed_to_generate_setup_info) + "\n" + Variables.output_msg, LanguageSupport.Translate(Properties.Resources.str_prog_name)); } } } } if (!SaveNCCode()) { MessageBox.Show(LanguageSupport.Translate(Properties.Resources.msg_failed_to_save_nc), LanguageSupport.Translate(Properties.Resources.str_prog_name)); return; } tool_info = ToolsToXMLFile(); StockToSolid(); ClampsToSolids(); /* Export projects file */ Project_Manager.ConstructProjectFile( Path.Combine(Variables.output_dirpath, "export.nxf"), "Milling", Settings.ncsimul_md_fpath, tool_info, "", Variables.setups_info.Count); ncdelcam_fpath = GetNCDelcamPath(); if (ncdelcam_fpath != "") { Process proc = new Process(); proc.StartInfo.FileName = "cmd.exe"; proc.StartInfo.Arguments = "/c call \"" + ncdelcam_fpath + "\"" + " " + "\"" + Path.Combine(Variables.output_dirpath, "export.nxf") + "\""; proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; proc.Start(); } MessageBox.Show(LanguageSupport.Translate(Properties.Resources.msg_output_written_to) + "\n" + Variables.output_msg, LanguageSupport.Translate(Properties.Resources.str_prog_name)); } catch (Exception Ex) { MessageBox.Show(Ex.Message, LanguageSupport.Translate(Properties.Resources.msg_exception_title)); } finally { Variables.stock.SingleProgramWithProgramStop = Variables.orig_single_stock; Variables.Cleanup(); } }