Itoo Software Forum

Author Topic: Curtain Wall - Corner nightmare  (Read 1476 times)

Pixelab

  • Jr. Member
  • **
  • Posts: 83
  • Suave mari magno
    • pixelab.be
Curtain Wall - Corner nightmare
« on: September 02, 2016, 05:04:37 PM »
I'm doing a curtain wall. Long wall are done with an adaptative generator (works way better to avoid slicing) and corners are done with a tile generator, and custom objects for the corner. (like explained at the end of this article http://docs.itoosoft.com/display/RAILCLONE/8+-+How+to+Fine+Tune+Corners)

I've tried trigonnometry or simply input the numbers, but it doesn't work

- first (and biggest problem) is that a gap appears on tight angles, and an overlap appears on wide angles. Length of the same element seem to be different when used in adaptative and tile mode...

- second problem, whats the best way to draw a clean angle in this case, and have a nice sliced angle ?

MAX file attached

Thanks for your help !







Michal Karmazín

  • iToo Software
  • Hero Member
  • *****
  • Posts: 2447
Re: Curtain Wall - Corner nightmare
« Reply #1 on: September 05, 2016, 03:42:44 PM »
Hi,

I'm not sure, if the work-flow described in the "Tip: Bevelling Corners in Adaptive or Count mode" from the How to Fine Tune Corners can actually cover multiple angles in a one style (as you've pointed out, the bevel size might differ).

Unfortunately, it's a complex issue and I'm not sure, if there is a way how to bypass this limitation (I guess, it might be possible by linking the size to the XVertexAngle variable). My colleague Paul (he wrote the Next Steps with RailClone guide) is travelling these days. We'll check it together soon (hopefully tomorrow) and keep you posted.

Best regards,

Paul Roberts

  • iToo Software
  • Hero Member
  • *****
  • Posts: 2991
Re: Curtain Wall - Corner nightmare
« Reply #2 on: September 06, 2016, 01:12:12 PM »
Hi,

Please take a look at the attached file and the explanation below for a possible workaround to the corner padding issue. There are two versions.

The first version is by far the easiest. You can use this when your wall will only ever have corners of 0 - 180 degrees (the turns are always in one direction). If you need to be able to create corners that go to the left and right, you'll need to use the more complex solution shown below. In the simple solution you should:

- Set segment's Alignment > Y option to Bottom
- Export the spacer Segment's X Fixed Size parameter
- Export the corner Segment's X Size attribute
- Wire these two together.
- Use the Generator's Y Offset parameter if you want to change the facade's position on the spline.



In the more advanced version you can use an expression to dynamically change the size of the spacing segment based on the angle of the corner. To do this we use an expression as follows:

- Set segment's Alignment > Y option to Center
- Wire the Spacer segment to a Transform operator.
- Export the Transform node's X Fixed Size parameter
- Export the corner Segment's X and YSize attribute
- Create a new Arithmetic node and wire the X and Y Size attributes to the inputs (in that order)



- Change the Arithmetic node to Expression and enter the following:

Input1-(Input2/2)/tan(radToDeg(XVertexAngle/2))*2

This will calculate the size needed for the padding in order to allow the correct space for the corner segment. Understanding how RailClone calculates corners helps to explain this. Basically the chamfering algorithm maintains the length of the segment (A) along the outside face of the corner. This in necessary to correctly Bevel the geometry. So we need to calculate the space that remains before the corner in the centre of the segment (C). Using a trigonometry and the Corner angle we can find the length of the part of the segment that extends past the corner (B) and subtract this from the overall length (A) to give us the spacing (C).



I hope that makes some sense! Please let me know if you have any further questions.

Many Thanks,

Paul

Paul Roberts
iToo Software

Pixelab

  • Jr. Member
  • **
  • Posts: 83
  • Suave mari magno
    • pixelab.be
Re: Curtain Wall - Corner nightmare
« Reply #3 on: September 06, 2016, 05:14:37 PM »
Thanks a lot Paul, it works perfectly.

While looking for a solution, I don't know how I skipped the first one and went directly for the second one. But my trigonometry skill failed miserably at finding the formula you gave.

It's funny because I felt that A != C but wasn't able to find how much B was ... I understood it was influenced by the length of the Y axis of the segment, but you little drawing make it much more clear. Thanks a lot for explaining things in addtion of solving this.



On a side note, I think that curtain walls is one of the main application of RC (and seemed to be advertised by iToo like one),  and this solution should work out of the box without the need of an expression, or an impossible-to-find-if-you're-not-Paul-Roberts solution :) (for example by allowing corner bevelling with the adaptative mode, or some sort of adaptativeness in tile mode)

It would be also nice in the help file to have a list of useful trigonometry expressions (the Rad / Deg is already really confusing, I don't get why RC can't have tan/cos/sin expression working in rad ?)



I've been really frustrated not being able to find that solution by myself, and some things like the Y alignement in bottom are still unclear to me. (I've actually never used anything other than automatic of pivot)

I'll share the result when the project is finished because it's is a nice case study for a RC use.
« Last Edit: September 06, 2016, 05:17:12 PM by Pixelab »

Paul Roberts

  • iToo Software
  • Hero Member
  • *****
  • Posts: 2991
Re: Curtain Wall - Corner nightmare
« Reply #4 on: September 07, 2016, 10:02:17 AM »
Hi!

I look forward to seeing the result. It's always nice to see what people get up to with our tools.

Regarding your suggestions, the next major release of RailClone is planned to have  new features to allow for graph snippets to be easily saved, reused and collapsed to a single node with custom inputs/outputs so we should be able to easily include functions like this in the library that you can use out of the box.

Cheers,

Paul
Paul Roberts
iToo Software