public void Write(ModelDoc2 md) { CustomPropertyManager glP = md.Extension.get_CustomPropertyManager(string.Empty); CutlistData.IncrementOdometer(CutlistData.Functions.GreenCheck); this.ClearProps(md); foreach (SwProperty p in this._innerArray) { p.Write(md); } }
int taskpaneView_TaskPaneToolbarButtonClicked(int ButtonIndex) { switch (ButtonIndex) { case 0: taskpaneHost.Write(); if (Properties.Settings.Default.MakeSounds) { System.Media.SystemSounds.Beep.Play(); } break; case 1: RedbrickConfiguration rbc = new RedbrickConfiguration(); rbc.ShowDialog(); taskpaneHost.ConnectSelection(); break; case 2: taskpaneHost.ReStart(); break; case 3: CutlistData cd = new CutlistData(); cd.IncrementOdometer(CutlistData.Functions.ArchivePDF); cd.Dispose(); cd = null; ArchivePDF.csproj.ArchivePDFWrapper apw = new ArchivePDF.csproj.ArchivePDFWrapper(swApp, GeneratePathSet()); apw.Archive(); break; case 4: System.Diagnostics.Process.Start(Properties.Settings.Default.UsageLink); break; default: break; } return(1); }
/// <summary> /// Show a list of materials used. Doesn't seem overly useful. /// TODO: Make this button cool /// </summary> /// <param name="sender">Who clicked?</param> /// <param name="e">Any args?</param> private void btnMatList_Click(object sender, EventArgs e) { DataDisplay dd = new DataDisplay(); ModelDoc2 doc = (ModelDoc2)PropertySet.SwApp.ActiveDoc; CutlistData cd = PropertySet.CutlistData; string name = string.Empty; swTableType.swTableType st; try { st = new swTableType.swTableType(doc, Redbrick.MasterHashes); cd.IncrementOdometer(CutlistData.Functions.MaterialList); DataTable stp = (DataTable)DictToPartList(st.GetParts(), cd); if (doc != null) { name = doc.GetPathName(); dd.Text = "Materials/Edges used in " + System.IO.Path.GetFileNameWithoutExtension(name); } var q = (from a in stp.AsEnumerable() group a by a.Field <string>("Material") into x orderby x.Key select new { Material = x.Key, Count = x.Count() }); var r = (from a in stp.AsEnumerable() group a by a.Field <string>("EdgeFront") into x where x.Key != string.Empty orderby x.Key select new { Edging = x.Key, Count = x.Count() }); var s = (from a in stp.AsEnumerable() group a by a.Field <string>("EdgeBack") into x where x.Key != string.Empty orderby x.Key select new { Edging = x.Key, Count = x.Count() }); var t = (from a in stp.AsEnumerable() group a by a.Field <string>("EdgeLeft") into x where x.Key != string.Empty orderby x.Key select new { Edging = x.Key, Count = x.Count() }); var u = (from a in stp.AsEnumerable() group a by a.Field <string>("EdgeRight") into x where x.Key != string.Empty orderby x.Key select new { Edging = x.Key, Count = x.Count() }); var v = (from a in q select a.Material) .Union (from b in r select b.Edging) .Union (from c in s select c.Edging) .Union (from d in t select d.Edging) .Union (from f in u select f.Edging); dd.Grid.DataSource = ListToDataTable(v.ToList()); // heheheehe! dd.ColorRows((rw) => { return(rw.Cells["Material"].Value.ToString().Contains("TBD")); }, Color.Yellow, Color.Red); dd.ShowDialog(); } catch (NullReferenceException nre) { if (comboBox1.SelectedValue != null) { Redbrick.InsertBOM(_swApp, (int)comboBox1.SelectedValue); } else { Redbrick.InsertBOM(_swApp); } btnLookup_Click(this, new EventArgs()); } catch (ArgumentOutOfRangeException aoore) { PropertySet.SwApp.SendMsgToUser2(@"No acceptable parts in BOM.", (int)swMessageBoxIcon_e.swMbStop, (int)swMessageBoxBtn_e.swMbOk); } catch (Exception ex) { PropertySet.SwApp.SendMsgToUser2(ex.Message, (int)swMessageBoxIcon_e.swMbStop, (int)swMessageBoxBtn_e.swMbOk); } }
int taskpaneView_TaskPaneToolbarButtonClicked(int ButtonIndex) { switch (ButtonIndex) { case 0: taskpaneHost.Write(); if (Properties.Settings.Default.MakeSounds) System.Media.SystemSounds.Beep.Play(); break; case 1: RedbrickConfiguration rbc = new RedbrickConfiguration(); rbc.ShowDialog(); taskpaneHost.ConnectSelection(); break; case 2: taskpaneHost.ReStart(); break; case 3: CutlistData cd = new CutlistData(); cd.IncrementOdometer(CutlistData.Functions.ArchivePDF); cd.Dispose(); cd = null; ArchivePDF.csproj.ArchivePDFWrapper apw = new ArchivePDF.csproj.ArchivePDFWrapper(swApp, GeneratePathSet()); apw.Archive(); break; case 4: System.Diagnostics.Process.Start(Properties.Settings.Default.UsageLink); break; default: break; } return 1; }
//private void insert_BOM() { // ModelDoc2 md = (ModelDoc2)SwApp.ActiveDoc; // DrawingDoc dd = (DrawingDoc)SwApp.ActiveDoc; // ModelDocExtension ex = (ModelDocExtension)md.Extension; // int bom_type = (int)swBomType_e.swBomType_PartsOnly; // int bom_numbering = (int)swNumberingType_e.swNumberingType_Flat; // int bom_anchor =(int)swBOMConfigurationAnchorType_e.swBOMConfigurationAnchor_TopLeft; // SolidWorks.Interop.sldworks.View v = GetFirstView(SwApp); // if (dd.ActivateView(v.Name)) { // v.InsertBomTable4( // false, // Properties.Settings.Default.BOMLocationX, Properties.Settings.Default.BOMLocationY, // bom_anchor, // bom_type, // v.ReferencedConfiguration, // Properties.Settings.Default.BOMTemplatePath, // false, // bom_numbering, // false); // } //} /// <summary> /// Show what will be uploaded to the as a cutlist, only with hardware and other oddments filtered out. /// </summary> /// <param name="sender">Who clicked?</param> /// <param name="e">Any args?</param> private void btnLookup_Click(object sender, EventArgs e) { DataDisplay dd = new DataDisplay(); dd.swApp = _swApp; ModelDoc2 doc = (ModelDoc2)PropertySet.SwApp.ActiveDoc; CutlistData cd = PropertySet.CutlistData; string name = string.Empty; swTableType.swTableType st; try { st = new swTableType.swTableType(doc, Redbrick.MasterHashes); cd.IncrementOdometer(CutlistData.Functions.ExamineBOM); DataTable stp = (DataTable)DictToPartList(st.GetParts(Redbrick.BOMFilter), cd); dd.PathIndex = st.PathList; if (doc != null) { name = doc.GetPathName(); dd.Text = System.IO.Path.GetFileNameWithoutExtension(name) + " cutlist BOM..."; } dd.Grid.DataSource = stp; dd.ColorRows( // λ! Wooo! (r) => { if (r.Cells["Update"].Value != null) { return(r.Cells["Update"].Value.ToString().ToUpper() == "YES"); } else { return(false); } }, Color.Red, Color.Yellow ); dd.ShowDialog(); } catch (NullReferenceException nre) { if (comboBox1.SelectedValue != null) { Redbrick.InsertBOM(_swApp, (int)comboBox1.SelectedValue); } else { Redbrick.InsertBOM(_swApp); } btnLookup_Click(this, new EventArgs()); } catch (ArgumentOutOfRangeException aoore) { PropertySet.SwApp.SendMsgToUser2(@"No acceptable parts in BOM.", (int)swMessageBoxIcon_e.swMbStop, (int)swMessageBoxBtn_e.swMbOk); } catch (Exception ex) { PropertySet.SwApp.SendMsgToUser2(ex.Message, (int)swMessageBoxIcon_e.swMbStop, (int)swMessageBoxBtn_e.swMbOk); } }