he arc distance.
(The distance difference/error between an arc and a chord is lesser if the segments are small compared to local curvature, as is your case. This is just a technicality...)
You also missed the advantage of use Grasshopper.
GH works with lists and trees of objects! You worked almost with only 1 value/object at time.
In my definition make a "Panel" component and link it step by step at outputs of every component I've used.
Try to understand the logic of the components:
every component have inputs and outputs "slots", if you move the mouse over them, a small bubble comment will come out telling:
1 What type of element should it be linked (symbol), like "number", "points", "curve", "surface", or "boolean"...
2 A short description
3 The current values or the current tree structure
By following the "flow" of the definition, try to also follow the values, and see how the components manage them.
(is this correct?? :D )
…
icosecond laser. In their wisdom the manufacturers of the laser have paired a cutting edge laser with an ancient CNC. The machine requires straight cut lines only (it doesn't handle curves) so these have to be converted from the original design, for which I'm using Grasshopper. Also, it requires multiple passes at a slight offset each time in order to ablate the silver successfully, generated again using Grasshopper.
So far so good. The machine controller is very picky about the format of Gcode it accepts, and it will only accept Gcode. So I am currently exporting the Grasshopper processed design as a dxf and running it through a dxf2gcode converter. This must then be manually processed (I use vi!) to change x references to c, y references to d and remove any references to z. Precision must be to 3 decimal places.
Silkworm is of course ideal for creating Gcode but is pretty specifically written for 3D printing I think? How configurable would it be with the config file to produce what I've described above, even if it's raw gcode which could then be wrapped manually with a header and footer? I'm thinking you'd have to rewrite portions of the module which is of course a bit pointless for such a specific task. Thought I'd ask anyway!
Cheers,
Simon
…
S of elements (chain links in this case), work first at low resolution to reduce compute time and avoid freeze-ups! When the model looks right you can increase resolution (i.e., the number of contours/links in this case).
The first effort (chainmail_2017Jan18b.gh) is getting points at the intersection of contour lines from two planes, XY and YZ, then getting surface normals for those points to 'Orient' the pair of links. This required ignoring all the extraneous points (due to multiple surfaces making up the "polysurface") returned by 'Srf CP (Surface Closest Point)' using two criteria: the 'D (Distance)' value and the 'uvP' coordinates that indicate an edge point (x=0 or 1, y=0 or 1).
Using the YZ plane worked well for the front and back surfaces but results in sparse points on the sides. Using the XZ plane instead has the opposite effect. Would be great if they could be blended somehow (animated gif):
Ultimately, it would probably work best to treat the body section and the arm as two different cylinders with contours conforming better to each surface separately.
The second method (chainmail_2017Jan18c.gh) uses only XY contours and 'DivLength' (divided by length), similar to a brick wall:
…
Added by Joseph Oster at 2:34pm on January 18, 2017
occur more than once in the same list, and different elements with identical values can occur more than once. Also, a list may contain lack of elements, referred to as "nulls".
Sets. Strictly speaking a Set is a mathematical construct which adheres to a strict collection of rules and limitations. Basically, a Set is the same as a List, with the exception that it cannot contain the same element more than once, or indeed two or more different elements with the same values. You see, in mathematics there is no difference between a value and an instance of that value, they are the same thing. In programming however it is possible to store the number 7 in more than one spot in the RAM. Grasshopper does not enforce this rule very strongly though, you can use a lot of Set components on lists that have multiple occurrences of the same value. The big difference between Lists and Sets in Grasshopper is that Sets are only defined for simple data types that have trivial equality comparisons. Basically: booleans, integers, numbers, complex numbers, strings, points, vectors, colours and intervals. Lists can contain all kinds of data.
Strings. Strings are text. There's nothing more to it. I don't know why early programmers chose to call them strings, but I suppose it's a better description of the memory representation of them. Strings are essentially sequences of individual characters.
Trees. Trees are the way all data is stored in Grasshopper. Even when you only have a single item, it will still be stored in a tree. A tree is a sorted collection of lists, where each list is identified by a path. A specific path can only occur once in a tree, when you merge two trees together, lists with identical paths are appended to each other. Trees are an attempt to losslessly represent not just the data itself, but also the history of that data. Imagine you have 4 curves {A,B,C,D} and you divide each into 3 points {X,Y,Z}. Then, for each of those points you create a new line segment {X',Y',Z'} and then divide each of those line segments again into 5 points each {K,L,M,N,O}. The way data is stored in trees, it should be possible to figure out whether a point M belongs to X' or to Z', and whether that X' or Z' came from A, B, C or D. This is why paths are often quite long after a while, because they encode a lot of history.
Paths. A Path is nothing more than a list of integers. It's denoted using curly brackets and semi-colons: {A;B;...;Z}. A Path should never be empty {} or have negative integers {0;-1}, but it is certainly possible to create a path like this and it probably won't even crash Grasshopper. Paths are 'grown' by components that (potentially) create more than one output value for a single input value. For example Divide Curve. It creates N points for every single input curve. In cases like this a new integer is appended to the end of the path.
In the next release the Path logic in Grasshopper is somewhat different. I fixed a number of obscure bugs (hopefully without introducing new fresh bugs) and special cased certain operations to somewhat reduce the speed at which paths grow. This may well break files that rely on a specific tree layout, but I hope the temporary sacrifice will be worth the long-term benefits.
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
ficiently learn concepts and features of Grasshopper at an accelerated pace in an instructor-led hands-on instruction environment. The advantages of using Grasshopper in preliminary design and concept development come to life since the students will be able to create their models on TROTEC Lasers machine. Participants should have basic knowledge of Rhino 5. Details...
Location:TROTEC - Laser (map)7610 Market DriveCanton, MI 48187United States
Instructor:
Andres Gonzalez, ART, McNeel Miami
RhinoFabStudio
To Register:e-mail: Jackie@mcneel.comphone: 305-513-4445http://mcneelmiami.com/training1…
generate a triangle mesh from your set of points using Delaunay Algorithm (than may leave some long thin triangles at the border, that may need to be filtered)
b) use Weaverbirds Constant Quad subdivision to get your undeformed base unit
c) adjust each faces border, so the border polygon starts (and ends) at one of the original generating points. (might do this differenly. It's just so i know the position of each edge or vertex relative to the given original corner of the base unit)
d) move the original corners of the base unit according to the attractor point
Now to simulate your sinusoidal shape:
I use edgeSrf to create a patch from four non planar edge curve.
Two of those are the unmodfied subdivision edges.
The other two are nurbs curves made from four Points:
1) the end point that at the center of the base units edge.
2) one Point somewhere along the edge
those two will ensure continuity between the adjacent subdivision quads.
3) that intermediate Point projected to a plane that is normal to the direction of movement of the final end point
4) the original element Corner, after moving.
the last two will make the curve round out and make sure that all other adjacent curves will join somewhat continously. you may change that to whatever suits you.…
s before solving adjacency. As a result, you got adjacent surfaces that did not match in area and a simulation where conservation of energy was not obeyed.
2) The 'Set Ideal Air Parameters has been phased out as per this discussion: . I have implemented all of your specifications correctly using the new components in the attached file.
3) You specified a solar distribution of 1- FullExterior and this is not suitable for detailed comfort studies where you really want to know how the solar energy is distributed through the space.
I corrected all of this in the attached file but, even without changing all of this, I still got the same result that I did earlier:
I just cannot reproduce your error on my machine. The images that you post seem different from that which is int he GH file that you sent. Are you sure that you are sending me the right version of the file. Also, could you send me your userCustomLibrary again (I was using your old one from here)? Finally, do you have any other GH files open when you expereince this error?
-Chris…
ition" without problem, and i conect any componen to evaluate's input.
Image 2- it seems to be alright but inmediately turns red; It does not matter if i use the expression editor or a "panel".
Image 3- I closed Rhinoceros, i did the same expression and i got the same result, bun then i changed to another more simple expression and it worked,
Image 4-I change to the expression desired and it work.
So my question is about if im making a mistake or theres a problem with my software...
Kind regards.…
ve segments as seen in figure 1.
But as soon as I create more than one set of curves, the loft goes awry. I was able to make simple version of what I’m trying to in rhino as seen in figure 2, however I’d like to be able to quickly make changes in the rotation angle in grasshopper.
So far, it seems to work when I isolate one set of points form the curve segments – top and bottom. However, when I try to loft the entire series of points. I end up with a continuous loft, from the first point to the last point, as seen in figure 3.
Any help would be greatly appreciated, thank you in advance.
- David …
r reference, I uploaded a testfile with labels A to F that shows this issues.
When selecting some objects and pressing the middle mouse button, a button for clustering appears. The inputs and outputs of clusters created with this immense useful function cannot be tagged.
1.
Set up a cluster like in A with inputs/outputs, tag the inputs/outputs with double click, cluster it, the inputs of the clusters B are correctly labeled.
double-click the cluster to edit it, double-click the input to edit the label, edit, save-and-close cluster - the new label doesn't appear at the input. Maybe I'm doing something wrong?
2.
select the objects to be clustered like in C, middle-mouse-button, cluster selection, the result can be seen in D. Again, double-click the cluster to edit it, edit the labels - nothing happens.
3.
This has to do with the visibility of clustered components. E shows two clusters that cannot be displayed, no matter if they are set to visible or not (it's the same component imported from my library, copied, disentangled and made inside visible one time). I believe I created it like method C.
I tried different cases (that's why there are so many differently visible variations in the file), but cannot reproduce this error.
best regards, Laurenz…