Jump to content

3d duplicate array (spiral stair)


Recommended Posts

I have done some searching on the forums and it seems that I am not alone in wanting a simple way to create a spiral staircase. I am aware that there is a Plug In Object, but I don't want to create anything that complex. All I would like to do is create a keyhole shaped column/step combination, then rotate it around a vertical axis running through the round column end while offsetting it in the Z direction.

Any ideas on how to do this? Perhaps this is another idea for the 3D wishlist - a 3d duplicate array which can rotate around a locus and offset in the z direction at the same time. Cheers, Nick

Link to comment

quote:

Originally posted by Kevin:

I wanted to have a tube or wide flange that would follow that "S" curve in both 2d and 3d. It would be the only support for those stair treads. I could not figure out a way to do it.


Kevin,

An Extrude along path, (or perhaps a Loft) should do what you want.

Make the 3D path as a NURBS curve and extrude your tube/flange profile along that

Link to comment

Kevin,

sorry- It's been a long day- and I should have posted the instructions with the pix

In front elevation make a rectangle (6"x3") select sweep- diameter 6' pitch 23' Then make a cylinder with a 5'9" radius (starting from the centerpoint of the sweep) which is over 23' high- subtract the cylinder solid from the sweep- and you have the "rail"

HTH

Ziska

Link to comment

I have been looking for this too. I had a stair that was like an "S" curve. For the treads I created them in 2d plan, extruded and then assigned them the necessary Z elevation in the OIP. A little slow but it worked.

What I have not been able to do is create the spline that supports all of those treads. I wanted to have a tube or wide flange that would follow that "S" curve in both 2d and 3d. It would be the only support for those stair treads. I could not figure out a way to do it.

So I got the treads to work, but they are floating in space with no visible means of support.

Link to comment

NickB, follow file is the script.

It work in VW9 and 10 versione.

How it work?

In top/plan view to create the tread stair (horizontal surface of your stair) and after the 2D point for center of rotation.

If you haven't experience in manage script you can run it via men? File>Import>Import vectorscript.... then reply to the dialog that appare.

Also you can save the script in your file with Palettes> Resource Browser.

Make this steps:

a) open Resource Browser from menu Palettes;

b) select "Resources" then "New Resource in....2;

c) "Create Resource" window to appare, select "VectorScript" then click "Create";

d) Assign a name in the next dialog and "Ok";

e) Assign a script name in the next dialog and "Ok";

f) Now you are in VectorScript Editor, look at top-left side there are two icons. Click on the left one and select "Text File...";

g) find text file of my script, select and open;

h) now text script is pasting in window editor, well, click "Ok".

At this time you run the script simply to double click on it name in the palette.

Copy text followed in a text editor and save it as a text file.

{Copy from this line to.....}

{Arch. Lamberto Previati ?2004/Ago/10}

{this procedure rotate and duplicate selected

object along Z axis if object is a 3D object.

This script is prototype script and more better

addenda are possible for a profesional look.}

{10/08/2004: add TotalStep difference, NumStep. Procedure calcolate SingleStep}

{Note: Move3DObj non lavora correttamente se Obj ? un gruppo}

{How it work?

Make sure that a 3D object and point center of rotation are in your file, then

run script and enter values in dialogs. Look a the message window.

Good work.}

{IMPORTANT: this script don't check if the selected object is a correct one (i.e. a 3D object)}

Procedure MoveAndRotateAroundZaxis;

VAR

h, hMove, hObj,hSymbol:Handle;

x,y,z,pObjX,pObjY:Real;

i,dummyVar:Integer;

{For predefined dialog}

kTotDepth:Real;

kDupNum:Integer;

kAngRot:Real;

{/// subroutine ///}

Procedure AdjustFirst;

VAR pX, pY, zValue: REAL;

height,width,depth:REAL;

BEGIN

Get3DCntr(hObj,pX, pY, zValue);

Get3DInfo(hObj,height,width,depth);

Move3DObj(hObj, 0, 0, -(zValue+ depth/2)+(kTotDepth/kDupNum));

END;

{/// MAIN ///}

BEGIN

kTotDepth:=DistDialog('Enter a total depth distance value:','300');

kDupNum:=IntDialog('Enter a number of steps (only integer value):','15');

kAngRot:=AngDialog('Enter angle value of rotation:', '0d');

DoMenuTextByName('Standard Views',1);

RedrawAll;

i:=0;

message('Select object that you want to rotate and traslate.....');

WHILE NOT GetPickObjectInfo(pObjX,pObjY,hObj,hSymbol,dummyVar) DO BEGIN

GetPt(pObjX,pObjY);

END;

{hObj:=LSActLayer;}

message('Click on Z axis point...');

getpt(x,y);

AdjustFirst;

For i:=1 To (kDupNum-1) DO

BEGIN

hMove := HDuplicate(hObj,0,0);

HRotate(hMove, X, Y, kAngRot*i);

Move3DObj(hMove, 0, 0, (kTotDepth/kDupNum)*i);

END;

ClrMessage;

END;

RUN(MoveAndRotateAroundZaxis);

{......this one. Good Work}

Link to comment

Lamberto, hi thanks for the offer of the script. I'm not up on script editing etc. yet, but would love to have a look. Could you post it or is email better? email me: brick_nistow(at)hotmail.com

That would be great.

Ziska - nice stuff, very stylish.

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...