to give you the data structure you're looking for, simultaneously replicating the sub-path index as the single value per branch, so that you get a data structure like {a;b}(b), in your case {45;10}(10) {45;23}(23) {45;26}(26).
Then, a single line of C# does the rest.
A = D.Branch(R);
The access of R must be set to Item, and the access of D must be set to Tree. This means that D will be loaded into the C# component as one huge array (that's why it takes a little while to load when you open the file). Since R is set to Item, the component will run once for each of the 1150 branches in R. Each time, the branch with the value of R (10, 23, 26) will be populated with the corresponding branch {10}, {23}, {26} of the huge array D.
Hope that helps. When you get back maybe tell me what D and R actually mean?
N…
ruct Brep (V) --> Create Set
(L) Create Set: Flatten = True
Deconstruct Brep (V) --> (D) Find Similar Member
Create Set (L) --> (S) Find Similar Member
Deconstruct Brep (V) --> (P) Point to Numbers
(P) Point to Numbers: Graft = True
Find Similar Member (i) --> (D1) Merge
Find Similar Member (i): Simplify = True
# The (i) output is the N in the macro
(D1) Merge: Graft = True
Point to Numbers (N) --> (D2) Merge
Point to Numbers (N): Simpify =True
# The (N) outputs are the x,y,z components of the macro
Create Panel[1], Panel[2], Panel[3]
Panel[1] = ,
Panel[2] = E,
Panel[3] = N,
# start to combine all the parts together
Panel[1] --> (J) Text Join[1]
Find Similar Member (i) --> (T) Text Join[1]
Merge --> (T) Text Join[2]
Panel[1] --> (J) Text Join[2]
Panel[2] --> (A) Concatenate[1]
Text Join[1] --> (B) Concatenate[1]
Panel[3] --> (A) Concatenate[2]
Text Join[2] --> (B) Concatenate[2]
Concatenate[2] --> (D) Shift Paths
Shift Paths --> Tree Statistics
Tree Statistics (C) --> (C) Series
Series --> Int
Create Panel[4], Panel[5]
Panel[4] = "! Panel #"
Panel[5] = 0
Panel[5] = 1
# make sure Panel[5] is set to not multi-line
Panel[4] --> (A) Concatenate[3]
Int --> (B) Concatenate[3]
(B) Concatenate[3]: Graft = True
Concatenate[3] (R): Simplify = True
Shift Paths --> (L) List Insert
# make sure the next hooks are in order
Concatenate[2] --> (I) List Insert
Concatenate[3] --> (I) List Insert
Panel[5] --> (i) List Insert
List Insert (L): Flatten =True
List Insert --> Panel[6]
Panel[6]: Stream Contents =True…
picture:
... and on a PC without anything attached to the serial port. When you open the port, start the read component and its timer, do you then get a stream of <empty> values in the log output? (hmmm... I suppose that's only reasonable - but still, you are also seeing this?)
I suppose that, because of the mutually exclusive behavior of both the spider and grasshopper (i.e. only one at a time can access the COM port), we can deduce that we are listening on the correct port.
Am I listening on the correct pin (if such a notion makes sense at all)? If I look back to the spider software, I see that 9 channels are listed and that it's only the measured value on channel 0 that changes when I press the load cell. Channels 1, 2, and 3 report OVERFLOW; 4, 5, 6, and 7 are pretty much constant at 0.000 to 0.005 V; and channel 8 says FFFF. I do not know how things like that work so I do not know if they reflect reading from the 9 pins on the D-sub 9 connector.
As for your BTW question: no, I don't need to record all of the sensor values. I suppose that the Out value on the Read component will always reflect the most current value and that's all that I need to get on with life. In the end, the idea is that we have 4 load cells in the 4 corners of a plate onto which a vertical pipe is fixed. Loads are then put on the top end of the pipe and we'll have to visualize both direction and magnitude of the bending moment that is calculated from the compression - tension readings from the load cells... We've done this on a scaled model and streamed load cell information into MatLab. Now we'll have to use a different datalogger and I was hoping to be able to do the post processing in Rhino.
wim…
l points" - off by one! Adding the expression "x-1" to the 'Divide|N' input fixes the 'CP' lists from the resulting curves so they are identical when 'ReB|D' = 1.
'ReB' has no default for 'D (Degree)' and when omitted, the resulting curve is segmented (D=1), not the same as the input curve from 'Field Line'. And no matter what value I use for 'D' (2, 3, 4, 5), the 'ReB' and 'Nurbs' curves never match - and the control points don't match either when 'ReB|D' != 1.
This seems odd to me? Inside baseball, I guess, but still... David?…
Added by Joseph Oster at 1:14pm on October 20, 2015