ike using something like the Z vector, but technically you can use any vector you want. This vector will actually determine the static rotatation of all the planes, so you can control that here if you like. One important thing that I've noticed is that the closer the vector is to the plane of the curve or if its too similar to one of the tangent vectors, the more likely you'll have "flipping"
2) Take the cross product between the tangent and the static vector. This will be your first perpendicular vector, which you can use for the X component of the plane.
3) Take the cross product between the tangent and the result of the previous cross product. Use this result as the Y component of the plane. All three components (X, Y, and Z (which is the tangent vector)) are all perpendicular to each other now.
After you've done that you should have planes that decrease twisting. If your curve is not planar, then there will always be some twisting in the frames, but it will be minimal enough to use them effectively.
There also may be "flipping" within the frames, which means one (or both) of two things. First, you could have planes that have reversed their vectors, so the X vector is properly oriented, but pointing down when it should be pointing up. Second, the X and Y vectors could have potentially swapped, so that Y "should" be X and X "should" be Y. In order to check these things, you'll need to do a few tests. The first one is find out whether the vector (X or Y) of the plane your testing is pointing in the opposite direction of previous vector. The second test is to find out whether the vector (X or Y) of the plane your testing is perpendicular to the previous vector. In both cases, an angle test between the two vectors will be able to tell you what you need to know, but you will likely NEVER get exactly 180 for an opposite test or 90 for a perpendicular test. That means that you have to choose a range with which to determine that a given vector is opposite or perpendicular.
You should start testing the X vector to see if anything is wrong. If you find that the X vector is fine, then just move on because Rhino will only allow you to create right handed planes, and the Z vector (the tangent) will always be the same.
I don't believe that there's a native function within the old dotNET SDK for calculating angles, so use the example at the link below. It basically takes the arcCosine of the Dot Product of the two vectors your testing to return the angle in Radians. I'm not sure if this function is included in RhinoCommon or not....
http://wiki.mcneel.com/developer/sdksamples/anglebetweenvectors…
ed when membrane cones are invited to the party (then mesh (via Starling is the best way) the brep and send data to Kangaroo : the easiest thing to do). But patch doesn't trim the inner Loops and ... well initially I thought to find this in SDK and do the job:
Well... I confess that I can't get the gist of the Brep.Trim (as explained in SDK).
Thus go to plan B: having already the closed breps (the "cones") as cutters ... attempt a Boolean difference
but this does that (this looks to me a bit paranoid, but some reason must exist):
What I want is this:
the code that mess things is (open the script inside definition attached):
BTW: where in SDK is that DeBrep thing?
BTW: Delaunay GH syntax is still cryptic to me (but this is not an issue anymore)
I would greatly appreciate any help on that final step (to greatness).
The full working definition soon (v5: with 90% of components replaced by C# stuff).
best, Peter
…
bout angle since the exact same wires can suddenly start working fine later! Just adding new items to Rhino and then using undo to get back to your failing geometry will fix it sometimes?! Flipping the pair of curves' directions, either one or both, fixes it. It's just black box broken. It happens for really boring angles near 90 degrees.
Rotating the entire pair in space has no effect.
Rescaling the lines from their joint point has no effect.
Simply cutting and pasting the lines out of Rhino back in *sometimes* fixes it, so it's angle and something else that makes certain lines "toxic."
Duplicating the pair of failed lines via alt-dragging the Rhino gumball fails to fix it.
Running the "line-like curves" through a Line component to give "lines" doesn't fix it.
Re-creating the lines by extracting endpoints fails to fix it.
Each line, if separated from each other works fine.
Grafting makes each line into its own little cylinder minus a hub.
The error is the boilerplate "Object reference not set to an instance of an object."
Once the pair spontaneously starts working I cannot reproduce the error with that pair again, though sometimes Rhino undo will get me back to failing.
CAN ANYBODY REPRODUCE THIS WITH MY FILE? If so I can submit a bug report.
Exoskeleton is here: http://www.grasshopper3d.com/group/exoskeleton
Source code is here but it's for compiling, not something I can just test in a C# component out of the box:
https://github.com/davestasiuk/Exoskeleton2/commit/f63c4aa691a7f26b...
…
s is like flattening your data PARTIALLY - chopping an index off the end of the branch paths without obliterating the tree entirely. When working with one "set" of input data, a flatten works to get these lists to match up - but when working with multiple sets, we need to be careful to preserve the original branch indices that keep all four of your original regions separate. As a rule, whenever you're feeding two data trees into any component, they should have the same number of branches. (or one should have branches and the other should be a flat list, in other cases).
The rule of thumb I tend to teach is this:
In 90% of cases...
For lists, all your inputs should either have 1 item or N items. That is to say, if you're feeding 4 items into one input and 9 items into another, something is probably wrong.
For trees, all your inputs should have either 1 branch or M branches. That is to say, if you're feeding a tree w/ branches {0;0} to {0;3} into one input, and a tree w branches {0;0;0} to {0;3;8} into the other input, something is probably wrong.
Grasshopper essentially matches up branches first, then lists second. By "matching" I mean it processes them together. Simple example of the Line component - it will match the first branch of points in the A input to the first branch of points in the B input, creating lines between those points, then match the second branches, the third branches, etc. THEN, it applies the same logic to the level of the list (with a pair of matched branches {0;2}, match all the items in those branches to each other - first item in one branch to the first item in the other branch, etc.)
This is a tricky concept but it seems like you're already well on your way to understanding it from your definition - "PShift" is a critical tool in your path management arsenal. I hope this (overly long) response helps clear things up for you!
…
he TOF and TSRF indices. They show, how "distant" is your _PV_SWHsurface from the optimal _PV_SWHsurface surface in terms of tilt and azimuth angles.However, in your case we are not interested in TOF and TSRF indices. We would just like to know what are the _PV_SWHsurface optimal tilt and azimuth angles, regardless of the supplied _PV_SWHsurface.
So the circular surface supplied to the "TOF" component's _PV_SWHsurface input is irrelevant. It can be of any area, and any tilt/azimuth angle.The PV_SWHsurfacesArea output of the "PV SWH system size" component depends on a couple of factors:moduleActiveAreaPercent_ (leave it at 90%).
moduleEfficiency_,
systemSize_.Calculation of systemSize_ depends on your electricity demand, cost of the PV system, type of the object, country, local regulations etc. This is something that an engineer needs to determine.For example, in USA for a residential house in the Sunbelt, depending on finances, a household would try to cover 100% of its annual electricity needs with their PV system. Which means that the systemSize_ you chose needs to cover the annual electricity consumption. You can perform EnergyPlus simulation or use any other way to get the annual electricity consumption.
Ladybug "Photovoltaics Performance" component can calculate the optimal systemSize_ by given the annual electricity consumption.However the component is made to address fixed tilt and azimuth PV systems only.An approximate way to overcome this is to calculate the optimal systemSize_ for fixed tilt and azimuth PV system, and then multiply it with the "difference in %s" panel at the very right of the fixed_vs_tracker_PV2.gh file. Again, this is not what Ladybug "Photovoltaics Performance" component is made to do, but it will probably get you in a ball park.
Inputted 32 degrees for north_ direction is actually 328 degrees.This is due to Ladybug Photovoltaics being based on NREL model which uses clockwise angles convention. This convention is also most commonly used in solar radiation analysis.
Dubai weather data files are uploaded in here.
…
le discontinuous list of index numbers and I'd like to be able to generate a set of domains where each span of numbers would have its own domain. For example:
This list: 5,6,7,8,9,22,23,24,25,26,77,78,79,80,81...
Would give these domains: 5 to 9, 22 to 26, 77 to 81...
I'm at a loss as to how I can achieve this though. I know I can use the bounds function on the list but that would give a single domain, not several. In case it helps the list in question was generated by a true/false cull pattern from the complete list of indices so simply determining the indices of the beginning and end of each chunk of 'trues' in the cull pattern would work as well as it would give the same domains. I can post an example file if anyone would like but I figure this is a pretty general issue.
So anybody have any ideas on how to solve this multiple domains from a single list problem? Thanks in advance for any help at all, I'd really appreciate it!
James…
llowing for higher skyline and construction areas along public transportation corridors. Up until now, neighborhoods once characterized by two-story houses, gardens and ground- floor open shopfront programs, have been completely transformed by the introduction of fortressed monolithic residential and office towers, which lack any sort of urban street life.
The new master-plan, however, now requires buildings to have an open street façade to accommodate multiple programs. Led by tutors from UNStudio (www.unstudio.com), the AA Visiting School São Paulo will address the changes being prescribed by the new masterplan through the redefinition of the tower typology in the extending of the ground of street culture, green landscapes and ecological mediation along the vertical axis of these buildings. For this, the workshop will teach advanced digital design and fabrication techniques to explore a series of novel differentiating structural and environmental organizations in the redefinition of the São Paulo skyscraper.
For more information:
saopaulo.aaschool.ac.uk
Applications:
https://www.aaschool.ac.uk/STUDY/ONLINEAPPLICATION/visitingApplication.php?schoolID=303
For any queries, please email: brazilvisitingschool@aaschool.ac.uk.…
llowing for higher skyline and construction areas along public transportation corridors. Up until now, neighborhoods once characterized by two-story houses, gardens and ground- floor open shopfront programs, have been completely transformed by the introduction of fortressed monolithic residential and office towers, which lack any sort of urban street life.
The new master-plan, however, now requires buildings to have an open street façade to accommodate multiple programs. Led by tutors from UNStudio (www.unstudio.com), the AA Visiting School São Paulo will address the changes being prescribed by the new masterplan through the redefinition of the tower typology in the extending of the ground of street culture, green landscapes and ecological mediation along the vertical axis of these buildings. For this, the workshop will teach advanced digital design and fabrication techniques to explore a series of novel differentiating structural and environmental organizations in the redefinition of the São Paulo skyscraper.
For more information:
saopaulo.aaschool.ac.uk
Applications:
https://www.aaschool.ac.uk/STUDY/ONLINEAPPLICATION/visitingApplication.php?schoolID=303
For any queries, please email: brazilvisitingschool@aaschool.ac.uk.…
the various digital design methods and technologies that they employ in their design workflow, highlighted at various scales through their recent work. Organizers and Moderators: Andrew Haas, Program Co-Director, Architectural Association Visiting School New York Alfonso Oliva, Associate/Director, LERA Consulting Structural Engineers Speakers: Luc Wilson, Senior Associate Principal and Director, KPF Urban Interface Dan Levine, Associate Director, Solutions Engineering – United Technologies (UTC) Jan Leenknegt, Architect and BIM Manager, Bjarke Ingels Group (BIG) Introductions by AIANY Technology Committee Co-Chairs: Michael Brotherton, AIA, VP of Operations, Situ Fabrication LLC Alexandra Pollock, AIA, LEED AP BD+C, Director of Design Technology, Senior Associate, FX Collaborative – Due to building security requirements, a state-issued photo ID or valid passport is required to obtain building entry. Advanced registration is required. This event is free and open to the public. Refreshments and pizza will be served.
Register: https://www.facebook.com/events/1019498534923019…
Added by Andrew Haas at 10:42am on October 30, 2018