示例#1
0
        public void InitializeVariables()
        {
            FeatureCAM.FMSetup setup = null;

            if (Variables.app != null)
            {
                Variables.doc = (FeatureCAM.FMDocument)Variables.app.ActiveDocument;
            }
            if (Variables.doc == null)
            {
                Variables.prev_doc_name  = "";
                Variables.output_dirpath = "";
            }
            else
            {
                Variables.stock       = Variables.doc.Stock;
                Variables.setup_names = new List <string>();
                for (int i = 1; i <= Variables.doc.Setups.Count; i++)
                {
                    setup = (FeatureCAM.FMSetup)Variables.doc.Setups.Item(i);
                    if (setup != null)
                    {
                        Variables.setup_names.Add(setup.Name);
                        /* Have to subtract 1 b/c setups are 1-based and combobox values are 0-based */
                        if (Variables.doc.ActiveSetup.Name == setup.Name)
                        {
                            Variables.selected_setup_id = i - 1;
                        }
                    }
                }
                Variables.orig_single_stock = Variables.stock.SingleProgramWithProgramStop;
                if (Variables.prev_doc_name != Variables.doc.Name)
                {
                    Variables.clamps = new List <SolidInfo>();
                    foreach (FeatureCAM.FMSolid solid in Variables.doc.Solids)
                    {
                        Variables.clamps.Add(new SolidInfo(solid, solid.UseAsClamp));
                    }
                    if (Variables.stock.IndexType != FeatureCAM.tagFMIndexType.eIT_None)
                    {
                        Variables.output_dirpath = Path.Combine(Variables.doc.path, Variables.doc.PartName);
                    }
                    else
                    {
                        Variables.output_dirpath = Path.Combine(Variables.doc.path, Variables.doc.PartName) + "_" + Variables.setup_names[Variables.selected_setup_id];
                    }
                }
                Variables.doc.ActiveSetup.GetMachineSimLocation(out Variables.offset_x, out Variables.offset_y, out Variables.offset_z);

                Variables.prev_doc_name = Variables.doc.Name;
            }
        }
示例#2
0
        public void ComputeCoordinatesInRelationToSetup(FeatureCAM.FMSetup base_fm_setup,
                                                        out double x_rel, out double y_rel, out double z_rel,
                                                        out double i_rel, out double j_rel, out double k_rel)
        {
            double x1, y1, z1,
                   x2, y2, z2,
                   x3, y3, z3;

            x_rel = this.x; y_rel = this.y; z_rel = this.z;
            x1    = this.x1; y1 = this.y1; z1 = this.z1;
            x2    = this.x2; y2 = this.y2; z2 = this.z2;
            x3    = this.x3; y3 = this.y3; z3 = this.z3;

            base_fm_setup.MapWorldToSetup(ref x_rel, ref y_rel, ref z_rel);
            base_fm_setup.MapVectorWorldToSetup(ref x1, ref x2, ref x3);
            base_fm_setup.MapVectorWorldToSetup(ref y1, ref y2, ref y3);
            base_fm_setup.MapVectorWorldToSetup(ref z1, ref z2, ref z3);

            ComputeEulerAngles(x1, y1, z1, x2, y2, z2, x3, y3, z3,
                               out i_rel, out j_rel, out k_rel);
        }
示例#3
0
 public SetupInfo(FeatureCAM.FMSetup setup)
 {
     this.name         = setup.Name;
     this.enabled      = setup.Enabled;
     this.num_features = setup.Features.Count;
     this.fixture_id   = setup.FixtureID;
     this.tool_fpath   = "";
     this.nc_fpaths    = new List <string>();
     if (this.ucss == null)
     {
         this.ucss = new List <UCS>();
     }
     this.ucss.Add(new UCS(setup.ucs));
     this.first_ucs_name             = setup.ucs.Name;
     this.attach_components          = new List <string>();
     this.attach_stock_to            = "";
     this.attach_stock_to_subspindle = "";
     this.attach_ucs                = "";
     this.attach_ucs_subspindle     = "";
     this.attach_ucss_to            = "";
     this.attach_ucss_to_subspindle = "";
 }
