Hi everyone,
I would like to ask, how to measure the selected cylinder surface.
What I have been doing so far...
I was using the VB.NET standard Addin templete and have added a selection control in the UserPMPage.vb. This selection control was so defined, that it can only select the surfaces. Till this step the code works fine. The code for selection1:
selection1 = group1.AddControl(selection1ID, controlType, "selection", leftAlign, options, "Select a cylinder.")
Then I wrote a Function in SwAddin.vb, in order to measure the selected cylinder surface and return its value. Here is the codes...
Public Function GetDiameter(ByVal selection As Object) As Double
Dim surfaceDiameter As Double
Dim sWMeasure As IMeasure
Dim swModel As IModelDoc2
Dim swModelDocExt As IModelDocExtension
Dim status As Boolean
Dim errors As Integer
Dim warnings As Integer
Dim fileName As String
swModel = iSwApp.ActiveDoc
swModelDocExt = swModel.Extension
status = swModelDocExt.SelectByID2("selection", "FACE", 0, 0, 0, False, 0, Nothing, 0)
sWMeasure = swModelDocExt.CreateMeasure
Debug.Print(status)
Debug.Print("Diameter: " & sWMeasure.Diameter)
Return surfaceDiameter
End Function
The Visual Studio Output: Debug.Print(status) gives me False. And Debug.Print("Diameter: " & sWMeasure.Diameter) gives me -1. It means nothing was selected.
My question: I have transfered the selection to the function then to the SelectByID2. What have I done wrong?
Thanks for your help!
SolidworksApi macros