I have two extension methods to return sheet metal folder of a part. The problem is that for some files it does not find the sheet metal folder but for some parts it works. I know that the parts that don’t get the same results were made with solidworks 2018 originally.Processing: Part12.SLDPRT…
part12.sldprt
Handle.sldprd
**//-----------These do not yield the same for the Handle.sldprt.
//--------------But works for Part12.sldprt**
/// <summary>
/// Get flat patterns of the part document if there is any
/// </summary>
/// <param name="part">the sheet metal modelDoc2 object</param>
/// <returns>an array of objects castable to <see cref="Feature"/> </returns>
public static object[] GetFlatPatterns(this PartDoc part)
{
ModelDoc2 model = part as ModelDoc2;
if (model == null)
return null;
var featureMgr = model.FeatureManager;
var flatPatternFolder = (FlatPatternFolder)featureMgr.GetFlatPatternFolder();
if (flatPatternFolder == null) return null;
object[] flatPatterns = (object[])flatPatternFolder.GetFlatPatterns();
return flatPatterns;
}
/// <summary>
/// gets the sheetMetal Features of this part document fi there is any
/// </summary>
/// <param name="part">the sheet metal modelDoc2 or PartDoc object</param>
/// <returns>an array of objects castable to <see cref="Feature"/></returns>
public static object[] GetSheetMetals(this PartDoc part)
{
ModelDoc2 model = part as ModelDoc2;
if (model == null)
return null;
var featureMgr = model.FeatureManager;
SheetMetalFolder sheetMetalFolder = featureMgr.GetSheetMetalFolder() as SheetMetalFolder;
if (sheetMetalFolder == null)
return null;
return (object[])sheetMetalFolder.GetSheetMetals();
}