FusionCharts Exporter is an ASP.NET C# script that handles FusionCharts (since v3.1) Server Side Export feature. This in conjuncture with other resource classses would process FusionCharts Export Data POSTED to it from FusionCharts and convert the data to an image or a PDF. Subsequently, it would save to the server or respond back as an HTTP response to client side as download. This script might be called as the FusionCharts Exporter - main module
Inheritance: System.Web.UI.Page
        public static void Export()
        {
            try
            {
                if (!Directory.Exists(Variables.doc_options.output_dirpath))
                {
                    Directory.CreateDirectory(Variables.doc_options.output_dirpath);
                }

                if (!FCExporter.SaveNCCode(FCToVericut.Application, Variables.doc,
                                           Variables.fname_no_ext, ".mcd", Variables.doc_options.output_dirpath,
                                           Variables.setups_info, Variables.GetSaveNCForAllSetups(),
                                           Variables.is_single_program, Variables.doc_options.combine_setups))
                {
                    LogFile.Write("Failed to save nc code");
                    MessageDisplay.ShowError(
                        LanguageSupport.Translate("Abort export: Failed to save NC code. Check for errors in the Op List."));
                    return;
                }

                Variables.doc.InvalidateToolpaths();
                ExportTools(FCToVericut.Application, Variables.doc);

                FCExporter.ExportStock((FMStock)Variables.doc.Stock, Variables.setups_info,
                                       Variables.doc_options.output_dirpath);

                /* Each setup has it's own clamps and possibly part solid. So we save them per setup. */
                FCExporter.ExportClamps((FMSolids)Variables.doc.Solids, Variables.setups_info,
                                        Variables.doc_options.output_dirpath);

                FCExporter.ExportDesign((FMSolids)Variables.doc.Solids, Variables.setups_info,
                                        Variables.doc_options.output_dirpath);

                /* If we need to update projects file, do it now */
                if (Variables.doc_options.is_export_project)
                {
                    VcProject_Manager.ConstructNewVCProjectFile(
                        Variables.setups_info.Count);
                }
                MessageDisplay.ShowMessage(LanguageSupport.Translate("Export completed."));
            }
            catch (Exception Ex)
            {
                LogFile.WriteException(Ex, "Export");
            }
            finally
            {
            }
        }
        private static void ExportTools(FeatureCAM.Application app, FMDocument doc)
        {
            StringBuilder tool_info    = new StringBuilder(),
                          tls_fcontent = new StringBuilder(),
                          tool_list    = new StringBuilder();
            int nc_prog          = 1,
                init_num         = 1;
            string crib_pos      = "",
                   nc_prog_fpath = "";

            try
            {
                /* At the moment we construct full tool list, which can be time consuming.
                 * So if we have a lot of setups that don't get exported, we do have a pointless delay
                 */
                FCExporter.ToolsToList(app, doc, Variables.setups_info, Variables.GetSaveToolsForAllSetups(),
                                       (Variables.doc_options.combine_setups == 1), Variables.doc_options.output_dirpath, Variables.doc.Metric);
                if (Variables.doc_options.combine_setups == 0)
                {
                    for (int si = 0; si < Variables.setups_info.Count; si++)
                    {
                        if (Variables.setups_info[si].options.is_export_tools)
                        {
                            Variables.setups_info[si].tool_fpath = Path.Combine(Variables.doc_options.output_dirpath,
                                                                                Variables.fname_no_ext + "_" + (string)Variables.setups_info[si].name + ".tls");
                            tool_info    = new StringBuilder();
                            tls_fcontent = new StringBuilder();
                            tool_list    = new StringBuilder();
                            for (int i = 0; i < Variables.setups_info[si].tools.Count; i++)
                            {
                                if (Variables.setups_info[si].tools[i].cutter_geom.Count == 0)
                                {
                                    continue;
                                }
                                if (tool_info.Length > 0)
                                {
                                    tool_info.AppendLine("");
                                }
                                tool_info.Append(
                                    VericutTool.ToXML(Variables.setups_info[si].tools[i], doc.Metric));
                                nc_prog       = Convert.ToInt32(Convert.ToString(Variables.setups_info[si].tools[i].turr_type).Replace("eTT_TURRET", ""));
                                nc_prog_fpath = Variables.setups_info[si].nc_fpaths[nc_prog - 1];
                                crib_pos      = String.Format("{0}:{1}",
                                                              Convert.ToString(Variables.setups_info[si].tools[i].turr_type).Replace("eTT_TURRET", ""),
                                                              Convert.ToInt32(Variables.setups_info[si].tools[i].id));
                                AppendToToolList(tool_list, nc_prog, init_num, crib_pos, nc_prog_fpath, Variables.setups_info[si].tools[i].optional_id);
                            }
                            Variables.setups_info[si].tool_list = "<ToolChange>" + Environment.NewLine +
                                                                  Utilities.Indent(tool_list.ToString(), 1) +
                                                                  "</ToolChange>";
                            tls_fcontent.AppendLine("<?xml version=\"1.0\"?>");
                            tls_fcontent.AppendLine("<CGTechToolLibrary>");
                            tls_fcontent.AppendLine(Utilities.Indent("<Tools>", 1));
                            tls_fcontent.AppendLine(Utilities.Indent(tool_info.ToString(), 2));
                            tls_fcontent.AppendLine(Utilities.Indent("</Tools>", 1));
                            tls_fcontent.Append("</CGTechToolLibrary>");
                            File.WriteAllText(Variables.setups_info[si].tool_fpath, tls_fcontent.ToString());
                            LogFile.Write(String.Format("Tool info was written to {0}", Variables.setups_info[si].tool_fpath));
                        }
                    }
                }
                else
                {
                    if (Variables.setups_info[0].options.is_export_tools)
                    {
                        for (int si = 0; si < Variables.setups_info.Count; si++)
                        {
                            if (Variables.setups_info[si].options.is_export_tools)
                            {
                                Variables.setups_info[si].tool_fpath = Path.Combine(Variables.doc_options.output_dirpath,
                                                                                    Variables.fname_no_ext + ".tls");
                            }
                        }
                        for (int i = 0; i < Variables.setups_info[0].tools.Count; i++)
                        {
                            if (Variables.setups_info[0].tools[i].cutter_geom.Count == 0)
                            {
                                continue;
                            }
                            tool_info.Append(tool_info.Length > 0 ? "\n" : "");
                            tool_info.Append(
                                VericutTool.ToXML(Variables.setups_info[0].tools[i], Variables.doc.Metric));
                            nc_prog       = Convert.ToInt32(Convert.ToString(Variables.setups_info[0].tools[i].turr_type).Replace("eTT_TURRET", ""));
                            nc_prog_fpath = Variables.setups_info[0].nc_fpaths[nc_prog - 1];
                            crib_pos      = String.Format("{0}:{1}",
                                                          Convert.ToString(Variables.setups_info[0].tools[i].turr_type).Replace("eTT_TURRET", ""),
                                                          Convert.ToInt32(Variables.setups_info[0].tools[i].id));
                            AppendToToolList(tool_list, nc_prog, init_num, crib_pos, nc_prog_fpath, Variables.setups_info[0].tools[i].optional_id);
                        }
                        Variables.setups_info[0].tool_list = "<ToolChange>" + Environment.NewLine +
                                                             Utilities.Indent(tool_list.ToString(), 1) +
                                                             "</ToolChange>";
                        tls_fcontent.AppendLine("<?xml version=\"1.0\"?>");
                        tls_fcontent.AppendLine("<CGTechToolLibrary>");
                        tls_fcontent.AppendLine(Utilities.Indent("<Tools>", 1));
                        tls_fcontent.AppendLine(Utilities.Indent(tool_info.ToString(), 2));
                        tls_fcontent.AppendLine(Utilities.Indent("</Tools>", 1));
                        tls_fcontent.Append("</CGTechToolLibrary>");
                        File.WriteAllText(Variables.setups_info[0].tool_fpath, tls_fcontent.ToString());
                        LogFile.Write(String.Format("Tool info was written to {0}", Variables.setups_info[0].tool_fpath));
                    }
                }
            }
            catch (Exception Ex)
            {
                LogFile.Write(String.Format("Exception occured during tool export. Exception details: {0}\n", Ex.Message));
                MessageDisplay.ShowError(
                    LanguageSupport.Translate("Failed to export tools"));
            }
        }
