Get Normal of Planar Surface Example (VBA)
This example shows how to the normal parameters of a planar surface.
'----------------------------------------------
'
' Preconditions:
' (1)
Part, assembly, or drawing document is open.
' (2)
Face of a planar surface is selected.
'
' Postconditions:
None
'
' NOTE:
The normal of a surface (Surface::PlaneParams)
' cannot
be in the same direction as the normal
' of
the face (Face2::Normal).
'
'---------------------------------------------
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
vPlaneParam As
Variant
Dim
vFaceNorm As
Variant
Dim
i As
Long
Dim
bRet As
Boolean
Set
swApp = Application.SldWorks
Set
swModel = swApp.ActiveDoc
Set
swSelMgr = swModel.SelectionManager
Set
swFace = swSelMgr.GetSelectedObject5(1)
Set
swSurf = swFace.GetSurface: Debug.Assert
swSurf.IsPlane
vPlaneParam
= swSurf.PlaneParams
vFaceNorm
= swFace.Normal
Debug.Print
"File = " & swModel.GetPathName
Debug.Print
" Surface"
Debug.Print
" normal
=
(" & vPlaneParam(0) & ", " & vPlaneParam(1)
& ", " & vPlaneParam(2) & ")"
Debug.Print
" root
=
(" & vPlaneParam(3) * 1000# & ", " & vPlaneParam(4)
* 1000# & ", " & vPlaneParam(5) * 1000# & ")
mm"
Debug.Print
" Face"
Debug.Print
" normal
=
(" & vFaceNorm(0) & ", " & vFaceNorm(1) &
", " & vFaceNorm(2) & ")"
Debug.Print
" FaceInSurfaceSense
=
" & swFace.FaceInSurfaceSense
End Sub
'----------------------------------------------