diff --git a/ExportDXF/ExportDXF.csproj b/ExportDXF/ExportDXF.csproj
index 3ab8ae4..6561e25 100644
--- a/ExportDXF/ExportDXF.csproj
+++ b/ExportDXF/ExportDXF.csproj
@@ -22,8 +22,8 @@
false
false
true
- 21
- 1.0.0.%2a
+ 0
+ 1.0.1.%2a
false
true
true
diff --git a/ExportDXF/Forms/MainForm.cs b/ExportDXF/Forms/MainForm.cs
index 7fde2f0..d0c61f2 100644
--- a/ExportDXF/Forms/MainForm.cs
+++ b/ExportDXF/Forms/MainForm.cs
@@ -257,7 +257,6 @@ namespace ExportDXF.Forms
var itemExtractor = new BomItemExtractor(bom);
itemExtractor.SkipHiddenRows = true;
- Print(bom.BomFeature.Name);
Print($"Fetching components from {bom.BomFeature.Name}");
var bomItems = itemExtractor.GetItems();
@@ -332,7 +331,7 @@ namespace ExportDXF.Forms
var fileName = GetFileName(item);
var savepath = Path.Combine(savePath, fileName + ".dxf");
- SetLightweightToResolved(item.Component);
+ item.Component.SetLightweightToResolved();
var model = item.Component.GetModelDoc2() as ModelDoc2;
var part = model as PartDoc;
@@ -406,37 +405,6 @@ namespace ExportDXF.Forms
}
}
- private void SetLightweightToResolved(Component2 component)
- {
- var isSuppressed = component.IsSuppressed();
-
- if (isSuppressed)
- return;
- var suppressionState = (swComponentSuppressionState_e)component.GetSuppression();
-
- switch (suppressionState)
- {
- case swComponentSuppressionState_e.swComponentFullyResolved:
- case swComponentSuppressionState_e.swComponentResolved:
- return;
-
- case swComponentSuppressionState_e.swComponentFullyLightweight:
- case swComponentSuppressionState_e.swComponentLightweight:
- var error = (swSuppressionError_e)component.SetSuppression2((int)swComponentSuppressionState_e.swComponentResolved);
-
- if (error == swSuppressionError_e.swSuppressionChangeOk)
- {
- var model = component.GetModelDoc2() as ModelDoc2;
-
- if (model != null)
- {
- model.ForceRebuild3(false);
- }
- }
- break;
- }
- }
-
private string RemoveFontXml(string s)
{
if (s == null)
diff --git a/ExportDXF/ItemExtractor.cs b/ExportDXF/ItemExtractor.cs
index c331d75..b019f3f 100644
--- a/ExportDXF/ItemExtractor.cs
+++ b/ExportDXF/ItemExtractor.cs
@@ -80,32 +80,40 @@ namespace ExportDXF
item.Quantity = qty;
}
+ item.Component = GetComponent(rowIndex);
+
+ return item;
+ }
+
+ private Component2 GetComponent(int rowIndex)
+ {
var isBOMPartsOnly = bom.BomFeature.TableType == (int)swBomType_e.swBomType_PartsOnly;
- List components;
+ IEnumerable components;
if (isBOMPartsOnly)
{
- components = ((Array)bom.GetComponents2(rowIndex, bom.BomFeature.Configuration))?.Cast().ToList();
+ components = ((Array)bom.GetComponents2(rowIndex, bom.BomFeature.Configuration))?.Cast();
}
else
{
- components = ((Array)bom.GetComponents(rowIndex))?.Cast().ToList();
+ components = ((Array)bom.GetComponents(rowIndex))?.Cast();
}
- if (components != null)
+ if (components == null)
+ return null;
+
+ foreach (var component in components)
{
- foreach (var component in components)
- {
- if (component.IsSuppressed())
- continue;
+ component.SetLightweightToResolved();
- item.Component = component;
- break;
- }
+ if (component.IsSuppressed())
+ continue;
+
+ return component;
}
- return item;
+ return null;
}
public List- GetItems()
diff --git a/ExportDXF/SolidWorksExtensions.cs b/ExportDXF/SolidWorksExtensions.cs
index 89e3b09..24603dd 100644
--- a/ExportDXF/SolidWorksExtensions.cs
+++ b/ExportDXF/SolidWorksExtensions.cs
@@ -1,5 +1,6 @@
using SolidWorks.Interop.sldworks;
using SolidWorks.Interop.swconst;
+using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
@@ -138,5 +139,21 @@ namespace ExportDXF
.ToList();
}
+ public static void SetLightweightToResolved(this Component2 component)
+ {
+ var suppressionState = (swComponentSuppressionState_e)component.GetSuppression();
+
+ switch (suppressionState)
+ {
+ case swComponentSuppressionState_e.swComponentFullyResolved:
+ case swComponentSuppressionState_e.swComponentResolved:
+ return;
+
+ case swComponentSuppressionState_e.swComponentFullyLightweight:
+ case swComponentSuppressionState_e.swComponentLightweight:
+ var error = (swSuppressionError_e)component.SetSuppression2((int)swComponentSuppressionState_e.swComponentResolved);
+ break;
+ }
+ }
}
}
\ No newline at end of file