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; } }
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); }
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 = ""; }
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(); }
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; } } }