Get Data for Scale Feature Example (VBA)
This example shows how to get the data for the selected scale feature.
'------------------------------------------
'
' Preconditions: Model document is open and a scale feature
is selected.
'
'
' Postconditions: None
'
'-------------------------------------------
Option Explicit
Public Enum swScaleType_e
swScaleAboutCentroid
= 0
swScaleAboutOrigin
= 1
swScaleAboutCoordinateSystem
= 2
End Enum
Sub main()
Dim
swApp As
SldWorks.SldWorks
Dim
swModel As
SldWorks.ModelDoc2
Dim
swSelMgr As
SldWorks.SelectionMgr
Dim
swFeat As
SldWorks.feature
Dim
swScale As
SldWorks.ScaleFeatureData
Dim
swCoordSys As
SldWorks.feature
Dim
nX_Scale As
Double
Dim
nY_Scale As
Double
Dim
nZ_scale As
Double
Dim
bIsUniform As
Boolean
Dim
bRet As
Boolean
Set
swApp = CreateObject("SldWorks.Application")
Set
swModel = swApp.ActiveDoc
Set
swSelMgr = swModel.SelectionManager
Set
swFeat = swSelMgr.GetSelectedObject5(1)
Set
swScale = swFeat.GetDefinition
Set
swCoordSys = swScale.CoordinateSystem
swScale.GetScale nX_Scale, nY_Scale, nZ_scale,
bIsUniform
Debug.Print
"File = " & swModel.GetPathName
Debug.Print
" "
& swFeat.Name
Debug.Print
" Type
=
" & swScale.Type
Debug.Print
""
Debug.Print
" BodiesCount
=
" & swScale.GetBodiesCount
Debug.Print
""
Debug.Print
" X
scale =
" & nX_Scale
Debug.Print
" Y
scale =
" & nY_Scale
Debug.Print
" Z
scale =
" & nZ_scale
Debug.Print
" IsUniform
=
" & bIsUniform
Debug.Print
""
Debug.Print
" IsUniform
=
" & swScale.IsUniform
Debug.Print
" ScaleUniform
=
" & swScale.ScaleUniform
Debug.Print
" ScaleX
=
" & swScale.ScaleX
Debug.Print
" ScaleY
=
" & swScale.ScaleY
Debug.Print
" ScaleZ
=
" & swScale.ScaleZ
Debug.Print
""
If
Not swCoordSys Is Nothing Then
Debug.Print
" CoorSys
=
" & swCoordSys.Name
End
If
End Sub
'------------------------------------------