Skip to content

Commit

Permalink
Fixed the empty cut-lists returned in the sw
Browse files Browse the repository at this point in the history
[skip ci]
  • Loading branch information
artem1t committed Nov 19, 2021
1 parent 96dfa97 commit 21eda6b
Show file tree
Hide file tree
Showing 7 changed files with 54 additions and 6 deletions.
2 changes: 1 addition & 1 deletion src/Base/Base.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
<PackageId>Xarial.XCad</PackageId>
<VersionPrefix>0.7.9</VersionPrefix>
<VersionPrefix>0.7.10</VersionPrefix>
<Authors>Xarial</Authors>
<Product>xCAD</Product>
<Copyright>© 2021 Xarial Pty Limited</Copyright>
Expand Down
8 changes: 6 additions & 2 deletions src/SolidWorks/Features/SwFeatureManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -214,8 +214,12 @@ IEnumerable<IBody2> IterateBodies()
if (feat is SwCutListItem)
{
var cutList = (SwCutListItem)feat;
cutList.SetParent(doc, refConf);
yield return cutList;

if (cutList.CutListBodyFolder.GetBodyCount() > 0)//no bodies for hidden cut-lists (not available in the specific configuration)
{
cutList.SetParent(doc, refConf);
yield return cutList;
}
}
else if (feat.Feature.GetTypeName2() == "RefPlane")
{
Expand Down
2 changes: 1 addition & 1 deletion src/SolidWorks/SolidWorks.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
<PackageId>Xarial.XCad.SolidWorks</PackageId>
<VersionPrefix>0.7.9</VersionPrefix>
<VersionPrefix>0.7.10</VersionPrefix>
<Authors>Xarial</Authors>
<Product>xCAD</Product>
<Copyright>© 2021 Xarial Pty Limited</Copyright>
Expand Down
2 changes: 1 addition & 1 deletion src/SwDocumentManager/SwDocumentManager.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
<PackageId>Xarial.XCad.SwDocumentManager</PackageId>
<VersionPrefix>0.7.9</VersionPrefix>
<VersionPrefix>0.7.10</VersionPrefix>
<Authors>Xarial</Authors>
<Product>xCAD</Product>
<Copyright>© 2021 Xarial Pty Limited</Copyright>
Expand Down
2 changes: 1 addition & 1 deletion src/Toolkit/Toolkit.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
<PackageId>Xarial.XCad.Toolkit</PackageId>
<VersionPrefix>0.7.9</VersionPrefix>
<VersionPrefix>0.7.10</VersionPrefix>
<Authors>Xarial</Authors>
<Product>xCAD</Product>
<Copyright>© 2021 Xarial Pty Limited</Copyright>
Expand Down
22 changes: 22 additions & 0 deletions tests/integration/SolidWorks.Tests.Integration/CutListTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -91,5 +91,27 @@ public void ExcludeFromBomTest()
Assert.AreEqual((CutListState_e)0, cutListData["C CHANNEL 80.00 X 8<1>"]);
Assert.AreEqual(CutListState_e.ExcludeFromBom, cutListData["PIPE, SCH 40, 25.40 DIA.<1>"]);
}

[Test]
public void ComponentsCutListTest()
{
Dictionary<string, int> cutListData1;
Dictionary<string, int> cutListData2;

using (var doc = OpenDataDocument(@"CutListsAssembly1\Assem1.SLDASM"))
{
var assm = (ISwAssembly)m_App.Documents.Active;
cutListData1 = assm.Configurations.Active.Components["Part1-1"].ReferencedConfiguration.CutLists.ToDictionary(c => c.Name, c => c.Bodies.Count());
cutListData2 = assm.Configurations.Active.Components["Part1-2"].ReferencedConfiguration.CutLists.ToDictionary(c => c.Name, c => c.Bodies.Count());
}

Assert.AreEqual(1, cutListData1.Count);
Assert.That(cutListData1.ContainsKey("L 25.40 X 25.40 X 3.175<1>"));
Assert.AreEqual(1, cutListData1["L 25.40 X 25.40 X 3.175<1>"]);

Assert.AreEqual(1, cutListData2.Count);
Assert.That(cutListData2.ContainsKey("PIPE 21.30 X 2.3<1>"));
Assert.AreEqual(1, cutListData2["PIPE 21.30 X 2.3<1>"]);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -84,5 +84,27 @@ public void ExcludeFromBomTest()
Assert.AreEqual((CutListState_e)0, cutListData["C CHANNEL 80.00 X 8<1>"]);
Assert.AreEqual(CutListState_e.ExcludeFromBom, cutListData["PIPE, SCH 40, 25.40 DIA.<1>"]);
}

[Test]
public void ComponentsCutListTest()
{
Dictionary<string, int> cutListData1;
Dictionary<string, int> cutListData2;

using (var doc = OpenDataDocument(@"CutListsAssembly1\Assem1.SLDASM"))
{
var assm = (ISwDmAssembly)m_App.Documents.Active;
cutListData1 = assm.Configurations.Active.Components["Part1-1"].ReferencedConfiguration.CutLists.ToDictionary(c => c.Name, c => c.Bodies.Count());
cutListData2 = assm.Configurations.Active.Components["Part1-2"].ReferencedConfiguration.CutLists.ToDictionary(c => c.Name, c => c.Bodies.Count());
}

Assert.AreEqual(1, cutListData1.Count);
Assert.That(cutListData1.ContainsKey("L 25.40 X 25.40 X 3.175<1>"));
Assert.AreEqual(1, cutListData1["L 25.40 X 25.40 X 3.175<1>"]);

Assert.AreEqual(1, cutListData2.Count);
Assert.That(cutListData2.ContainsKey("PIPE 21.30 X 2.3<1>"));
Assert.AreEqual(1, cutListData2["PIPE 21.30 X 2.3<1>"]);
}
}
}

0 comments on commit 21eda6b

Please sign in to comment.