12-05-2020
03:43 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
12-05-2020
03:43 AM
After reading this post i realised there is a better way to do this.
Dim doc As PartDocument = ThisDoc.Document Dim def As SheetMetalComponentDefinition = doc.ComponentDefinition If (def.HasFlatPattern) Then def.FlatPattern.Edit() Else def.Unfold() End If Dim flat As FlatPattern = def.FlatPattern Dim edgeloops As EdgeLoops = flat.TopFace.EdgeLoops Dim oMeasure As MeasureTools = ThisApplication.MeasureTools Dim outerPerimeter As Double = 0 Dim breakthroughsPerimeter As Double = 0 For Each edgeLoop As EdgeLoop In edgeloops ' length is multiplied by 10 to convert cm to mm Dim edgeLength = oMeasure.GetLoopLength(EdgeLoop) * 10 If (EdgeLoop.IsOuterEdgeLoop) Then outerPerimeter = outerPerimeter + edgeLength Else breakthroughsPerimeter = breakthroughsPerimeter + edgeLength End If Next flat.ExitEdit() MsgBox("Number of bends: " & def.Bends.Count & System.Environment.NewLine & "Number of edge loops (that includes outerprofile): " & edgeloops.Count & System.Environment.NewLine & "Number of breakthroughs: " & (edgeloops.Count - 1) & System.Environment.NewLine & "Total outer perimeter: " & Math.Round(outerPerimeter, 1) & System.Environment.NewLine & "Total breakthroughs perimeter: " & Math.Round(breakthroughsPerimeter, 2))
Jelte de Jong
Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.
Blog: hjalte.nl - github.com