Software : 3d studio max
Category : Modeling
Description : Using the wire parameters to create a scaling circular pattern based on the distance of the circle to a point object.
[...] oftware : Rhino 3d and Grasshopper (Explicit History) Level : Intermediate Description : In this Rhino video tutorial we cover how to make scaling circular patterns based on the distance between points. This is similar to a tutorial i built in 3ds Max with wire parameters. [...]
Hi, I’m trying to have the circle radius respond to two points (more points later on) i.e. when a circle moves away from one point its radius shrinks until it is in range of the other point at which time it enlarges (inversed attribute controller equation). I have tried adding another distance attribute that responds to the new point but it seems as though I can only wire one attribute to the radius at a time. I want to be able to copy the circle many times so creating a new circle with an independet radius would be to time consuming. Any ideas?
Hi,
I’ve been watching your tutorials since yesterday and I’ve done them all. They really helped me so far ! Thanks a lot.
About this tutorial. Whenever I trie to asign a controller to the range from the distancemenu I can’t select the range, it’s displayed in grey. I’ve tried several things, can’t find a solution. Thanks for your respons in advance.
Joshua
David,
The link you posted above on how to produce a system with two points takes me to a password protected page. Can you repost? Thanks again for all the great tutorials.
For anyone who was wondering how to get this to work with multiple points, here’s the expression>>
min((1/(length (panelPos-pointPos)/range) + 1/(length(panelPos-pointPos2)/range2)+ 1/(length(panelPos-pointPos3)/range3)+ 1/(length(panelPos-pointPos4)/range4)+ 1/(length(panelPos-pointPos5)/range5)), 1)
It’s inverted so the closer the point is to the panel, the greater the effect. The max output is limited to 1 so you need to multiply the distance by the max output desired in the wire parameters dialogue.
This is a GREAT tutorial!!! I learned alot because of it. can’t wait for more.
what would the expression be to do the opposite to make the circles bigger as it get closer
HEY LEROY i have to ask you if you have used panelPos instead of cirPos as David did in his tutorial? also is pointPos2 refering to another attribute holder but assigned to a different point? and also range2 is this defined by the same expression as range? thank you!! GREAT TUTORIAL!!!
hey i have gotten point2 to work just like you described it (inversly)however point1 seems to lost its attributs it has no effect on circle and extrusion whatsover….any ideas?
KSOBON, you can use anything to describe the position of your circle. It can be CirclePos, PanelPos, X, Y, whatever. Its just a variable in your expression. The value of that variable comes form when you assign it to an object in the scene in the wire parameters dialog.
pointPos2 should be assigned to the vector position of point 2 in your scene.
The value of Range2is assigned to the custom attribute “Range” on point2.
Did you make point2 by instancing point1? Instancing won’t work. Also, you have to recreate the array after adding the point. Take the circle object with the modified expression (the one you added the point2 variable to) and copy or array. Always make copys of both the objects in the array and the points that are affecting them. If thats not it, start from one circle and double check the values assigned to each variable in your expression. Good luck
i would like to use this kind of mesh with surface flow in rhino so is there a possibility to make this kind of code in rhino or with grasshopper ?? so that when i move point it changes shapes of hole throught the geometry,
if anyone has links to that i would be thankful.
How do you make this with 2 points?
YOu have to work witht he 2 points since the begining or you have to make separated panels, and put them side by side instead?
Now I got it working with 5 points… had to use Bruce Leroy expression, because when you have more than 1 point, it doesn’t works that well.. the points should identify where the bigger holes are!!
Thank you
Is there any way to attached the final panel wall to a already built geometry?
Matias,
I usually create dummy panels (a plane or outline that is the same size/shape as my parametric panel) and arrange them to create the surface of my building exterior. Then I use the “clone and align tool” in max to replace the dummy panels with copies of my parametric panel. This allows me to use David’s point distance method to panelize surfaces that are more complex. Once I have the shape, I can create multiple iterations of the panel with different behaviors and test them out quickly without having to rebuild each time.
The other thing you could do is skin the whole array using the bones and skin tools in max. I’ve played around with it a bit and it creates distoted and hard to control results but it looks awesome. Good luck!
Wow, this is such a cool tutorial. Does anyone know how I could do this but in reverse? So to have just a rectangle where the helper is wired so it pulls the extrusion amount towards itself, with range aswel. For example I am trying to create an animated brick wall where all the bricks can be pull out together but to lessler percentages in order to make patterns etc.
Andrew Heumann on It’s coming…. AutoCAD on a Mac!?!?!:
It's easy to get the beta, too; just go to autodesks beta website and register as having a Mac - the[+]
Revit Video Tutorial - Exporting DWG - Solids http://ow.ly/2xkbs - Old video, settings are still relevant. I'll post an updated version soon 2 days ago
[...] oftware : Rhino 3d and Grasshopper (Explicit History) Level : Intermediate Description : In this Rhino video tutorial we cover how to make scaling circular patterns based on the distance between points. This is similar to a tutorial i built in 3ds Max with wire parameters. [...]
Hi, I’m trying to have the circle radius respond to two points (more points later on) i.e. when a circle moves away from one point its radius shrinks until it is in range of the other point at which time it enlarges (inversed attribute controller equation). I have tried adding another distance attribute that responds to the new point but it seems as though I can only wire one attribute to the radius at a time. I want to be able to copy the circle many times so creating a new circle with an independet radius would be to time consuming. Any ideas?
Take a look at this http://www.liftarchitects.com/journal/2007/2/18/interactive-panels.html
what is character thing….Please I can’t found that….
When I change the expression in the track view to add the minimum and evaluate it it stops working altogether. I’m clueless why its doing this
I’ve redone it a couple times with the same results
min(length( cirPos - pointPos) / range,1)
is what I’m typing in the expression box
Any help would be appreciated. Great tutorial though!
I figured it out. I guess my scale was just messed up because it worked fine when I upped the range (range,28) instead of 1
Cool, Sorry i didn’t get back you faster
No problem!
This is one of those things where not paying attention to minor details can really throw things out of wack.
Thanks thought. Great website. I’ve learned a ton.
Great tutorial….thanks a lot!!
(TR) Çok Güzel, Teşekkürler…
(ENG) Very Good, Thanks…
Hi,
I’ve been watching your tutorials since yesterday and I’ve done them all. They really helped me so far ! Thanks a lot.
About this tutorial. Whenever I trie to asign a controller to the range from the distancemenu I can’t select the range, it’s displayed in grey. I’ve tried several things, can’t find a solution. Thanks for your respons in advance.
Joshua
David,
The link you posted above on how to produce a system with two points takes me to a password protected page. Can you repost? Thanks again for all the great tutorials.
For anyone who was wondering how to get this to work with multiple points, here’s the expression>>
min((1/(length (panelPos-pointPos)/range) + 1/(length(panelPos-pointPos2)/range2)+ 1/(length(panelPos-pointPos3)/range3)+ 1/(length(panelPos-pointPos4)/range4)+ 1/(length(panelPos-pointPos5)/range5)), 1)
It’s inverted so the closer the point is to the panel, the greater the effect. The max output is limited to 1 so you need to multiply the distance by the max output desired in the wire parameters dialogue.
This is a GREAT tutorial!!! I learned alot because of it. can’t wait for more.
what would the expression be to do the opposite to make the circles bigger as it get closer
I ask something
in parameter wiring at 6:46 insert distance “48
but i don’t understnading “48
what can i inset “48??
HEY LEROY i have to ask you if you have used panelPos instead of cirPos as David did in his tutorial? also is pointPos2 refering to another attribute holder but assigned to a different point? and also range2 is this defined by the same expression as range? thank you!! GREAT TUTORIAL!!!
hey i have gotten point2 to work just like you described it (inversly)however point1 seems to lost its attributs it has no effect on circle and extrusion whatsover….any ideas?
KSOBON, you can use anything to describe the position of your circle. It can be CirclePos, PanelPos, X, Y, whatever. Its just a variable in your expression. The value of that variable comes form when you assign it to an object in the scene in the wire parameters dialog.
pointPos2 should be assigned to the vector position of point 2 in your scene.
The value of Range2is assigned to the custom attribute “Range” on point2.
Did you make point2 by instancing point1? Instancing won’t work. Also, you have to recreate the array after adding the point. Take the circle object with the modified expression (the one you added the point2 variable to) and copy or array. Always make copys of both the objects in the array and the points that are affecting them. If thats not it, start from one circle and double check the values assigned to each variable in your expression. Good luck
thanks for this great tutorial,
i would like to use this kind of mesh with surface flow in rhino so is there a possibility to make this kind of code in rhino or with grasshopper ?? so that when i move point it changes shapes of hole throught the geometry,
if anyone has links to that i would be thankful.
@Bruce Leroy: thanks a lot for your epression it works perfectly
And of course thanks for great tutorial, i used to in my school project.
Great Tutorial I was looking for how to push the limits in max parametric modeling without going for grasshopper etc .
How do you make this with 2 points?
YOu have to work witht he 2 points since the begining or you have to make separated panels, and put them side by side instead?
Now I got it working with 5 points… had to use Bruce Leroy expression, because when you have more than 1 point, it doesn’t works that well.. the points should identify where the bigger holes are!!
Thank you
Is there any way to attached the final panel wall to a already built geometry?
Matias,
I usually create dummy panels (a plane or outline that is the same size/shape as my parametric panel) and arrange them to create the surface of my building exterior. Then I use the “clone and align tool” in max to replace the dummy panels with copies of my parametric panel. This allows me to use David’s point distance method to panelize surfaces that are more complex. Once I have the shape, I can create multiple iterations of the panel with different behaviors and test them out quickly without having to rebuild each time.
The other thing you could do is skin the whole array using the bones and skin tools in max. I’ve played around with it a bit and it creates distoted and hard to control results but it looks awesome. Good luck!
Wow, this is such a cool tutorial. Does anyone know how I could do this but in reverse? So to have just a rectangle where the helper is wired so it pulls the extrusion amount towards itself, with range aswel. For example I am trying to create an animated brick wall where all the bricks can be pull out together but to lessler percentages in order to make patterns etc.
Great tutorial. Seems you had a bad cold. I just wish you were not sniffling etc. it is very annoying.
thanks, sorry you were annoyed…….