How to draw a square or rectangular spiral in 3d

Recommended Posts

Good day to all. I need some help. I kno how to draw a helix in 3d (circular). But is there a way to draw a square or rectangular spiral? Thank you very much for your help.

Share on other sites

Yes you need a 3d path a 3dpline you would need to write a program to work out the x,yz of the points maybe use excel ?

What you have asked for is a stair hand rail.

Share on other sites

Not clear on what you want.  Would sweeping a square or rectangle along a helix meet your requirements?    If not, could you clarify?

Note, I thought I knew the difference between a helix and a spiral but a quick search found different results including the following:

As nouns the difference between helix and spiral is that helix is (mathematics) a curve on the surface of a cylinder or cone such that its angle to a plane perpendicular to the axis is constant; the three-dimensional curve seen in a screw or a spiral staircase while spiral is (geometry) a curve that is the locus of a point that rotates about a fixed point while continuously increasing its distance from that point.

I think you are interested in a 3D helix and not a spiral.

Share on other sites

thanks for the reply guys and sorry for my vague question. i found out how to do it by using the 3d poly . what i'm trying to do is make a pattern similar to spiral but the pattern is rectangular whereas in spiral it is circular. and 3d poly solve my problem.

Share on other sites

A square spring! I use individual lines (in a square) then alter the Z value of the individual ends of the lines in the properties palette, once you have the 4 lines touching end to end (except the start/end points of course) then the "join" command will create a 3Dpolyline for you, then you can use the copy command to stack up the spring, again using the "join" command when it is tall enough. I use this technique to create 3D printer tool paths so it is often a more complicated outline than a square, but it removes the problem of the printer head crossing over existing printed lines, dragging the object free from the print bed (a common problem for 3D prints).

In my case, I use a fraction of a millimeter height difference between line ends, the advantage is that you can select individual lines rather than trying to get at the correct vertex and after one circuit all you then need do is copy-paste using the start and end points.

Share on other sites
Posted (edited)

It should be easy using a pline just ask what is rise required and how many turns then just recreate using the vertice of the plines.Obviously a lisp or steven your expertise with excel. Just thinking about the shape to be sqaure to start of 3dpoly. Tested using polygon 22 sided etc.

```
; Convert pline to a 3d spiral
; By Alan H May 2019

(defun C:plspiral ( / ent num rise x lst pt oldsnap)
(setq oldsnap (getvar 'osmode))
(setq ent (entsel "pick Pline"))
(if ent (setq co-ords (mapcar 'cdr (vl-remove-if-not '(lambda (x) (= (car x) 10)) (entget (car ent))))))
(setq ans (AH:getvalsm (list "Spiral pline" "How many turns" 5 4 "3" "Vertice increment height" 5 4 ".25" )))
(setq num (Atoi (nth 0 ans)))
(setq rise (atof (nth 1 ans)))
(setq lift 0.0)
(setq lst '())
(repeat num
(setq x 0)
(repeat (length co-ords)
(setq pt (nth x co-ords))
(setq pt (list (car pt) (cadr pt) lift))
(setq lst (cons pt lst))
(setq x (+ x 1))
(setq lift (+ lift rise))
)
)
(setq lst (reverse lst))
(setvar "osmode" 0)
(setq x 0)
(command "_3dpoly")
(while (= (getvar "cmdactive") 1 )
(repeat  (length lst)
(command (nth x lst))
(setq x (+ x 1))
)
(command "")
)
(setvar 'osmode oldsnap)
(command "vpoint" "1,1,1")
(princ)
)

(c:plspiral)
```
Edited by BIGAL

Share on other sites

Jameskobe1 its your turn now !

i did a take a pline shape and turn it square to the rising line and extrude as an extra but with no responses have kept it.

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.

×   Pasted as rich text.   Paste as plain text instead

Only 75 emoji are allowed.