示例#4
0
        private void GetDataFromFormAndExport()
        {
            Variables.doc_options.is_export_project = (tb_proj_template_fpath.Text != "");

            if (Variables.doc_options.output_dirpath == "")
            {
                MessageDisplay.ShowError(
                    LanguageSupport.Translate("Output directory path must be set. Please fix it and try again."));
                return;
            }
            else
            {
                Variables.doc_options.output_dirpath = tb_output_dir.Text;
            }
            if (Variables.fname_no_ext == "")
            {
                MessageDisplay.ShowError(
                    LanguageSupport.Translate("Output file name must be set. Please fix it and try again."));
                return;
            }
            if (Variables.doc_options.is_export_project && Variables.doc_options.vc_template_proj_fpath == "")
            {
                MessageDisplay.ShowError(
                    LanguageSupport.Translate("If exporting VERICUT project file, template file path must be set. Please fix it and try again."));
                return;
            }
            if (Variables.doc_options.is_export_project && !File.Exists(Variables.doc_options.vc_template_proj_fpath))
            {
                MessageDisplay.ShowError(
                    LanguageSupport.Translate("If exporting VERICUT project file, template file path must exist. File {0} doesn't exist. Please select existing file and try again."), Variables.doc_options.vc_template_proj_fpath);
                return;
            }

            FeatureCAM.FMSetup world = Variables.doc.Setups.Item("STOCK");
            if (Variables.setups_info[cb_setups.SelectedIndex].attach_ucs == null ||
                Variables.setups_info[cb_setups.SelectedIndex].attach_ucs == "")
            {
                MessageDisplay.ShowError(
                    LanguageSupport.Translate("If using UCS for specifying the location of the bottom most clamp, UCS has to be selected. Please select existing UCS and try again."));
                return;
            }
            for (int si = 0; si < Variables.setups_info.Count; si++)
            {
                if (!Variables.setups_info[si].enabled)
                {
                    continue;
                }
                /* Main spindle */
                FeatureCAM.FMUcs ucs = Variables.doc.UCSs.Item(Variables.setups_info[si].attach_ucs);
                Variables.setups_info[si].options.ucs_attach = ucs.Name;
                if (ucs != null)
                {
                    FeatureCAM.FMSetup temp_setup = Variables.doc.AddSetup(ucs.Name + "_temp_setup", FeatureCAM.tagFMSetupType.eST_Milling, null, ucs.Name, Type.Missing);
                    temp_setup.Enabled = false;
                    Variables.all_ucss[0].ComputeCoordinatesInRelationToSetup(temp_setup,
                                                                              out Variables.setups_info[si].setup_solid_x, out Variables.setups_info[si].setup_solid_y, out Variables.setups_info[si].setup_solid_z,
                                                                              out Variables.setups_info[si].setup_solid_i, out Variables.setups_info[si].setup_solid_j, out Variables.setups_info[si].setup_solid_k);
                    FeatureCAM.FMUcs temp_setup_ucs = temp_setup.ucs;
                    temp_setup.Delete();
                    temp_setup_ucs.Delete();
                }
                if (world != null && ucs != null)
                {
                    double ucs_x, ucs_y, ucs_z;
                    ucs.GetLocation(out ucs_x, out ucs_y, out ucs_z);
                    world.MapWorldToSetup(ref ucs_x, ref ucs_y, ref ucs_z);
                }
                /* Subspindle */
                if (!String.IsNullOrEmpty(Variables.setups_info[si].attach_ucs_subspindle))
                {
                    ucs = Variables.doc.UCSs.Item(Variables.setups_info[si].attach_ucs_subspindle);
                    Variables.setups_info[si].options.ucs_attach_subspindle = ucs.Name;
                    if (ucs != null)
                    {
                        FeatureCAM.FMSetup temp_setup = Variables.doc.AddSetup(ucs.Name + "_temp_setup_sub", FeatureCAM.tagFMSetupType.eST_Milling, null, ucs.Name, Type.Missing);
                        temp_setup.Enabled = false;
                        Variables.all_ucss[0].ComputeCoordinatesInRelationToSetup(temp_setup,
                                                                                  out Variables.setups_info[si].sub_setup_solid_x, out Variables.setups_info[si].sub_setup_solid_y, out Variables.setups_info[si].sub_setup_solid_z,
                                                                                  out Variables.setups_info[si].sub_setup_solid_i, out Variables.setups_info[si].sub_setup_solid_j, out Variables.setups_info[si].sub_setup_solid_k);
                        FeatureCAM.FMUcs temp_setup_ucs = temp_setup.ucs;
                        temp_setup.Delete();
                        temp_setup_ucs.Delete();
                    }
                }
            }
            Close();
            Exporter.Export();
        }
