Evaluate Points on Surface
This example shows how to evaluate points on a surface.
'---------------------------------------------
'
' Preconditions: Model document is open and a face is
selected.
'
' Postconditions: None
'
'----------------------------------------------
Option Explicit
Sub main()
Dim
swApp As
SldWorks.SldWorks
Dim
swModel As
SldWorks.ModelDoc2
Dim
swSelMgr As
SldWorks.SelectionMgr
Dim
swFace As
SldWorks.face2
Dim
swSurf As
SldWorks.surface
Dim
vSelPt As
Variant
Dim
vClosePt As
Variant
Dim
vEval As
Variant
Set
swApp = Application.SldWorks
Set
swModel = swApp.ActiveDoc
Set
swSelMgr = swModel.SelectionManager
Set
swFace = swSelMgr.GetSelectedObject5(1)
Set
swSurf = swFace.GetSurface
vSelPt
= swSelMgr.GetSelectionPoint(1)
vClosePt
= swSurf.GetClosestPointOn(vSelPt(0),
vSelPt(1), vSelPt(2))
vEval
= swSurf.EvaluateAtPoint(vClosePt(0),
vClosePt(1), vClosePt(2))
Debug.Print
"File = " & swModel.GetPathName
Debug.Print
" Sel
Pt =
(" & vSelPt(0) * 1000 & ", " & vSelPt(1) *
1000 & ", " & vSelPt(2) * 1000 & ") mm"
Debug.Print
" Close
Pt =
(" & vClosePt(0) * 1000 & ", " & vClosePt(1)
* 1000 & ", " & vClosePt(2) * 1000 & ") mm"
Debug.Print
" Close
U-V = ["
& vClosePt(3) & ", " & vClosePt(4) & "]"
Debug.Print
" Normal
=
(" & vEval(0) & ", " & vEval(1) & ",
" & vEval(2) & ")"
Debug.Print
" Dirn
1 =
(" & vEval(3) & ", " & vEval(4) & ",
" & vEval(5) & ")"
Debug.Print
" Dirn
2 =
(" & vEval(6) & ", " & vEval(7) & ",
" & vEval(8) & ")"
Debug.Print
" Curvat
1 =
" & vEval(9)
Debug.Print
" Curvat
2 =
" & vEval(10)
End Sub
'---------------------------------------------