From a6f1ebce34b32259646b1b9642ae53a8f4b6bd19 Mon Sep 17 00:00:00 2001 From: AJ Date: Wed, 2 May 2018 06:32:28 -0400 Subject: [PATCH] Include bend radius on BOM --- ExportDXF/Forms/MainForm.cs | 12 +++++-- ExportDXF/Helper.cs | 52 +++++++++++++++++++++++++-- ExportDXF/Item.cs | 2 ++ ExportDXF/Templates/BomTemplate.xlsx | Bin 9710 -> 9775 bytes 4 files changed, 61 insertions(+), 5 deletions(-) diff --git a/ExportDXF/Forms/MainForm.cs b/ExportDXF/Forms/MainForm.cs index 6b1c19e..b7deaf8 100644 --- a/ExportDXF/Forms/MainForm.cs +++ b/ExportDXF/Forms/MainForm.cs @@ -300,9 +300,10 @@ namespace ExportDXF.Forms { item.Thickness = sheetMetalData.Thickness.FromSldWorks(); item.KFactor = sheetMetalData.KFactor; - } + item.BendRadius = sheetMetalData.BendRadius.FromSldWorks(); + } - if (item.Description == null) + if (item.Description == null) item.Description = model.Extension.CustomPropertyManager[config].Get("Description"); if (item.Description == null) @@ -312,7 +313,7 @@ namespace ExportDXF.Forms item.Material = part.GetMaterialPropertyName2(config, out db); - if (part == null) + if (part == null) continue; SavePartToDXF(part, config, savepath); @@ -426,8 +427,13 @@ namespace ExportDXF.Forms if (item.KFactor > 0) partsSheet.Cells[row, 7].Value = item.KFactor; + + if (item.BendRadius > 0) + partsSheet.Cells[row, 8].Value = item.BendRadius; } + partsSheet.Column(1).AutoFit(); + workbook.Calculate(); pkg.Save(); } diff --git a/ExportDXF/Helper.cs b/ExportDXF/Helper.cs index b570b73..c00bee2 100644 --- a/ExportDXF/Helper.cs +++ b/ExportDXF/Helper.cs @@ -2,7 +2,9 @@ using SolidWorks.Interop.swconst; using System; using System.Collections.Generic; +using System.Diagnostics; using System.Drawing; +using System.Linq; using System.Text; using System.Windows.Forms; @@ -32,7 +34,9 @@ namespace ExportDXF while (feature != null) { - if (feature.GetTypeName() == featureName) + var name = feature.GetTypeName(); + + if (name == featureName) list.Add(feature); feature = feature.GetNextFeature() as Feature; @@ -41,7 +45,24 @@ namespace ExportDXF return list; } - public static bool HasFlatPattern(this ModelDoc2 model) + public static List GetAllSubFeaturesByTypeName(this Feature feature, string subFeatureName) + { + var subFeature = feature.GetFirstSubFeature() as Feature; + var list = new List(); + + while (subFeature != null) + { + Debug.WriteLine(subFeature.GetTypeName2()); + if (subFeature.GetTypeName() == subFeatureName) + list.Add(subFeature); + + subFeature = subFeature.GetNextSubFeature() as Feature; + } + + return list; + } + + public static bool HasFlatPattern(this ModelDoc2 model) { return model.GetBendState() != (int)swSMBendState_e.swSMBendStateNone; } @@ -161,6 +182,33 @@ namespace ExportDXF { return feature?.Parameter(dimName) as Dimension; } + + public static string PunctuateList(this IEnumerable stringList) + { + var list = stringList.ToList(); + + switch (list.Count) + { + case 0: + return string.Empty; + + case 1: + return list[0]; + + case 2: + return string.Format("{0} and {1}", list[0], list[1]); + + default: + var s = string.Empty; + + for (int i = 0; i < list.Count - 1; i++) + s += list[i] + ", "; + + s += "and " + list.Last(); + + return s; + } + } } public static class Units diff --git a/ExportDXF/Item.cs b/ExportDXF/Item.cs index 590e31a..df9ab21 100644 --- a/ExportDXF/Item.cs +++ b/ExportDXF/Item.cs @@ -16,6 +16,8 @@ namespace ExportDXF public double KFactor { get; set; } + public double BendRadius { get; set; } + public string Material { get; set; } public Component2 Component { get; set; } diff --git a/ExportDXF/Templates/BomTemplate.xlsx b/ExportDXF/Templates/BomTemplate.xlsx index df54f7546a38ff3c064be7aabd25481ae36b5341..c37ad5c694206c9c3fbae4c8c1db1f27e2352684 100644 GIT binary patch delta 2463 zcmV;Q31If_ORr3@4G9UB?3QO%0{{SVlNJdge{1!XU=sofYBC~$Xe-U^R-MkwK18Y< zaEdp8S=%&J)%^Fpc1oMJFWs4qh(F=nbMHOZKL60ym2=0W;-Z-&GQ!AVO)d)F+|JRL z>$N*Yj?%O#XeAmpNB2yj4~t)aIX?)w-wLsJ0H9HGRBGMEo~QDX)l`i{%Np3(30YGO ze^Ytusa7&tsFE>VSDue?=+%@r=!g)@_h5+Kj^`{Dc~`SWA3-Fms0R9~ij)$ zHI@6Wb#qa-0I}s2*Y_3_IdvXi+%`heZ3S-kWa9J^o)G>7L*oyYVC#*kn&(m|vC|`f z_Ku|A_)oA$$cqs4Z)5O2q`;Hxj+-1lf3cF`53&lMu)=3Bf`1x~fV8YuVhG+3qD`K- z`Dk&z;}!dQl&(YD_77T{OjXFKsM1-%H7n*Qf~h#L7Ynj$mmRNQm&|-WMBd^_&X>|D z*p7CUz6K!=@bF?7&isja6NHgen#qQ0wi1m79X|T?vzoKmt5Sf%oh$ZF$0dWpe*%4h zuh7ywrdxGMb?J1nnxj>``J%x64gGs`m3>e`Fo3+{rSGk}Sa)N&N5Nk__Wq&`y_+iZBM|Xl%;# z_0}ia4?6_M9WS2AJXovHxMuLG8TPRr2m9v9-){dDv{Wsne;$Z!{KN%nF@;6@S za*q7z6ocQ#wci=PErBZ`At=loEr!z^JzDbKg2UK zo-8dF?}Us!UxAeEoyOM0C6yXZM!RHVj2syo6Y`=UHiyGkpncx3!juwVoXj4PZu+XJ zM>lJ3Dj=nrZmD9X!g5-DHYdA*2hU1g6wF*GXkm^2c9xux_-uVf&b<>p#u~N^-ncm+W-In zWRsf=8-HYw(Mkg`5Jlew{~^TZHmeUJlBA$g5D`@B2MpP1H<(P;%&geIHzI<>$9pc9 z!;Ia0=A=HbaxCQZ`FhX_DU>nN!RgoCc6Fr{3(yFu5ITKC)*F9%Vwpv?EwR&+$b4-K zhY2(Ay39ze*_WC@TC4}db43_=LX@1$#V}l&3{{b|3S}X2x=9v_?+f1kW^XxqEB;fZG`;z~YpaT`NlMSy63f3b_a5Mt|04oTSOc@`4m0NF{Fcin%C+#~RzjFmz;AR4(>@7@0~PfGUU*|jF|>VcFblLTVeNK^J)G4`m0_wdL9qG$z*h%-rdWI@Ujz)-39-NkTJ z0P`Gw;raC`TG|@=E7x*T;B6_tvHfR4*Bc38Jt$N8B+8Eo5g8a10vnE}s2M8(0spm% zs*?r=!-pm@3Zn9RfYB23aXAv7g4p1rqk|GM8s><4m4@GtQ)j7djKD7l&tkANb>C*Pv@29tpf z6_Zva50i5xC$lLZTLcM~?3QO%0{{SVlZ_)Z9Q98%VA}uy0Av9G02BZK0000000000 z0001j43nS?7L$b}5R(HW8Ul|Elc5bIlSCvc0g;n$BtQWWldvQp9M&UCa5Mt|04oRp z02lxO00000000000000!8Iw>M8j}Vk5E~DCj|oNr003hG000pH000000000000000 dsFN`zJ_02llW`?e0yZF%#w8*K^CAEM0080;n6>}_ delta 2386 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 CQ(J-n