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!