コード例 #1
0
        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();
            }
        }