Understanding of the VB-script "index retrieval of beam start /end points" (SpaceFrame-Structure from Jacek Jaskólski)

Hello everyone!
I try to rebuild the file “karamba_test05.ghx” from Jacek Jaskólski from this topic

The definition doesn’t work with my Rhino 6 and Karamba 1.3.1 (License type: student)
First of all, if i open file “karamba_test05.ghx”, a notifikation appears “Unrecognized Objects” about absence of the Plugin “Pipe”, i don’t now whether it important or no

02 Unrecognized Objects

then i replaced all old components with new components

Old and new components


I don’t understand the message “Supplied index too high”

05 index too high

by the VB-component i tried one to one to rewrite the script, but no understand yet, how it works

Messages from new VB-component


I searched in Forum and nothing found to the topic “disassemble element into start and end points”, also i searched in the Manual from Clemens Preisinger (August 9, 2018) and tried to found such component with similar funktionality, but without success

I can not understand, how this script schould functions. Or which component can replace this “temporary solution for index retrieval”
SpaceFrame2019-02-11_02.zip (74.9 KB)

Do you need any additional information from me?
How can I help to clarify my question?


Added on 2019-02-12

Karamba-component “Index to Beam” allows us to make a list of elements from two lists of their start/end points indexes (S.27 in Manual). I’d like flipped approach: from list of Elements in two lists of indexes for start and end points


2018_1_3_1_Manual.pdf (13.5 MB)


************** Added on 2019-02-20 *************

Does anyone know Mr. Jacek Jaskólski?
I tried to send him a message in LinkedIn-Page, but it stays without answer.



Script inside VB-component

Option Strict Off
Option Explicit On

Imports System
Imports System.Collections
Imports System.Collections.Generic

Imports Rhino
Imports Rhino.Geometry

Imports Grasshopper
Imports Grasshopper.Kernel
Imports Grasshopper.Kernel.Data
Imports Grasshopper.Kernel.Types

{D3221BB2-BFB4}

‘’’


‘’’ This class will be instantiated on demand by the Script component.
‘’’

Public Class Script_Instance
Inherits GH_ScriptInstance

#Region “Utility functions”
‘’’

Print a String to the [Out] Parameter of the Script component.
‘’’ String to print.
Private Sub Print(ByVal text As String)
__out.Add(text)
End Sub
‘’’ Print a formatted String to the [Out] Parameter of the Script component.
‘’’ String format.
‘’’ Formatting parameters.
Private Sub Print(ByVal format As String, ByVal ParamArray args As Object())
__out.Add(String.Format(format, args))
End Sub
‘’’ Print useful information about an object instance to the [Out] Parameter of the Script component.
‘’’ Object instance to parse.
Private Sub Reflect(ByVal obj As Object)
__out.Add(GH_ScriptComponentUtilities.ReflectType_VB(obj))
End Sub
‘’’ Print the signatures of all the overloads of a specific method to the [Out] Parameter of the Script component.
‘’’ Object instance to parse.
Private Sub Reflect(ByVal obj As Object, ByVal method_name As String)
__out.Add(GH_ScriptComponentUtilities.ReflectType_VB(obj, method_name))
End Sub
#End Region

#Region “Members”
‘’’

Gets the current Rhino document.
Private RhinoDocument As RhinoDoc
‘’’ Gets the Grasshopper document that owns this script.
Private GrasshopperDocument as GH_Document
‘’’ Gets the Grasshopper script component that owns this script.
Private Component As IGH_Component
‘’’
‘’’ Gets the current iteration count. The first call to RunScript() is associated with Iteration=0.
‘’’ Any subsequent call within the same solution will increment the Iteration count.
‘’’

Private Iteration As Integer
#End Region

‘’’


‘’’ This procedure contains the user code. Input parameters are provided as ByVal arguments,
‘’’ Output parameter are ByRef arguments. You don’t have to assign output parameters,
‘’’ they will have default values.
‘’’

Private Sub RunScript(ByVal sList As List(Of String), ByVal Variable y As Object, ByRef startPoints As Object, ByRef endPoints As Object)
Dim sItem As String
Dim sFirstNumber As String
Dim sSecondNumber As String
Dim S As New list(Of Integer)
Dim E As New list(Of Integer)
Dim i As Integer
Dim l As Integer

For Each sItem In sList
  Dim charArray() As Char = sItem.ToCharArray()
  i = 11
  l = 0
  While charArray(i) <> " "
    i = i + 1
  End While
  sFirstNumber = sItem.Substring(11, i - 11)
  l = sItem.Length
  sSecondNumber = sItem.Substring(i + 5, l - i - 5)
  'Print("S: " + sFirstNumber + "   E: " + sSecondNumber)
  S.add(CInt(sFirstNumber))
  E.add(CInt(sSecondNumber))
Next
startPoints = S
endPoints = E

End Sub

'

'</Custom additional code>

Private __err As New List(Of String)
Private __out As New List(Of String)
Private doc As RhinoDoc = RhinoDoc.ActiveDoc 'Legacy field.
Private owner As Grasshopper.Kernel.IGH_ActiveObject 'Legacy field.
Private runCount As Int32 'Legacy field.

Public Overrides Sub InvokeRunScript(ByVal owner As IGH_Component, _
ByVal rhinoDocument As Object, _
ByVal iteration As Int32, _
ByVal inputs As List(Of Object), _
End Class