VSTA VB.net example for Visible property
in RobotStudio
Hello,
Dim PartIndex As Integer = 0
Dim PalletBox As Object
' This method is called when the addin is loaded into RobotStudio.
Public Sub AddInStartup()
' TODO: Add startup code here. Create toolbars, etc.
End Sub
' This method is called when the addin is unloaded from RobotStudio.
Public Sub AddInShutdown()
' TODO: Add cleanup code here. Remove toolbars, etc.
End Sub
' Default sample Macro. Can be removed.
' Note: A Macro is defined as a "Public Sub" method, with
' no arguments and with a name that starts with "Macro_"
' Other methods will not be visible from the Addin Browser.
Public Sub Macro_Sample1()
' TODO: Define actions to perform when the Macro is invoked.
' Logger.AddMessage(New LogMessage("Macro_Sample1 output window message."))
End Sub
Public Sub Macro_ShowPart()
' Check that we have an active project
If Project.ActiveProject Is Nothing Then
Exit Sub
End If
' Get the currently selected object
Dim selObject As Object = Project.ActiveProject.Selection.SingleSelectedObject
If PartIndex = Nothing Then
PartIndex = 1
End If
'selObject = TryCast(PalletBox, GraphicComponent)
'Define GraphicComponent
'Select part to Show
Select_Part()
' Create two parts
Dim GraphicBox As New Part()
GraphicBox.Name = PalletBox
Dim gc As GraphicComponent = TryCast(sel, GraphicComponent)
gc.Name = PalletBox
'gc = GraphicBox
'Make the part visible
gc.Visible = Not gc.Visible
PartIndex += 1
End Sub
Public Sub Select_Part()
Select Case PartIndex
Case 1
PalletBox = "Pallet_1_Box_1"
Case 2
PalletBox = "Pallet_1_Box_3"
Case 3
PalletBox = "Pallet_1_Box_123"
Case 4
PalletBox = "Pallet_1_Box_1_2"
Case 5
PalletBox = "Pallet_1_Box_3_2"
Case 6
PalletBox = "Pallet_1_Box_123_2"
Case 7
PalletBox = "Pallet_1_Box_1_3"
Case 8
PalletBox = "Pallet_1_Box_3_3"
Case 9
PalletBox = "Pallet_1_Box_123_3"
Case 10
PalletBox = "Pallet_1_Box_1_4"
Case 11
PalletBox = "Pallet_1_Box_3_4"
Case 12
PalletBox = "Pallet_1_Box_123_4"
Case 13
PalletBox = "Pallet_1_Box_1_5"
Case 14
PalletBox = "Pallet_1_Box_3_5"
Case 15
PalletBox = "Pallet_1_Box_123_5"
Case 16
PalletBox = "Pallet_1_Box_1_6"
Case 17
PalletBox = "Pallet_1_Box_3_6"
Case 18
PalletBox = "Pallet_1_Box_123_6"
Case 19
PalletBox = "Pallet_1_Box_1_7"
Case 20
PalletBox = "Pallet_1_Box_3_7"
Case 21
PalletBox = "Pallet_1_Box_123_7"
Case 22
PalletBox = "Pallet_1_Box_1_8"
Case 23
PalletBox = "Pallet_1_Box_3_8"
Case 24
PalletBox = "Pallet_1_Box_123_8"
Case 25
PalletBox = "Pallet_1_Box_1_9"
Case 26
PalletBox = "Pallet_1_Box_3_9"
Case 27
PalletBox = "Pallet_1_Box_123_9"
End Select
End Sub
Thanks for the help,
Rick
I am trying to use RS 5.12 and VSTA to make a GraphicComponent visible and non visible. I have been looking at the examples in VSTA but it is not getting me anywhere. If anyone has done this and doesn't mind sharing their code would you please help out. Below is what I have thus far and it does not work.
Dim PartIndex As Integer = 0
Dim PalletBox As Object
' This method is called when the addin is loaded into RobotStudio.
Public Sub AddInStartup()
' TODO: Add startup code here. Create toolbars, etc.
End Sub
' This method is called when the addin is unloaded from RobotStudio.
Public Sub AddInShutdown()
' TODO: Add cleanup code here. Remove toolbars, etc.
End Sub
' Default sample Macro. Can be removed.
' Note: A Macro is defined as a "Public Sub" method, with
' no arguments and with a name that starts with "Macro_"
' Other methods will not be visible from the Addin Browser.
Public Sub Macro_Sample1()
' TODO: Define actions to perform when the Macro is invoked.
' Logger.AddMessage(New LogMessage("Macro_Sample1 output window message."))
End Sub
Public Sub Macro_ShowPart()
' Check that we have an active project
If Project.ActiveProject Is Nothing Then
Exit Sub
End If
' Get the currently selected object
Dim selObject As Object = Project.ActiveProject.Selection.SingleSelectedObject
If PartIndex = Nothing Then
PartIndex = 1
End If
'selObject = TryCast(PalletBox, GraphicComponent)
'Define GraphicComponent
'Select part to Show
Select_Part()
' Create two parts
Dim GraphicBox As New Part()
GraphicBox.Name = PalletBox
Dim gc As GraphicComponent = TryCast(sel, GraphicComponent)
gc.Name = PalletBox
'gc = GraphicBox
'Make the part visible
gc.Visible = Not gc.Visible
PartIndex += 1
End Sub
Public Sub Select_Part()
Select Case PartIndex
Case 1
PalletBox = "Pallet_1_Box_1"
Case 2
PalletBox = "Pallet_1_Box_3"
Case 3
PalletBox = "Pallet_1_Box_123"
Case 4
PalletBox = "Pallet_1_Box_1_2"
Case 5
PalletBox = "Pallet_1_Box_3_2"
Case 6
PalletBox = "Pallet_1_Box_123_2"
Case 7
PalletBox = "Pallet_1_Box_1_3"
Case 8
PalletBox = "Pallet_1_Box_3_3"
Case 9
PalletBox = "Pallet_1_Box_123_3"
Case 10
PalletBox = "Pallet_1_Box_1_4"
Case 11
PalletBox = "Pallet_1_Box_3_4"
Case 12
PalletBox = "Pallet_1_Box_123_4"
Case 13
PalletBox = "Pallet_1_Box_1_5"
Case 14
PalletBox = "Pallet_1_Box_3_5"
Case 15
PalletBox = "Pallet_1_Box_123_5"
Case 16
PalletBox = "Pallet_1_Box_1_6"
Case 17
PalletBox = "Pallet_1_Box_3_6"
Case 18
PalletBox = "Pallet_1_Box_123_6"
Case 19
PalletBox = "Pallet_1_Box_1_7"
Case 20
PalletBox = "Pallet_1_Box_3_7"
Case 21
PalletBox = "Pallet_1_Box_123_7"
Case 22
PalletBox = "Pallet_1_Box_1_8"
Case 23
PalletBox = "Pallet_1_Box_3_8"
Case 24
PalletBox = "Pallet_1_Box_123_8"
Case 25
PalletBox = "Pallet_1_Box_1_9"
Case 26
PalletBox = "Pallet_1_Box_3_9"
Case 27
PalletBox = "Pallet_1_Box_123_9"
End Select
End Sub
Thanks for the help,
Rick
Rick Lemberg
0
Comments
-
Hi Rick,I looked at the code and after a minor modification it works. See code marked with red below. There was no variable named "sel" so I assumed you meant "selObject". To make it more robust to not having selected any objects I added a check on the gc variable. It may also be convenient to add some logging during development, why I added some messages. I suppose you are aware that you can step through your VSTA code and set breakpoints etc. if you press "Run" in VSTA.Public Sub Macro_ShowPart()
' Check that we have an active project
If Project.ActiveProject Is Nothing Then
Exit Sub
End If
' Get the currently selected object
Dim selObject As Object = Project.ActiveProject.Selection.SingleSelectedObject
If PartIndex = Nothing Then
PartIndex = 1
End If
'selObject = TryCast(PalletBox, GraphicComponent)
'Define GraphicComponent
'Select part to Show
Select_Part()
' Create two parts
Dim GraphicBox As New Part()
GraphicBox.Name = PalletBox
Dim gc As GraphicComponent = TryCast(selObject, GraphicComponent)
If Not gc Is Nothing Then
Logger.AddMessage(New LogMessage("Selected Graphic Component is: " + gc.Name))
gc.Name = PalletBox
gc.Visible = Not gc.Visible
Else
Logger.AddMessage(New LogMessage("No Graphic Component selected"))
End If
'gc = GraphicBox
'Make the part visible
PartIndex += 1
End SubHenrik Berlin
ABB0 -
Henrik, Thank you for the help. However my code was the wrong code. I am not trying to make a selected object hide but instead select the object with code and then hide or show that object during the runtime of my simulation. I cannot for the life of me figure out how to do that with VB.net. Please continue to help.
Thank You,Rick Lemberg0 -
Never mind, Finally got it figured out:
' Declare the Station and check for active
Dim Stn As Station = Project.ActiveProject
If Stn Is Nothing Then
Exit Sub
End If
If PartIndex = Nothing Then
PartIndex = 1
End If
'Select part to Show
Select_Part()
' Declare GraphicComponent and then assign it
Dim gc As GraphicComponent = Stn.GraphicComponents(PalletBox)
'Make the part visible
If gc IsNot Nothing Then
gc.Visible = Not gc.Visible
PartIndex += 1
gc = Nothing
Else
Logger.AddMessage(New LogMessage("Selected Object: This is not really an object" + gc.Name))
End If
Thank You for the help earlier,
RickRick Lemberg0
Categories
- All Categories
- 5.5K RobotStudio
- 396 UpFeed
- 18 Tutorials
- 13 RobotApps
- 297 PowerPacs
- 405 RobotStudio S4
- 1.8K Developer Tools
- 249 ScreenMaker
- 2.7K Robot Controller
- 310 IRC5
- 59 OmniCore
- 7 RCS (Realistic Controller Simulation)
- 786 RAPID Programming
- AppStudio
- 3 RobotStudio AR Viewer
- 18 Wizard Easy Programming
- 105 Collaborative Robots
- 5 Job listings