iew mode:
instead of the fabrication mode (individual Breps ready for 3d printing - minus "some" little details with regard their effortless connection > this is what V3 does):
2. GH does not (AFAIK) include the mesh.Offset capability (used a little C# for that).
3. I promise to translate the test C# used into native components ... if the result is what you are after (you never know, he he).
4. Rounding (fillet) the thickened panel lips (around the hole and with regard perimeter panels) is doable but only via code: AFAIK GH does not include the Surface.CreateRollingBallFillet method (something that does fillets, that is - forget it for the moment). In fact ... there's a complex way to do it without that method ... but is not for the moment (next week you'll be 100% more experienced, he he).…
ast item from the produced List using ..er... hmm ... an ultra complex C# thingy like this:
See attached sequence (slider was set to 70 "ticks").
2. For the actual thing (the collapsing simulation, that is), I'll post a bunch of defs that do things like that as soon as I could find them: in what workstation are? why I did them? when? what were the names? what was the directory? the partition? etc etc... (Unless some other good Samaritan ... could provide a similar def).
Moral: Alzheimer, what else?
best, Lord of Darkness…
will work slightly different from before. Sorry about breaking this, but it proved impossible to improve the selection logic with the fairly ambiguous notation that was implemented already.
Not every change is breaking though and I hope that most simple matching rules will work as before. There will be a McNeel webinar on Wednesday the 6th of November where I discuss the new selection rules (as well as path mapping syntax and relative offsets within one or more data trees). This will be a pretty hard-core webinar aimed at expert users. The event will be recorded so you can always go and watch it later. I figured I'd briefly explain the new selection rules on Ning before I release the update though.
-------------------------------------------------------------------------------
Imagine we have the following data tree, containing a bunch of textual characters:
{0;0} = [a,e,i,o,u,y] {0;1} = [ä,ë,ê,ï,î,ö,ô,õ,ü,û,ÿ,ý] {1;0} = [b,c,d,f,g,h,j,k,l,m,n,p,q,r,s,t,v,w,x,z] {1;1} = [ç,ĉ,č,ĝ,ř,š,ş,ž]
There are a total of four branches {0;0}, {0;1}, {1;0} and {1;1}. The first branch contains all the vowels that are part of the standard English alphabet. The second branch contains all non-standard vowels and branches three and four contain the standard and non-standard consonants respectively.
So what if we want to select from this tree only the standard vowels? Basically include everything in the first branch and disregard everything else. We can use the [Tree Split] component with a selection rule to achieve this:
{0;0}
This selection rule hard-codes the number zero in both tree path locations. It doesn't define an item index rule, so all items in {0;0} will be selected.
If we want all the vowels (both standard and non-standard), then we have several options:
{0;?} = select all branches that start with 0
{0;(0,1)} = select all branches that start with 0 and end in either 0 or 1
{0;(0 to 1)} = ......................................... and end in the range 0 to 1.
Conversely, selecting all standard vowels and consonants while disregarding all non-standard character can be achieved with rules as follows:
{?;0}
{(0,1);0}
{(0 to 1);0}
It is also possible to select items from each branch in addition to limiting the selection to specific branches. In this case another rule stated in square brackets needs to be appended:
{0;?}[0 to 2]
The above rule will select the first three vowels from the standard and the non-standard lists.
Basically, rules work in a very consistent way, but there are some syntax conventions you need to know. The first thing to realize is that every individual piece of data in a data-tree can be uniquely and unambiguously identified by a collection of integers. One integer describes its index within the branch and the others are used to identify the branch within the tree. As a result a rule for selection items always looks the same:
{A;B;C;...;Z}[i] where A, B, C, Z and i represent rules.
It's very similar to the Path Mapper syntax except it uses square brackets instead of parenthesis for the index (the Path Mapper will follow suit soon, but that won't be a breaking change). You always have to define the path selector rule in between curly brackets. You can supply any number of rules as long as you separate them with semi-colons.
The index rule is optional, but -when provided- it has to be encased in square brackets after the path selection rule(s).
The following rule notations are allowed:
* Any number of integers in a path
? Any single integer
6 Any specific integer
!6 Anything except a specific integer
(2,6,7) Any one of the specific integers in this group.
!(2,6,7) Anything except one of the integers in this group.
(2 to 20) Any integer in this range (including both 2 and 20).
!(2 to 20) Any integer outside this range.
(0,2,...) Any integer part of this infinite sequence. Sequences have to be at least two integers long, and every subsequent integer has to be bigger than the previous one (sorry, that may be a temporary limitation, don't know yet).
(0,2,...,48) Any integer part of this finite sequence. You can optionally provide a single sequence limit after the three dots.
!(3,5,...) Any integer not part of this infinite sequence. The sequence doesn't extend to the left, only towards the right. So this rule would select the numbers 0, 1, 2, 4, 6, 8, 10, 12 and all remaining even numbers.
!(7,10,21,...,425) Any integer not part of this finite sequence.
Furthermore, it is possible to combine two or more rules using the boolean and/or operators. If you want to select the first five items in every list of a datatree and also the items 7, 12 and 42, then the selection rule would look as follows:
{*}[(0 to 4) or (6,11,41)]
The asterisk allows you to include all branches, no matter what their paths looks like.
It is at present not possible to use the parenthesis to define rule precedence, rules are always evaluated from left to right. It is at present also not possible to use negative integers to identify items from the end of a list.
If you want to know more, join the Webinar on Wednesday!
--
David Rutten
david@mcneel.com
Seattle, WA…
Added by David Rutten at 8:57pm on November 3, 2013
he inside part of each panel ... er ... what this means? (also what means panel?)
3. I can't get the attractor point to work? ... In what sense? BTW: if it didn't worked you wouldn't be able to anchor the mesh at the "center" point (or something "similar").
Anyway I'll be back with V2 (the trad update) that does more things.
BTW: What exactly is this? a toy? a small decorative model? a "real" 200' long envelope? Do you have plans to make it? (object's size is critical for deciding the whole approach - either modular or "one piece"). …
4,4}... but this is sequence for Nurbs curve . I want finding a Nurbs surface.for example in 2 direction u{0,0,0,1,1,1,2.3..} and v{0.0.0.1,2} what's the proper action ?
2-in rhino >>>properties of object>>>detail for Nurbs surfaces somewhere demonstrated : "U": degree =3 CV count = 5 (0.0605688 <= U <= 0.954948)
"V": degree =3 CV count = 14 (0.503634 <= V <= 1.00363)
whats a meaning of this phrase in the Parenthesis ? and is it important for (u&v) that value of them be between 0 and 1 ? thank you for your consideration about the issue. With best regards.…
e it as the same type. It refers to a different type definition apparently.
Error:
error: [A]MassPix cannot be cast to [B]MassPix. Type A originates from '7ea7fec0-99c5-49a8-ae80-af752ac2be94, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' in the context 'LoadFrom' at location 'C:\Users\pnourian\AppData\Local\Temp\7ea7fec0-99c5-49a8-ae80-af752ac2be94.dll'. Type B originates from 'fd0b2126-e10f-49de-9fc9-5504405d4135, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' in the context 'LoadFrom' at location 'C:\Users\pnourian\AppData\Local\Temp\fd0b2126-e10f-49de-9fc9-5504405d4135.dll'. (line: 82)
This is the case:
in component A:
Private Sub RunScript(ByVal x As Object, ByVal y As Object, ByRef A As Object) Dim kjh As New MassPix(2.1, 2.3, 4, 5) A = kjh End Sub
'<Custom additional code> Public Class MassPix Private x As Double Private y As Double Private S As Integer Private K As Integer Sub New(xu As Double, yv As Double, SZ As Integer, KL As Integer) x = Xu y = yv s = Sz k = Kl End Sub End Class '</Custom additional code> End Class
and in component B:
Private Sub RunScript(ByVal x As Object, ByVal y As Object, ByRef A As Object) Dim ABC As MassPix = CType(x, MassPix)
End Sub
'<Custom additional code> Public Class MassPix Private x As Double Private y As Double Private S As Integer Private K As Integer Sub New(xu As Double, yv As Double, SZ As Integer, KL As Integer) x = Xu y = yv s = Sz k = Kl End Sub End Class '</Custom additional code> End Class
the file is attached
ANY HELP IS VERY MUCH APPRECIATED! …
ist<Point3d>>();
// inside a for loop:
List<Point3d> curveA = new List<Point3d>();
List<Point3d> curveB = new List<Point3d>();
.... fill the lists ...
// add to tree
int[] branchPath = new int[2] {k, 0};output.Add(curveA, new GH_Path(branchPath));branchPath[1] = 1;output.Add(curveB, new GH_Path(branchPath));
.....
Instead of giving me a tree I can work with, the tree contains 2 System.Collection.Generic.List .. which are not recognised in Grasshopper. The values are not reachable...
If I skip the tree and return only one list, it works fine...
Any thoughts?
Cheers from the Switch the LampiOn Workshop in Trier
…
posted rather testifies that. Randomness is the virtue here NOT equality. BTW: forget completely "optimization" of the mount points et all.
2. The thing in pic is airy (quality Numero Uno on that type of stuff, especially for things with no real load bearing capability) meaning minimum profiles ... meaning FORGET wood. Use aluminum tubes (rather cheaper than wood) as follows: screw the Captain Hook "node" in some kind of machined tube end (a humble massif cylinder that is screwed or clued [Araldide 2 part Epoxy] to the tube AND machined with threads for the hook).
NOTE: I could make a simple tube "adjustment" system that could allow you to build that on-the-fly WITHOUT any GH/K or anything: just start connecting variable length tubes ... er ... hmm ... randomly. This is the recommended way to do it anyway: we can't emulate art with software and even if we could: it's the art of pointless.
3. Additionally the whole conceptual aesthetics BEG for some kind of metal instead of wood. The fact that wood is aplenty in Russia doesn't justify killing trees (for any scope), anyway.
4. Using rings to "attach" the hooks ... well that could yield a highly unstable structure for more than obvious reasons. I could provide to you dozens of highly sophisticated bespoke solutions on that matter ... but they are unsuitable for this DIY occasion: I must think on a zero basis on that puzzle - allow me some time to propose the best "adapter" (easy, cheap, stable and allowing some liberties).
5. A Connectivity tree (see for instance Sandbox) can resolve with easy the equal axis worry of yours (thus: FORGET equality, just buy a hack-saw [ aluminum is very easy to "cut", he he]).
All in all: I like that a lot. I'll post soon some examples related with the all overall approach (including the node, he he). You don't need Kangaroo for that (and dare I say no structural analysis IF the structure to be is "similar" in size with the one pictured).
more soon, best, Lord of Darkness…
o connect everything).
You need to specify a rule to balance like:
connect to nearest powered house with lowest "K"
where K is:
K = (distance to a near powered house)*(constant price per meter for tube)+(total distance to initial generator)*(costant price per meter for copper wire)
Or something similar...
Also what is the point that generators have a range described with a circle? If near houses are placed in a spiral-like sequence, you will get a single line connection running in spiral, but the wire length for the last house can be easy bigger than the radius coverage of the circle of the generator. (Can you understand my rubbish english? XD )
Also in my solution (try in attachment) this happen:
As you can see top-middle generator is powering up houses inside left circle.
(Yes, in my incomplete def. here, circle radius is completely ignored for now :D )
Rules needed, or if you just need to partition the total work for each circle, that's simple, but you should and would expect spiral-like wiring situations, that would be odd...
(also, when a house in range of 2 generators, you need a rule to choose one...)…
yas una curva con la polilinea resultante del componente Geo. Para ello utiliza un componente de Divide curve en Geo seteando el N en 1 y K en True (para que divida la curva solo en los vertices de esquina), luego utiliza un componente de curva interpolada.
2. El ejemplo entregaba una flatten list a kagaroo asi que yo hice lo mismo. La verdad es que no he trabajado mucho con kangaroo pero creo que no soporta multiples listas.
…