Jump to content
Developer Wiki and Function Reference Links ×

Freeform Stairs, Change Marionette script


Recommended Posts

I’m currently working on a project that includes an almost free-standing staircase with a complex shape (a superellipse). I found a great script here on the forum by Dom C ("Circular Marionette Stairs 1.0.0"). that allows you to freely manipulate the form.

What we need to adjust, however, is that in our case the steps (treads) don’t all converge to a single center point — instead, each step has a slightly different center.

This is because, according to Swiss building regulations, the inner radius of the staircase must have a minimum tread depth of 15 cm. As a result, each step ends up with its own unique center.

My question is: how can I modify the script to achieve this? 

I’ve attached a VWX file with my first attempts, in case it helps to understand what I mean — or maybe you could even implement it directly in the attached file.
 

Simon Fox

Holenstein Architekten

 

SUPERELLIPSE_TREPPE_MARIONETTE 2.vwx

Link to comment

Hi
First you should think about a rule which is available. Mostly this is the bigger issue than making the some code is thinking how about you think by designing and how to convert it to an algorithm.

1. The rule could be, every step line is "designed" by human (user)
- Then maybe the control geometry could contain just inner and outer countur and lines which are created by user and the script would model the 3D stari

2. A logic adaptable rule as example. On the inner countur we need 15cm minimum measurement. this gives us an amount of steps we could use maximum and the vector of the step-line it through this inner minumum point and the walking line of the stair. Problem could be, that every inner distance is the same on the contour and if the countour is not symmetric the steps are not symmetric.

image.thumb.png.42a70bcccdbcb20d115ba1abf2bda830.png

But in your case the Stair "eye" is symmetric so this could work. Yes could work.
+ Symmetrical 
- But because the out contour and the inner contour have not the same shape as the walking line it is maybe not the best solution.
+ Walking line could be parallel to outer contour to make the walking path more ergonomic
+ Relative easy to script. repacing the center through the point which are paired to the other point. 


image.thumb.png.a4d0512f4ff4116bcf824dc298e6bb0e.png


3. The inner virtual center could be defined independent on a contour (similar to the original example but not a center just unique points but not on the contour)

+ This would result in nice flow of the stair because of similar shampe outer and inner center points
- Different distances on the real contour. 
+ Usefull if inner contour is not symmetric. as example Picture one
- Looks line best Solution but harder to script. We need points on the outer and virtual contour (easy). Then we need sectionpoints between polyline final inner contour. This is harder. I do not know the good solution for this. Maybe through intersecting line with inner shape etc.
image.thumb.png.66944f5ae485efdd3495c2be1611abec.png



Or have you another requirement which could be defined?
If i look at your specific stair the rule is like Solution A. Individual drawn steps in 2D. I can not see a rule for calculating the inner points?

image.png.59e6acb3236a7a03145103ef477e074e.png


Generally i think, a stair is one of the last design-peaces an architect can be creative. So maybe it is the right thing to just model individually it take too long to make an algorithm for it.
 

Link to comment

Looked a little deeper. A pragmatic solution could be, we have a virtual outer and inner contour. which have a regular shape.

image.png.a10b851ae329f668328ea72422355d60.png

Then we create the points on this contours:

image.thumb.png.5cde3e74c69d55b9d237a98734fcd0a4.png


Connecting to the existing script will modell the stair and intersect the shape:
image.png.f59e82647e11f79a6f78e6371eb691dd.png

One point left, it does not stop by the final contour if it is infinite like this:
image.thumb.png.1135e35f0104325b1f3bab213bf16336.png



To use this in a PIO you have to make control-geometry a group and order the elements in the right order:
Extract them in the right order
image.thumb.png.2b25ee0ff9fc66e5d0f1290b1461f4f9.png


important keep order. Otherwise you will mess it up. I took order here in this example 1. VirtualShapeOut 2. VirtualShapeIn 3. Final Form.

Then wrap and convert to pio
image.png.000ede98dfde53412e14846d7bd0bf23.png

 
You have to bound the shape ad the escape step.

What is missing is the 2D Geometry, which has to many lines now. But it is makable. Not worth to go further if it is not clear if anyway the geometry methode is fitting the requirements. 

Connect to local Distributor ComputerWorks. They can help. If it takes longer it will be not costless. But maybe this start would help you.


Oval Individual Focus points.vwx

image.png

  • Like 2
Link to comment

Hey, thank you very much for your detailed reply! 
 

To clarify: the special inner shape results partly from the maximum allowed distance of 2 m from the building, and partly from additional Swiss fire safety regulations. These require a minimum walking width of 1.5 m for spiral staircases, as well as a minimum tread depth of 15 cm at the inner radius. Because of this, the shape became compressed on the inside, while the outer superellipse form is a deliberate design decision.
 

I really like your first ideas! If I understood correctly, there’s now an inner counter where you can define the width, and additionally an option to set the width along the centerline of the walking direction for each individual tread. if that would be somehow editable or even rechable in the Control Geometry, that would be amazing.
 

In the second part, where you introduced a virtual counter and a final counter, I think that’s a very good approach. Ideally, it would be great if — as described above — the minimum width could be entered directly at the inner virtual counter (though I’m not sure if that’s technically possible).

I tested the document, and the current workflow issue is that the starting point can no longer be freely defined, or at least it’s unclear where it begins. A combination of the original file and your modified version would be perfect.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...