Message Boards Message Boards

[✓] Plot in 3D a X-zylo ?

GROUPS:

X-zylo is a simple cylindrical object with Sine(Sin[t]) shaped undulation on top. You can find link below. It's a flying gyroscope. https://www.amazon.com/X-Zylo-X-zylo-Flying-Gyroscope/dp/B0069G6CKG

How can I make this? (cylindrical parametric function? Just bending/flexing the Sin[t], {t,0,10Pi} in 360 degree) Plot3D ParametricPlot3D RevolutionPlot3D in any form to make it..

Thank in advance!

POSTED BY: Donghwan Roh
Answer
1 month ago

ParametricPlot3D[{Cos[t],Sin[t],Sin[5t],{t,0,2Pi}] Primitive X-Zylo shape of top only

Then How can I make a cylinder below to make a full 3D printable X-zylo? Please give some Ideas!

POSTED BY: Donghwan Roh
Answer
1 month ago

Try

ParametricPlot3D[{ Cos[t], Sin[t], s}, {t, 0, 2 Pi}, {s, 0, 1 + 1/2 Cos[5 t]}, 
PlotPoints -> 50, PlotRange -> All, Mesh -> False]
POSTED BY: Hans Dolhaine
Answer
1 month ago

Both of these are nice als well

ParametricPlot3D[{Cos[t], Sin[t], s}, {t, 0, 2 Pi}, {s, 0,1 + 1/2 Cos[5 t]}, PlotPoints -> 50, PlotRange -> All, 
Mesh -> False, ColorFunction -> Function[{x, y, z}, Hue[.75 z]]]

and

Animate[
ParametricPlot3D[{Cos[t], Sin[t], s}, {t, 0, 2 Pi}, {s, 0, 1 + 1/2 Cos[5 t + u]}, PlotPoints -> 50, 
PlotRange -> All, Mesh -> False], {u, 0, 2 Pi, 0.1}]

But when I try to rotate the colored object my system crashes. What is going wrong?

Animate[
 ParametricPlot3D[{Cos[t], Sin[t], s}, {t, 0, 2 Pi}, {s, 0,  + 1/2 Cos[5 t + u]}, 
PlotPoints -> 50, PlotRange -> All, 
  Mesh -> False, ColorFunction -> Function[{x, y, z}, Hue[.75 z]]],
 {u, 0, 2 Pi, 0.1}]
POSTED BY: Hans Dolhaine
Answer
1 month ago

Poor man's solution (so it was done long long ago):

execute

Do[
Print[ParametricPlot3D[{Cos[t], Sin[t], s}, {t, 0, 2 Pi}, {s, 0, 1 + 1/2 Cos[5 t + u]}, PlotPoints -> 50, 
PlotRange -> All,  Mesh -> False, ColorFunction -> Function[{x, y, z}, Hue[.75 z]]]],
{u, 0, 2 Pi, .3}]

Double click on the second bracket from the right. All plots below the 1st one should vanish, and the bracket should be highlighted (in blue). Then press ctrl-shift -y

POSTED BY: Hans Dolhaine
Answer
1 month ago

Or we can do it for our own:

xx[a_] := {Cos[a], Sin[a], 0}
zz[a_] := {Cos[a], Sin[a], 1 + Cos[5 a]/2}
pol[a_, da_] := Polygon[{xx[a], xx[a + da], zz[a + da], zz[a]}]

da = 2 Pi/60;
Graphics3D[
 Table[{Hue[zz[a][[3]]], pol[a, da]}, {a, 0, 2 Pi - da, da}]]

or

pol1[a_, da_] := 
 Polygon[{xx[a], xx[a + da], zz[a + da], zz[a]}, 
  VertexColors -> {Red, Green, Blue}]

da = 2 Pi/60;
Graphics3D[Table[pol1[a, da], {a, 0, 2 Pi - da, da}]]
POSTED BY: Hans Dolhaine
Answer
1 month ago

Last remark concerning self-made zylos

xx[a_, h_] := {Cos[a], Sin[a], Min[h, 1 + Cos[5 a]/2]}
zz[a_, h_] := {Cos[a], Sin[a], Min[h, 1 + Cos[5 a]/2]}
pol[a_, h_, da_, dh_] := 
 Polygon[{xx[a, h], xx[a + da, h], zz[a + da, h + dh], zz[a, h + dh]}]

nda = 60; ndh = 20; ffh = .48;
da = 2 Pi/nda; dh = 2/ndh;
zylo = Table[{Hue[ffh n dh], 
    Table[pol[m da, n dh, da, dh], {m, 0, nda - 1}]}, {n, 0, ndh - 1}];
Graphics3D[zylo]

and

Animate[
 Graphics3D[Rotate[zylo, u, {0, 0, 1}]],
 {u, 0, 2 Pi}]
POSTED BY: Hans Dolhaine
Answer
1 month ago

[✓] Plot in 3D Cycloid curves on Zylo ??

POSTED BY: Donghwan Roh
Answer
1 month ago

Thank you for replies and great work for nice zylo design, Hans! Another triggering questions for some upgrade and real 3D Print!

First, How can I make thickness of the base zylo? Above Zylo has only plane, there is no thickness option in zylo and base or handle part of X-zylo.

Second question is a real tough one!! How can I make a cycloid on top of zylo instead of sine function in X-zylo? Because there is no known z-axis(height) explicit function of cycloid in terms of center axis, it's much triggering than X-zylo!! Is there any 3D-function to roll the following parametric pot into a cylinder?

ParametricPlot[{t - Sin[t], 1 - Cos[t]}, {t, 0, 10 Pi}] enter image description here

This cycloid crown will be fantastic zylo if 3D-modeled by mathematica!!

Roll above on top of cylinder instead of ParametricPlot[{t, Sin[t]}, {t, 0, 10 Pi}] enter image description here

POSTED BY: Donghwan Roh
Answer
1 month ago

I don't understand what you mean by thickness of the base.

This perhaps?

r[s_, a_, b_] := 1 + a Exp[-b s^2]

ParametricPlot3D[{r[s, .3, 10] Cos[t], r[s, .3, 10] Sin[t], s}, 
{t, 0, 2 Pi}, {s, 0, 1 + 1/2 Cos[6 t]}, PlotPoints -> 50, 
PlotRange -> All, Mesh -> False]

Here is your cycloid, albeit it looks somewhat peculiar

cycl[a_] := Module[{},
  t = x /. FindRoot[a == x - Sin[x], {x, .1}];
  1 - Cos[t]
  ]

ParametricPlot3D[{r[s, .3, 10] Cos[t], r[s, .3, 10] Sin[t], 
  If[s < 1, s, 2 + cycl[5 t]]}, {t, 0, 2 Pi}, {s, 0, 2}, 
 PlotPoints -> 50, PlotRange -> All, Mesh -> False]

Another one. The cycloid is removend from the iterator and put in the vector- function

ParametricPlot3D[{Cos[t], Sin[t], If[s < 1, s, 2 + cycl[5 t]]}, {t, 0,
   2 Pi}, {s, 0, 2}, PlotPoints -> 50, PlotRange -> All, 
 Mesh -> False]

And some (simpler )thickness

rr[x_] := If[x < .5, 1.3, 1]

ParametricPlot3D[{rr[s] Cos[t], rr[s] Sin[t], 
If[s < 1, s, 2 + cycl[5 t]]}, {t, 0, 2 Pi}, {s, 0, 2}, 
PlotPoints -> 50, PlotRange -> All, Mesh -> False]

And last not least the "self-made one. Add a function of h in xx[ a, h ] to Sin and Cos to get some thickness

xx[a_, h_] := {Cos[a], Sin[a], Min[h, 1 + cycl[5 a]]}

pol[a_, h_, da_, dh_] := 
 Polygon[{xx[a, h], xx[a + da, h], xx[a + da, h + dh], xx[a, h + dh]}]

nda = 60; ndh = 20; ffh = .48;
da = 2 Pi/nda; dh = 5/ndh;
zylo = Table[{Hue[ffh n dh], 
    Table[pol[m da, n dh, da, dh], {m, 0, nda - 1}]}, {n, 0, ndh - 1}];
Graphics3D[zylo
 ]
POSTED BY: Hans Dolhaine
Answer
1 month ago

Great Hans, you made a cycloid-zylo, using nested function definition!

Now I have exported the X-zylo and Cycloid zylo model into STL and tried to 3D Print it. However, no 3D program(Sketchup, Rhinocerus, Autodesk fusion 360, etc.) can recognize the mathematical plane into 3D printable object!

So this model need to have full thickness to be printed into real world^^ For example, the whole cylinder thickness 2 mm, and base thickness maybe 5mm with the height of 10mm(1/5 of whole height 50).

Please finally make a 3D full thickness X-zylo and cycloid-zylo model as well as STL if possible!

Your inspiration and mathematica spirit is really appreciated!

Attachment

Attachments:
POSTED BY: Donghwan Roh
Answer
1 month ago

Hello Donghwan,

However, no 3D program(Sketchup, Rhinocerus, Autodesk fusion 360, etc.) can recognize the mathematical plane into 3D printable object!

Whatever that means? I don't know Sketchup, Rhinocerus and so on and I have not idea how these programs work.

So this model need to have full thickness to be printed into real world

And what do you mean by "full thickness"? And what do you mean by "model"?

Regards, Hans

POSTED BY: Hans Dolhaine
Answer
1 month ago

To get a solid STL model from a Mathematica surface plot you could try to use the option PlotTheme -> "ThickSurface" in the plot.

enter image description here

Attachments:
POSTED BY: Hans Milton
Answer
1 month ago

Increasing the number of PlotPoints gives a smoother model. In the attached model the number of PlotPoints is 200. It has also been scaled by a factor of 50.

r[s_, a_, b_] := 1 + a Exp[-b s^2]
example =
    ParametricPlot3D[
    50 {r[s, .3, 10] Cos[t], r[s, .3, 10] Sin[t], s},
    {t, 0, 2 Pi}, {s, 0, 1 + 1/2 Cos[6 t]},
    PlotPoints -> 200, Mesh -> False, PlotTheme -> "ThickSurface"]

When opened in a CAD program:

enter image description here

Attachments:
POSTED BY: Hans Milton
Answer
1 month ago

Thank you Hans Milton! Your reply was really helpful^^ I can now try 3D printing above stl file! Now I have one more question. Can I adjust the thickness of the 3D model by PlotTheme->"ThickSurface"? For example thinner like 1mm thickness or thicker just at the base part? (and thin middle and Cos[6t] part)

POSTED BY: Donghwan Roh
Answer
26 days ago

Donghwan, I do not know how to control thickness value in plot option PlotTheme->"ThickSurface".

There may be other approaches if one wants to use Mathematica. See for example ImplicitRegion and ParametricRegion.

However if I myself wanted to construct a tightly controlled model to be 3D printed I would use a dedicated 3D CAD program. My own personal preference would be SolidWorks. But there are many other programs that could be used. In an earlier post you mention three of them.

Mathematica is not a 3D CAD program. It is something else.

POSTED BY: Hans Milton
Answer
25 days ago

Yes, ParametricRegion and ImplicitRegion can be an option. ParametricPlot3D function does not support thickness(range function).

Mathematica is plotting program, and now it support coming into 3D printing.

So I hope Mathematica support CAD like feature by mathematical function or intuitive editing.

Upper thickness 1mm and Lower base thickness 3mm(for example rr[x_] if x<0.5, 1<rr[x]<1.3 (3mm), if x>0.5 1<rr[x]<1.1 (1mm))Anyway thanks for intuitive opinion Hans Milton!

POSTED BY: Donghwan Roh
Answer
18 days ago

Group Abstract Group Abstract