Itoo Software Forum

Author Topic: Window/Door Divider Spacing  (Read 2755 times)

Bearded4Glory

  • Newbie
  • *
  • Posts: 5
Window/Door Divider Spacing
« on: May 31, 2015, 03:58:46 AM »
I am trying to make a style that includes the sash and divider mullions.  I have tried everything and I just can't get the spacing on the grids to leave the same gap to the next or to the sash for the full height/width of the window.  My first problem is that it does not take into account the thickness of the sash, it starts the spacing at the edge.  What I need is to start the spacing 1/2 the width of the divider in from the inside edge of the sash in order to leave evenly spaced lites.

I am sure you have a elegant solution to this but I just can't figure it out.  I have tried using one A2S for everything; I have tried using two, one for the sash and a second for the dividers that uses the padding in the generator to bring it in but it seems to have no effect (it only moves a segment if it falls into that padding zone).  I have even tried doing some math in the style to adjust the size of the 2nd generator and then shift it up into position.

It would be great to have an option to account for the size of any "side" segments as well as the size of the evenly segments to leave even spaces instead of evenly spacing uneven sized things center to center if that makes sense.

For example:


I am trying to have paramaters control the number of dividers in both x and y.

Also, is there any way to pad only the first and last segment in a "chain" of segments?  That would be really handy too so the intersections don't overlap over themselves.

Thanks!

Paul Roberts

  • iToo Software
  • Hero Member
  • *****
  • Posts: 2991
Re: Window/Door Divider Spacing
« Reply #1 on: June 01, 2015, 11:04:33 AM »
Hi,

You are correct, the evenly divisions are unfortunately for this usage not affected by the size of any segments. The most flexible solution for this is to create a style that uses some expressions to calculate the spacing based on the exported size of the segments.

For example, you can get the overall size of the array using XSplineLength or YSplineLength. Then subtract the size of both side segments plus the combined size of the glazing bars. This leaves the remaining size left for the glazed area. If you divide this by the number of glazing bars +1 you will have the size you need for each square of glass. You can then use these values with the segment's Fixed Size parameter to scale each section to the correct sizes and then use sequence operators to create the repeating patterns of glass - glazing bar - glass etc.

This takes a little time to set-up but once you have it, you should be able to re-use the style in future projects by simply swapping the segments.

I've attached an example with some notes in the style to explain how it works. This style has the advantage of allowing you to use separate segments for the intersection of the glazing bars with themselves and where they meet the top,bottom, left and right sides. You can also see how I've broken the sash down into segments.



Feel free to re-use and adapt it.



I hope that helps, please let me know if you have any questions.

Many thanks,

Paul
« Last Edit: June 01, 2015, 11:17:32 AM by Paul Roberts »
Paul Roberts
iToo Software

Paul Roberts

  • iToo Software
  • Hero Member
  • *****
  • Posts: 2991
Re: Window/Door Divider Spacing
« Reply #2 on: June 01, 2015, 11:46:32 AM »
Hi Again,

Missed this question...

Quote
Also, is there any way to pad only the first and last segment in a "chain" of segments?  That would be really handy too so the intersections don't overlap over themselves.

This could be achieved using a compose operator. Add an empty "null" segment in the first and last slot and then adjust either its padding or X Evenly size.





I hope that helps.

Many thanks,

Paul

Paul Roberts
iToo Software

Bearded4Glory

  • Newbie
  • *
  • Posts: 5
Re: Window/Door Divider Spacing
« Reply #3 on: June 01, 2015, 11:52:31 PM »
Thanks Paul, I knew you would have a solution.  I started over using your file as a guide (I am doing a few things differently) and I am having a few issues.

1. If I export the Y-Size of my Sash to Mullion Joint Segment it returns a slightly off value.  It is 7/8" in the Y direction but returns 22.224655mm instead of 22.225mm.  This compounds through the Arithmetic Operator and screws up the spacing.

2.For some reason my Sequence Operator places a Sash To Mullion Joint at the start of the Left Side when it is 2nd.  Yours seems to work as it should I just can't track down why it does this.

If I put a Constant node in set to scene units and enter 7/8" and use that it fixes problem #1 and then I have to reverse the order of the Sequence operator to get the correct Segment to show up first.

I have attached it for you to take a look at.  Maybe I should have my system units set to inches?  I tried that and it seemed to make everything worse.


I have a few ideas that I think would be nice interface improvements to consider:
1.Some way of transporting values without having wires everywhere.  This is incredibly obvious in the window example you posted where multiple things need to reference on value.  In UE4 you can add a set node connected to a string of stuff and then place a get node somewhere else to read that value.  This would be great for organization sake.
2.Add a scalable outline to the text node.  UE4 also has this and it is handy to show what nodes the note applies to.  Again for organization sake.

Thanks again, your support is very good.

Paul Roberts

  • iToo Software
  • Hero Member
  • *****
  • Posts: 2991
Re: Window/Door Divider Spacing
« Reply #4 on: June 02, 2015, 11:37:20 AM »
Hi,

Thanks for the update and file.

Quote
1. If I export the Y-Size of my Sash to Mullion Joint Segment it returns a slightly off value.  It is 7/8" in the Y direction but returns 22.224655mm instead of 22.225mm.

I think the problem here is that Max's accuracy is set to display only 3 decimal places whereas RailClone's arithmetic operator is able to display more. Increasing Max's precision reveals that actually the piece isn't exactly 22.225mm.



Although they are still very slightly different I don't think it's enough to account for the alignment issue. Instead I think the spacing problem may actually be caused by a bug in RailClone that is preventing an exported attribute from being read unless is is the first node attached to the arithmetic operator. We apologise for this and hopefully it will be fixed in the next update. In the meantime you can get around this by breaking up the equation across a couple of operators (see attached)

Quote
2.For some reason my Sequence Operator places a Sash To Mullion Joint at the start of the Left Side when it is 2nd.  Yours seems to work as it should I just can't track down why it does this.

This is to do with the way the segment counters are calculated behind the scenes. When you have corner but no bottom input the first row technically includes the corner. (although the actual geometry is substituted with the corner segment's). However, when you add a bottom segment the bottom row is not included and the Y counter starts with the first default row. With the bottom input added the sequence operator should behaves as you would expect. 

Please take a look at the attached file which resolves these issues.

Thanks very much for the suggestions, they're always really appreciated and helpful. I've added your votes to our wishlist but you'll be pleased to know we are already looking at solutions for both these issues and hopefully we'll see some development in this area in a future update.

I hope that helps, please let me know if you any further questions.

Kind regards,

Paul
« Last Edit: June 02, 2015, 11:49:53 AM by Paul Roberts »
Paul Roberts
iToo Software

Bearded4Glory

  • Newbie
  • *
  • Posts: 5
Re: Window/Door Divider Spacing
« Reply #5 on: June 02, 2015, 05:48:22 PM »
Thanks Paul.  I got it working with my constant node hack yesterday.  Really working great and will save me a lot of time in the future.  The second point became obvious when I filled in the rest of the sides and then I had to reverse my sequence.  I will have to make sure to put something in those other slots when I start.