[Working Macro][work in progress] Curved Path Stairs
Forum rules
Be nice to others! Respect the FreeCAD code of conduct!
Be nice to others! Respect the FreeCAD code of conduct!
Re: [Working Macro][work in progress] Curved Path Stairs
It is really @ABeton concept how to do a stair with non-linear flight, and @Roy_043's programming knowledge how to improve performance, that is great indeed
EDIT - And forgot to mention your task panel @balrobs is awesome too I can't create a task panel (yet ?)
EDIT - And forgot to mention your task panel @balrobs is awesome too I can't create a task panel (yet ?)
Re: [Working Macro][work in progress] Curved Path Stairs
As option to save time for recomputing the model during design development:-
Maybe @Roy_043 or other advance programmer can push to another limit ?
- as now each Tread is 1 solid instead of 2, and bottom is faceted in any rate, it looks good enough though splitters on sides are not removed, so
- trying not to Fuse all the Solid of each Tread to save time (makeCompound instead - EDIT : see below post, seems no need )
- not to RemoveSplitter to save time
- to be worked as an option user can select in Data Tab e.g., until last moment, export to TechDraw, IFC etc.
- last version (Fusing all Tread solids + RemoveSplitter at the end) : 1.94s
- this version : 1.52s
Maybe @Roy_043 or other advance programmer can push to another limit ?
Re: [Working Macro][work in progress] Curved Path Stairs
It seems no needs to makeCompound() of all separate solids before boolean
1.23s
(As only a python and FC beginner, I am really try and error and recording steps for my own future reference only )
1.23s
(As only a python and FC beginner, I am really try and error and recording steps for my own future reference only )
Re: [Working Macro][work in progress] Curved Path Stairs
The algorithm @ABeton developed is inspiring -yorik wrote: Ping
Maybe add an Boolean Common, in addition to Addition and Subtraction, to every Arch Objects ?
(Then, needs to select the order of operation ?)
@ABeton's Macro generate an Solid out of the custom shape from a Sketch, and to Boolean Common with a 'base flight' (this also works with curve), to result in the various more customisable flight. Currently, some customisation of the 'landing' shape is possible, would be awesome if flight has more options, and this is possible in other Arch Object also.
In fact, this concept open up more possibilities - a Sketch to contain more information of a flight or landing:-
- 1 wire / edges to signify the 'path'
- 1 (close) wire / edges to signify the 'outline' of the flight / landing (to boolean common)
- (1 wire to signify the floor opening to create - something like Window's subVolume)
...
Any comments ?
Re: [Working Macro][work in progress] Curved Path Stairs
Hi @paullee,paullee wrote: ↑Sun Jan 30, 2022 3:35 am ...
This may be important as I like to try (when there is a gap ) making the bottom as a 1 continuous curvilinear surface instead of current faceted faces of flat bottom surface of every tread... then the whole recomputing time may become back to tens of second again.
...
while you are on the bottom surface why not try to implement the thickness variable to give user better way to control the stair geometry? Do you think it's possible? Thanks for your persistence
Re: [Working Macro][work in progress] Curved Path Stairs
Seems workable. Can you have a look at original Arch Stair and examine the original setting interpretation for consistency in attributes / terms ?
EDIT - Arch_Stairs
The original wiki does not explain or illustrate the exact meaning of the attributes - better still someone after examining them can update the wiki
By the way, may be some structural engineer could explain in what way they would dimension a stair.
Re: [Working Macro][work in progress] Curved Path Stairs
Of course, this property in the original stair is called "Structure thickness".
I'm an old structural engineer and because of this I know that it's very important to control that "Structure thickness" variable.
When I dimension such a curved staircase I would model it with a curved 2D-surface with a thickness of "Structure thickness".
Tomorrow back on my office machine I will send some pics for better understanding!
Cheers
edit
Last edited by balrobs on Sun Jan 30, 2022 3:58 pm, edited 1 time in total.
Re: [Working Macro][work in progress] Curved Path Stairs
So you are the personbalrobs wrote: ↑Sun Jan 30, 2022 2:22 pm Of course, this property in the original stair is called "Structure thickness".
...
I'm an old structural engineer and because of this I know that it's very important to control that "Structure thickness" variable.
When I dimension such a curved staircase I would model it with a curved 2D-surface with a thickness of "Structure thickness".
Tomorrow back on my office machine I will send some pics for better understanding!
edit
So the original ArchStair, with this attribute in 0mm and 150mm, looks like below screencaptures - consistent with yours thought?
Re: [Working Macro][work in progress] Curved Path Stairs
yorik wrote: Ping
Below Stairs (created almost 1 year ago) is defined by a Line (direction / path), further subtracted by 2 volumes in Subtraction.paullee wrote: ↑Sun Jan 30, 2022 4:28 am The algorithm @ABeton developed is inspiring -
Maybe add an Boolean Common, in addition to Addition and Subtraction, to every Arch Objects ?
(Then, needs to select the order of operation ?)
@ABeton's Macro generate an Solid out of the custom shape from a Sketch, and to Boolean Common with a 'base flight' (this also works with curve), to result in the various more customisable flight. Currently, some customisation of the 'landing' shape is possible, would be awesome if flight has more options, and this is possible in other Arch Object also.
In fact, this concept open up more possibilities - a Sketch to contain more information of a flight or landing:-
- 1 wire / edges to signify the 'path'
- 1 (close) wire / edges to signify the 'outline' of the flight / landing (to boolean common)
- (1 wire to signify the floor opening to create - something like Window's subVolume)
...
Any comments ?
It could be created similarly defined by an edge / wire in a Sketch, that another Closed Wire in same Sketch defined the volume for Boolean Common.
Simple and clean enough ?