示例#5
0
 public SetupInfo(SetupOptions options, FeatureCAM.FMSetup setup, FeatureCAM.FMSolids fm_solids, List <UCS> doc_ucss)
 {
     this.name         = setup.Name;
     this.enabled      = setup.Enabled;
     this.num_features = setup.Features.Count;
     this.fixture_id   = setup.FixtureID;
     this.tool_fpath   = "";
     this.nc_fpaths    = new List <string>();
     if (this.ucss == null)
     {
         this.ucss = new List <UCS>();
     }
     this.ucss.Add(new UCS(setup.ucs));
     this.first_ucs_name        = setup.ucs.Name;
     this.attach_ucs            = "";
     this.attach_ucs_subspindle = "";
     this.sub_spindle           = (setup.Spindle == FeatureCAM.tagFMSetupSpindleType.eSST_SubSpindle ? true : false);
     if (options == null)
     {
         this.options = new SetupOptions();
         this.options.is_subspindle   = this.sub_spindle;
         this.options.is_export       = this.enabled;
         this.options.is_export_nc    = this.enabled;
         this.options.is_export_stock = this.enabled;
         this.options.is_export_tools = this.enabled;
         this.options.setup_name      = this.name;
         this.options.clamps          = new List <SolidInfo>();
         setup.Activate();
         this.clamps        = new List <SolidInfo>();
         this.options.parts = null;
         if (fm_solids != null)
         {
             foreach (FeatureCAM.FMSolid solid in fm_solids)
             {
                 if (solid.UseAsClamp)
                 {
                     this.clamps.Add(new SolidInfo(solid.Name, ""));
                 }
                 else if (solid.UseAsPartCompareTarget)
                 {
                     if (this.part == null)
                     {
                         this.part = new List <SolidInfo>();
                     }
                     this.part.Add(new SolidInfo(solid.Name, ""));
                 }
             }
         }
         this.options.is_subspindle              = this.sub_spindle;
         this.options.ucs_attach                 = "";
         this.options.attach_ucss_to             = "";
         this.options.ucs_attach_subspindle      = "";
         this.options.attach_ucss_to_subspindle  = "";
         this.options.attach_stock_to            = "";
         this.options.attach_stock_to_subspindle = "";
         this.setup_solid_x              = this.setup_solid_y = this.setup_solid_z = 0;
         this.sub_setup_solid_x          = this.sub_setup_solid_y = this.sub_setup_solid_z = 0;
         this.attach_stock_to            = "";
         this.attach_stock_to_subspindle = "";
         this.attach_ucss_to             = "";
         this.attach_ucss_to_subspindle  = "";
         this.options.is_subspindle      = this.sub_spindle;
         this.options.template_fpath     = "";
     }
     else
     {
         this.options = options;
         if (fm_solids != null)
         {
             InitializeClamps(options, fm_solids);
             if (options.parts != null)
             {
                 foreach (SolidInfo part in options.parts)
                 {
                     FeatureCAM.FMSolid doc_part = (FeatureCAM.FMSolid)fm_solids.Item(part.name);
                     if (doc_part != null)
                     {
                         if (this.part == null)
                         {
                             this.part = new List <SolidInfo>();
                         }
                         this.part.Add(part);
                     }
                 }
             }
             else
             {
                 foreach (FeatureCAM.FMSolid solid in fm_solids)
                 {
                     if (solid.UseAsPartCompareTarget)
                     {
                         if (this.part == null)
                         {
                             this.part = new List <SolidInfo>();
                         }
                         this.part.Add(new SolidInfo(solid.Name, ""));
                     }
                 }
             }
         }
         this.sub_spindle               = options.is_subspindle;
         this.attach_ucss_to            = options.attach_ucss_to;
         this.attach_ucss_to_subspindle = options.attach_ucss_to_subspindle;
         if (options.ucs_attach != "" && IsUCSInDoc(doc_ucss, options.ucs_attach))
         {
             this.attach_ucs = options.ucs_attach;
         }
         if (options.ucs_attach_subspindle != "" && IsUCSInDoc(doc_ucss, options.ucs_attach_subspindle))
         {
             this.attach_ucs_subspindle = options.ucs_attach_subspindle;
         }
         this.attach_stock_to            = options.attach_stock_to;
         this.attach_stock_to_subspindle = options.attach_stock_to_subspindle;
         if (options.fixture != "")
         {
             this.fixture_id = options.fixture;
         }
         else
         {
             this.fixture_id = setup.FixtureID;
         }
         if (options.offsets != null)
         {
             this.work_offsets = options.offsets;
         }
     }
 }