Get the total length of segments in selected sketch using SOLIDWORKS API
This C# example of stand-alone console application to calculate the total length of all segments in the selected sketch using SOLIDWORKS API. Construction geometry sketch segments are excluded from the calculation.
using SolidWorks.Interop.sldworks; using SolidWorks.Interop.swconst; using System; using System.Linq; namespace CodeStack { class Program { static void Main(string[] args) { var app = Activator.CreateInstance(Type.GetTypeFromProgID("SldWorks.Application")) as ISldWorks; app.Visible = true; if (app.IActiveDoc2 != null) { var feat = app.IActiveDoc2.ISelectionManager.GetSelectedObject6(1, -1) as IFeature; var sketch = feat?.GetSpecificFeature2() as ISketch; if (sketch != null) { var segs = (sketch.GetSketchSegments() as object[])?.Cast<ISketchSegment>(); if (segs != null) { var totalLength = segs.Where(s => !s.ConstructionGeometry).Sum(s => s.GetLength()); app.SendMsgToUser2($"Total length of segments: {totalLength} meters", (int)swMessageBoxIcon_e.swMbInformation, (int)swMessageBoxBtn_e.swMbOk); } else { throw new NullReferenceException("No segments in the sketch"); } } else { throw new NullReferenceException("Select sketch"); } } else { throw new NullReferenceException("Open document"); } } } }