Set lightweight components to resolved
This commit is contained in:
@@ -22,8 +22,8 @@
|
|||||||
<UpdatePeriodically>false</UpdatePeriodically>
|
<UpdatePeriodically>false</UpdatePeriodically>
|
||||||
<UpdateRequired>false</UpdateRequired>
|
<UpdateRequired>false</UpdateRequired>
|
||||||
<MapFileExtensions>true</MapFileExtensions>
|
<MapFileExtensions>true</MapFileExtensions>
|
||||||
<ApplicationRevision>21</ApplicationRevision>
|
<ApplicationRevision>0</ApplicationRevision>
|
||||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
<ApplicationVersion>1.0.1.%2a</ApplicationVersion>
|
||||||
<UseApplicationTrust>false</UseApplicationTrust>
|
<UseApplicationTrust>false</UseApplicationTrust>
|
||||||
<PublishWizardCompleted>true</PublishWizardCompleted>
|
<PublishWizardCompleted>true</PublishWizardCompleted>
|
||||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||||
|
|||||||
@@ -257,7 +257,6 @@ namespace ExportDXF.Forms
|
|||||||
var itemExtractor = new BomItemExtractor(bom);
|
var itemExtractor = new BomItemExtractor(bom);
|
||||||
itemExtractor.SkipHiddenRows = true;
|
itemExtractor.SkipHiddenRows = true;
|
||||||
|
|
||||||
Print(bom.BomFeature.Name);
|
|
||||||
Print($"Fetching components from {bom.BomFeature.Name}");
|
Print($"Fetching components from {bom.BomFeature.Name}");
|
||||||
|
|
||||||
var bomItems = itemExtractor.GetItems();
|
var bomItems = itemExtractor.GetItems();
|
||||||
@@ -332,7 +331,7 @@ namespace ExportDXF.Forms
|
|||||||
var fileName = GetFileName(item);
|
var fileName = GetFileName(item);
|
||||||
var savepath = Path.Combine(savePath, fileName + ".dxf");
|
var savepath = Path.Combine(savePath, fileName + ".dxf");
|
||||||
|
|
||||||
SetLightweightToResolved(item.Component);
|
item.Component.SetLightweightToResolved();
|
||||||
|
|
||||||
var model = item.Component.GetModelDoc2() as ModelDoc2;
|
var model = item.Component.GetModelDoc2() as ModelDoc2;
|
||||||
var part = model as PartDoc;
|
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)
|
private string RemoveFontXml(string s)
|
||||||
{
|
{
|
||||||
if (s == null)
|
if (s == null)
|
||||||
|
|||||||
@@ -80,32 +80,40 @@ namespace ExportDXF
|
|||||||
item.Quantity = qty;
|
item.Quantity = qty;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
item.Component = GetComponent(rowIndex);
|
||||||
|
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Component2 GetComponent(int rowIndex)
|
||||||
|
{
|
||||||
var isBOMPartsOnly = bom.BomFeature.TableType == (int)swBomType_e.swBomType_PartsOnly;
|
var isBOMPartsOnly = bom.BomFeature.TableType == (int)swBomType_e.swBomType_PartsOnly;
|
||||||
|
|
||||||
List<Component2> components;
|
IEnumerable<Component2> components;
|
||||||
|
|
||||||
if (isBOMPartsOnly)
|
if (isBOMPartsOnly)
|
||||||
{
|
{
|
||||||
components = ((Array)bom.GetComponents2(rowIndex, bom.BomFeature.Configuration))?.Cast<Component2>().ToList();
|
components = ((Array)bom.GetComponents2(rowIndex, bom.BomFeature.Configuration))?.Cast<Component2>();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
components = ((Array)bom.GetComponents(rowIndex))?.Cast<Component2>().ToList();
|
components = ((Array)bom.GetComponents(rowIndex))?.Cast<Component2>();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (components != null)
|
if (components == null)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
foreach (var component in components)
|
||||||
{
|
{
|
||||||
foreach (var component in components)
|
component.SetLightweightToResolved();
|
||||||
{
|
|
||||||
if (component.IsSuppressed())
|
|
||||||
continue;
|
|
||||||
|
|
||||||
item.Component = component;
|
if (component.IsSuppressed())
|
||||||
break;
|
continue;
|
||||||
}
|
|
||||||
|
return component;
|
||||||
}
|
}
|
||||||
|
|
||||||
return item;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Item> GetItems()
|
public List<Item> GetItems()
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using SolidWorks.Interop.sldworks;
|
using SolidWorks.Interop.sldworks;
|
||||||
using SolidWorks.Interop.swconst;
|
using SolidWorks.Interop.swconst;
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@@ -138,5 +139,21 @@ namespace ExportDXF
|
|||||||
.ToList();
|
.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;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user