3dcadconsultant
Mechanical
- Jun 3, 2009
- 5
Help.
Trying to get the perimeter and hole count of a 3D model without unfolding it. I have so far
Option Explicit
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc
Dim swSelMgr As SldWorks.SelectionMgr
Dim swFace As SldWorks.Face
Dim swEdge As SldWorks.Edge
Dim swCurve As SldWorks.Curve
Dim varCurveParams As Variant
Dim varEdgeArray As Variant
Dim Length As Double
Dim bRet As Boolean
Dim i As Long
Dim j As Long
Set swApp = CreateObject("SldWorks.Application")
Set swModel = swApp.ActiveDoc
Set swSelMgr = swModel.SelectionManager
Set swFace = swSelMgr.GetSelectedObject3(1)
varEdgeArray = swFace.GetEdges
For i = 0 To UBound(varEdgeArray)
Set swEdge = varEdgeArray(i)
Set swCurve = swEdge.GetCurve
Set swCurve = swEdge.GetCurve
varCurveParams = swEdge.GetCurveParams2
Length = Length + swCurve.GetLength(varCurveParams(6), varCurveParams(7))
Next i
MsgBox "Length = " + Str(Length / 0.0254) + " in"
End Sub
My problem is the tangent edges are counted twice. This is one of my first programes and I am just learning any help would be awsome.
Steve
Trying to get the perimeter and hole count of a 3D model without unfolding it. I have so far
Option Explicit
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc
Dim swSelMgr As SldWorks.SelectionMgr
Dim swFace As SldWorks.Face
Dim swEdge As SldWorks.Edge
Dim swCurve As SldWorks.Curve
Dim varCurveParams As Variant
Dim varEdgeArray As Variant
Dim Length As Double
Dim bRet As Boolean
Dim i As Long
Dim j As Long
Set swApp = CreateObject("SldWorks.Application")
Set swModel = swApp.ActiveDoc
Set swSelMgr = swModel.SelectionManager
Set swFace = swSelMgr.GetSelectedObject3(1)
varEdgeArray = swFace.GetEdges
For i = 0 To UBound(varEdgeArray)
Set swEdge = varEdgeArray(i)
Set swCurve = swEdge.GetCurve
Set swCurve = swEdge.GetCurve
varCurveParams = swEdge.GetCurveParams2
Length = Length + swCurve.GetLength(varCurveParams(6), varCurveParams(7))
Next i
MsgBox "Length = " + Str(Length / 0.0254) + " in"
End Sub
My problem is the tangent edges are counted twice. This is one of my first programes and I am just learning any help would be awsome.
Steve