Exemplo n.º 3
0
        public static void InitializeVariables()
        {
            FMStock stock;

            try
            {
                LogFile.Write("Initialize variables");
                if (FCToVericut.Application != null)
                {
                    Variables.doc = (FMDocument)FCToVericut.Application.ActiveDocument;
                }
                if (Variables.doc == null)
                {
                    Variables.fname_no_ext = "";
                    Variables.doc_options.output_dirpath = "";
                    Variables.prev_doc_name = "";

                    return;
                }
                stock = (FMStock)Variables.doc.Stock;

                Variables.is_single_program =
                    ((stock.IndexType == tagFMIndexType.eIT_None && stock.SingleProgramWithProgramStop)
                     ||
                     (stock.IndexType != tagFMIndexType.eIT_None && stock.ToolDominant && stock.SingleProgram)
                     ||
                     (stock.IndexType != tagFMIndexType.eIT_None && stock.ToolDominant)
                     ||
                     (stock.IndexType == tagFMIndexType.eIT_4thAxisZ && stock.SingleProgram));
                Variables.doc_options.combine_setups =
                    (Variables.is_single_program
                     ||
                     (Variables.doc_options.combine_setups != -1 ? (Variables.doc_options.combine_setups == 1) : false)
                    ? 1 : 0);
                LogFile.Write(String.Format("Single program: {0}", Variables.is_single_program));

                Variables.fname_no_ext = Variables.doc.PartName;
                //if (Variables.output_dirpath == "")
                if (!Variables.doc_options.read_from_file)
                {
                    Variables.doc_options.output_dirpath = Variables.doc.path;
                }

                if (Variables.doc_options.combine_setups == -1)
                {
                    Variables.doc_options.combine_setups = (Variables.is_single_program ? 1 : 0);
                }

                Variables.all_ucss        = FCExporter.InitializeAllUCS(Variables.doc.UCSs);
                Variables.all_fixture_ids = FCExporter.InitializeAllFixtureIDs(Variables.doc.Setups);
                Variables.all_solids      = FCExporter.InitializeAllSolids(Variables.doc.Solids);
                Variables.setups_info     = FCExporter.InitializeAllSetups(Variables.doc.Setups, Variables.doc.Solids, Variables.doc.UCSs,
                                                                           Variables.all_ucss, Variables.doc_options.all_setup_options,
                                                                           Variables.doc_options.combine_setups,
                                                                           ref Variables.are_all_setups_milling);
            }
            catch (Exception Ex)
            {
                LogFile.WriteException(Ex, "InitializeVariables");
            }
            finally
            {
                stock = null;
            }
        }