he time to work with it.
the project is about facade strips which turns along height. the top angle is
parallel to the facade and the bottom is max. 90 degrees twisted, but the strips
should turn diffrently to achieve more dinamic look.
first i have tried to achieve this by calculating distance between the rotation angle from points of the grid and a single point.
then i have tried to ad some more effecting points and used the distance to the divided surface (the circles are just to control the area of effection):
i manually lofted it.
the result is a bit annoying becouse the points that effect the angle are always visible:
i have triend to solve this by drawing a line and divided it to recieve points along the bottom of the geometry. the result is not working properly:
Anyway,
there must be a better/smoother way to achieve this. i would like to effect the twist of the surfaces by distance to a spline, but im just lost. can you help me please?
the problems im encountering:
0- distance spline to grid to effect the angle
1- list of x/y coordinates and angle of rotation for each point of the grid
2- export points to excel
3- lofting lines in one direction only (x1, x2, x3...)
4- reduce the list data to 2 decimal (0,00)
5- maybe angle from radian to degrees
thx…
each face of the mesh, but apparentely rhinoscriptsyntax.MeshVertexColors doesn't give me an output I can read and use , and same goes when I try to use rhinoscriptsyntax.ColorHLSToRGB command
look:
import rhinoscriptsyntax as rs
rs.Command("_selmesh")
rs.Command("unweld 0")
rs.UnselectAllObjects
rs.AddLayer("MainMesh")#'pick Mesh which is unwelded at 0strObject = rs.GetObject("Select mesh", 32)#'store mesh in base layerrs.ObjectLayer(strObject,"MainMesh")#' get the face vertices of the mesharrFaces = rs.MeshFaces(strObject, True)#'get the vertex colors of the meshcolor = rs.MeshVertexColors(strObject)
i = 0
arrFace = []arrHLS = []arrFaceVertices2 = []
while i <= len(arrFaces)-1:''''''arrFace.append(arrFaces[i]) ''''''arrFace.append(arrFaces[i+1]) ''''''arrFace.append(arrFaces[i+2]) ''''''arrFace.append(arrFaces[i+3]) ''''''arrHLS.append(rs.ColorRGBToHLS(color[i])) ''''''print(color[i]) ''''''print arrHLS
'''''' i = i + 4
''''''arrFace = [] ''''''arrHLS = [] ''''''arrFaceVertices2 = []
############
The result I get is :
Color [A=255, R=55, G=55, B=55][<Rhino.Display.ColorHSL object at 0x00000000000001F7 [Rhino.Display.ColorHSL]>]Color [A=255, R=55, G=55, B=55][<Rhino.Display.ColorHSL object at 0x00000000000001F8 [Rhino.Display.ColorHSL]>]Color [A=255, R=55, G=55, B=55][<Rhino.Display.ColorHSL object at 0x00000000000001F9 [Rhino.Display.ColorHSL]>]Color [A=255, R=59, G=59, B=59][<Rhino.Display.ColorHSL object at 0x00000000000001FA [Rhino.Display.ColorHSL]>]Color [A=255, R=55, G=55, B=55][<Rhino.Display.ColorHSL object at 0x00000000000001FB [Rhino.Display.ColorHSL]>]
But if I try to get color[i][0] I get an error, how can I access to the numbers RGB or the HLS one as numbers?
Thanks a lot!
V.…
n be moved to the appropriate place. The files are sensitive, but I can email them directly to you if you like.
1/ Contouring (and also Brep/Plane Intersection) generates non-closed curves from a closed brep (the screenshot actually shows a surface instead of a brep, but the same thing happens):
2/ Contour generates non-planar curves (one is also open, see below). This is very disturbing because it cannot be used to create a 'boundary surface'.
3/ Offset doesn't return all results. This seems like more of a rhinocommon problem. It always returns a valid result, but often not the one I want. Better would be to return all results and let me choose what I want.
4/ Fillet issues. See image below, the fillet component works fine up to a certain radius and then the one on the right disappears completely (presumably the radius is too large so it gives up). However, if I use the FilletAtParameter component, the fillet works at each of these points but it won't do all of the fillets at once (regardless of how I arrange the data tree). My work around at this point is to get it to fillet each of the sharp bits separately and then RegionUnion all the curves together, which is incredibly slow.
5/ There is no ExtrudeTapered component, so I wrote a quick VB.Net component to expose this functionality. Firstly: I cannot for the life of me figure out what the "Base Point" input does. This seems to have no impact on the result and the documentation is missing. Secondly: giving it a non-unitized vector does very strange things to the result.
Thank you for your help!
Steven
…
or Ladybug and Honeybee:
1. Our recent presentation at IBPSA-NYC is now available online. We do an overview of what Ladybug and Honeybee capabilities with a short live demo:
part 1: https://vimeo.com/107501953 - part 2: https://vimeo.com/107502226
2. Chris recorded a great set of tutorials together for "Getting Started with Ladybug" that walks you through several components in Ladybug: (https://www.youtube.com/playlist?list=PLruLh1AdY-Sj_XGz3kzHUoWmpWDXNep1O)
3. He (Chris) also recorded another great set of videos for comfort tools that he is currently developing for Ladybug and Honeybee: (https://www.youtube.com/playlist?list=PLruLh1AdY-Sho45_D4BV1HKcIz7oVmZ8v)
4. With the help of Mohammad, we finally uploaded the videos from the workshop that I led at Penn few months ago which covers Daylighting with Honeybee: (https://www.youtube.com/playlist?list=PLkjfDmSc5OryXkWSt57ltJFU4qXD5ss1v)
5. Finally, Chris also started a series of videos on Energy Modeling with Honeybee that you can watch here: (https://www.youtube.com/playlist?list=PLruLh1AdY-SgW4uDtNSMLeiUmA8YXEHT_)
There are couple of stuff which are coming next, soon:
1. So Young is modifying the videos for the Ladybug workshop and once they are ready, we will upload them.
2. I will be capturing a number of videos for developers soon. We are so excited to see all the new developers joining the team and we understand the need to support you to get started. I hope these videos can help you to understand the development logic and get you started with the development.
OK. Now if you have access to Internet, which I supposed you do as you are reading this online, you have no excuse not to learn Ladybug and Honeybee. :)
Let us know your comments and suggestions.
Cheers, Mostapha…
use Google's API, especially if you'd like to achieve a great quantity of data without overloading Google's servers.
I used a way to request data without overloading Google's servers by using a tiling method. Obviously, this component respects the limit of 2500 requests per day.
This is how the component works:
1) set one point and its coordinates
2) generate surfaces by using isotrim component (Basically, each sub-surface is a request)
3) set the number of division of each surface and the resolution of Google static maps
4) run, move points and generate surfaces with surface from points
5) apply textures to the surfaces
In the image below another small example:
I was thinking that this should be useful for wind simulation with Butterfly, maybe.
Best
Antonello…
and Grasshopper. Recently I tried doing some test project just to see what can I do. My target is to design a small house for an atom family. Though as you might think - it'll be a parametric one. And I encountered exactly what's in the title. So here it goes: 1. Something is wrong with the measuring units in the complex profiles. I met this problem while making I-beam. In ArchiCAD it had 127/76 mm while in Grasshopper i had 127000/76200mm so a little bigger. 2. I'm unable to turn off the preview. I mean when I delete something in Grasshopper/Rhino it still exists in ArchiCAD. I have to unlock it and then delete it. 3. Coordinates for points seem broken. They have to be multiplied 1000 times to match. 4. Now one of the most important. Is it possible to somehow SHOW Grasshopper where are already made in ArchiCAD objects. Even if they'll remain still. For example I want to make a parametrical roof. Do I have to model whole building from scratch in Grasshopper or is there some fast way to "import" existing scene so I can limit my work with Grasshopper only to parametrical one. 5. Is it possible to make "points" as controlling points in AC? Like, if I'd like to make a beam in a desired place which I will mark by that point and then I will "show" Grasshopper that point and tell it to make an object in there so I can control it within grasshopper. I tried ti do this using AC Control Point but when I click "Send changes" button, Grasshopper and Rhino crush immediately. It only happens then, with control points. 6. It seems that "move" component won't work with "2D curve" component connected directly. It is possible that some of those problems are outdated. I was playing around in Grasshopper a few months ago, before summer break, but now I plan to try something new and it would be nice to know what to do. I appreciate any answer to any of those questions. Please help, you guys, are my only hope. Thanks in advance! Karol…
the pipe component .I have one curve ,but Pipe component outputs two pipes .This guide curve have two kinks . Pipe component fails at one of them .
Bug #3
I guess this bug may have been fixed .
Wish #1
I hope adding an "reverse list" option to the right-click menu .I think this would be useful (at least for myself).
Wish #2
I hope the SimplifyTree component would clear the zeros located at the end and middle of branch in condition the branches have same length.For example, I have a tree looks like :
A = {0;1;0} B = {0;1;0;1}
C = {0;1;0;0;1;0;0;0}
After simplify ,I get:
A = {1} B = {1;0;1}
C = {1;0;0;1}
And if the tree structure is something like:
A={0;0;1;0}
B={0;0;1;1}
C={0;0;1;2}
After simplify ,I get:
A={1;0}
B={1;1}
C={1;2}
But If the tree is:
A={0;0;0;0;0;0}
B={0;0;1;0;1;0}
C={0;0;1;0;2;0}
I get:
A={0;0}
B={1;1}
C={1;2}
WIsh #3
I came across conditions that there is no direct way to handle some Datatree matching problems . And now I think I find what's the problem :GH now lack the capability to make cross reference between lists/branches .For example, I have two trees ,the first one have two branches {0}&{1}, the other have three branches{0}&{1}&{2}.Now GH would do:
what I want is :
If this can come true ,I can say it would be very very very useful . I just have a coarse idea on how to do that: Like () wrap items,{} wrap branches, then [] wrap trees .
Say I have a tree [0] ,which have three brabches{0},{1},{2}. So [0]=[{0};{1};{2}] or [0]=[{0},{1},{2}]
If this is ruled, the following fomula is meanningful:
[0]=[{0}] (this means tree[0] just have one branch)
[0]=[{0;0;0};{0;0;1};{0;0;2}]
[0]=[{0;0};{0;1};{0;2}]=[{0;0;0};{0;0;1};{0;1};{0;2}]After that, Maybe we could match [{0};{1}] and [{0};{1};{2}] very easily (Longest List;Shortest List;Cross Reference) ??
I tried to explain the concept of "tree" to my friends ,but I am confuzed somewhere myself .For example ,how could we have a tree including branches {0},{0;0}and{0;0;0} at the same time??{0} should be the biggest tree trunk,and {0;0} is part of {0} .{0;0;0} is just the smallest trunk and store the least data inside .How could the biggert trucks are empty while only the smallest branches contain items ?(David drawed a datatree that tell this,remember??)
But if this idea is acceptable ,then I could make a fairy tale about tree to them :
(Long long ago...)
[0] is a tree ,[1] is a tree.
{0},{1},{0;0}.{0;1;0} are branches.
{0}=(0,1,2,3,4,5) is branch.
[0]= [{0;0;0};{0;0;1};{0;0;2] is a standard tree .
[0]=[{0;0;0};{0;0;2};{0;0;3] is a pruned tree.
[{0};{0;0};{0;0;0}] is an illegal tree .
Gh is lenient enough to allow the existence of illegal tree .
Gh is lenient enough to allow the existence of empty trees& empty branch&null items.
We can use PathMapper to transform an illegal tree into a legal one and vice versa . We can use PathMapper to do any things to tree&branch&item.
Wish #4
wish for Split List component : it would have a wrap option just like many other components.In this way , we can split a list of data at -1 .I think this would be useful .
wish #5
wish for a Preview toggle component .See picture below (it's fake).
this toggle look mostly like the boolean toggle, but it have a input param by which we can control the preview logically and smartly .
When there is no input ,we can control swith the preview with a double click action .This toggle component could control all gh geometry overriding the global setting .The link curve between toggle and target works just like the galapagos.
Wish #6
Wish for adding arc angle output to both Arc 3pt and Arc SED components.This would make things easier sometimes .
Wish #7
Many times I were puzzled that a same gh script would perform perfect if the input is single surface but buggy while the input is more than one surface .After debuging many times ,I just found that if one or two component of the script do things smarter ,this kind of bugs would never happen again !! Simply saying:we need a optional datatree match behavior. Say I have two datatree [{0;0};{0;1}] and [{0;0;0};{0;0;1};{0;0;2};{0;0;3};
{0;1;0};{0;1;1};{0;1;2};{0;1;3}] Normally {0;0} matchs {0;0;0},{0;1} matchs other branches (Longest List behavior).Now I need {0;0} matchs {0;0;0},{0;0;1},{0;0;2},{0;0;3} separately and {0;1} matchs {0;1;0};{0;1;1};{0;1;2};{0;1;3} separately .I cant describe this matching rules accurately but it's very obvious .I hope you can understand the meaning .
I remember David said once that he would not change anything about the datatree matching rules in order to avoid destroy people's production work .And that is my bottomline too .What I want is when I need one component to match the input datatree in this way ,I can switch it (just it ) into this mode (Assuming these is a "xxx mode" option in component's right-click menu ). In this way ,All the exist Gh def would not be destoryed.
PS. I am not carping but I found the DivideKink param input of Divide Curve component is useless except adding a segments output .
…
diseño, construcción y entendimiento de nuestro entorno.
BIM está poniendo a disposición de los diseñadores y gestores auténticas bases de datos que pueden generarse, conectarse y editarse de forma paramétrica, proporcionando una sólida capa de realidad a los ejercicios de diseño generativo y computación que son objeto de estudio en Algomad, el seminario que busca popularizar la programación y la parametrización en el diseño y en la experiencia de nuestro entorno construido.
Tras un paréntesis en 2015, Algomad vuelve con el objetivo de demostrar cómo una visión computacional del BIM es una oportunidad para mejorar la forma de trabajar de ingenieros, arquitectos, constructoras y operadores de edificios e infraestructuras, tendiendo un puente entre las técnicas de diseño digital más avanzadas y la realidad de la construcción.
Algomad 2016 tendrá lugar en el centro de Madrid, en IE School of Architecture and Design, IE University, los días 3, 4 y 5 de Noviembre de 2016 y comprenderá 4 talleres así como ponencias a cargo de expertos de primer nivel.
Estructura de Algomad 2016
Algomad 2016 se estructura en torno a tres áreas temáticas principales:
BIM, como la metodología total específica para el sector de la construcción.
Computación, englobando las aplicaciones de programación y parametrización al diseño de edificios e infraestructuras.
Realidad, como marco de trabajo, buscando siempre resolver problemas reales a través de los dos puntos anteriores.
Público objetivo
Arquitectos, arquitectos técnicos, ingenieros y en general académicos, estudiantes de últimos cursos y profesionales del mundo inmobiliario y de la construcción que compartan un interés por la digitalización de nuestro sector. Se espera un nivel mínimo en el uso de herramientas BIM y de parametrización. Algomad proporcionará formación adicional y gratuita en las herramientas básicas a emplear en los talleres para asegurar un correcto desempeño.…
an almost planar tissue (your case) can cause a variety of issues up to the undo able state (metal parts/components grow in size as well for no reason). See forces estimated by FF below.
2. Therefor I strongly suggest to consider Plan B (a) mastermind a secondary "anchor" capability in order to achieve a far more stable system (b) use a mount design that can support this (and comply with the attractor concept of yours). Here's a variable mount custom system (mostly machined AND not cast) that is suitable for the scope (Rhino reads the stp file OK .... but makes a colossally big file - thus I attach here the original).
3. On first sight lot's of things in this system appear "odd". For instance: is it stable? Why these double cables are used? How far can be adjusted? (that's a classic case for feature driven parametric design - not doable with Rhino).
4. This concept (strut axis exported only) is tested in FORMFINDER and some other far more complex membrane apps that I use quite often (not RhinoMembrane). Here's is what FF tells us about:
Observe a different kind of "stress" when this is converted to radial type:
5. If you insert the stp file to the Rhino file provided (exactly as exported from FORMFINDER - no mods of mine of any kind) you'll see what goes where (and why). That way the usage of double cables is rather obvious (and a lot other things - for instance the way that the struts achieve "equilibrium", see the slots in the base mount plate.
6. If this approach is worth considering your definition requires some serious rethinking (far more simpler/manageable with the drawback that the real parts they are "static" they can adjust only as far this particular solution allows them to do - controlling them parametrically is clearly impossible with the current state of R/GH capabilities).`
All in all: this case works because the cables push the anchor points downwards and the struts push them upwards.
more in a while
…