0
|
7279 Views
|
3 Replies
|
2 Total Likes
View groups...
Share

# Scaling 3D Parametric Plots in Mathematica for Export

Posted 9 years ago
 http://community.wolfram.com/groups/-/m/t/399511?p_p_auth=k9gxD9b2 Ok so in this last discussion, I was trying to figure out the size of graphics in mathematica to compare it to what I was getting in Makerbot. The conclusion was that Makerbot was indeed messing with the size of the seashells as well as the ratio between axes. So we tried to fix the problem by manipulating size in makerbot to restore the same ratio that was present in Mathematica. Unfortunately, it simply would not work at the desired magnification. Every time I changed one axis, the others would get changed. The only way to manipulate the axes separately was at the original size, but trying to scale it up to the desired size would once again mess up the ratio. So at this point, we're looking at scaling the seashells while still in Mathematica and then comparing the size in mathematica to what makerbot spits out. If the changes are minimal, we'll stick with them. Unfortunately, the ratios get extremely distorted when we scale up in Makerbot. Here's the code again: a = 1.06 b = 6 c = 1.5 d = 1 e = 1.2 tr = 0 tmax = 50 ParametricPlot3D[a^ t { Cos[t] (1 + c (Cos[e] Cos[\[Theta]] + d Sin[e] Sin[\[Theta]])), Sin[t] (1 + c (Cos[e] Cos[\[Theta]] + d Sin[e] Sin[\[Theta]])), b + c (Cos[\[Theta]] Sin[e] - d Cos[e] Sin[\[Theta]])}, {\[Theta], -Pi, Pi}, {t, -tmax, 0}, PlotStyle -> Directive[Opacity[1 - 0], Lighter[Yellow, .3], Specularity[White, 10], Thickness[.1]], Axes -> True, ViewPoint -> {1, 1, -3}, Boxed -> True, PlotRange -> All, ImageSize -> {400, 450}, Mesh -> None, PlotPoints -> 400, MaxRecursion -> ControlActive[0, Automatic]]  So an optimal size is 25-37.5x the generated size. Is there any way to scale the seashells up by that much and then export as STL to be printed in Makerbot?
3 Replies
Sort By:
Posted 9 years ago So I need to still mess with the scaling factor, but it definitely works!
Posted 9 years ago
 You've done it again, Jim! I'm almost positive that this will do the trick. Thank a bunch! I'm testing it out as we speak
Posted 9 years ago
 If I understand correctly, then just multiplying by the desired scaling factor should work: a = 1.06 b = 6 c = 1.5 d = 1 e = 1.2 tr = 0 tmax = 50 (* Scaling factor *) scalingFactor = 30 ParametricPlot3D[ scalingFactor a^ t {Cos[t] (1 + c (Cos[e] Cos[\[Theta]] + d Sin[e] Sin[\[Theta]])), Sin[t] (1 + c (Cos[e] Cos[\[Theta]] + d Sin[e] Sin[\[Theta]])), b + c (Cos[\[Theta]] Sin[e] - d Cos[e] Sin[\[Theta]])}, {\[Theta], -Pi, Pi}, {t, -tmax, 0}, PlotStyle -> Directive[Opacity[1 - 0], Lighter[Yellow, .3], Specularity[White, 10], Thickness[.1]], Axes -> True, ViewPoint -> {1, 1, -3}, Boxed -> True, PlotRange -> All, ImageSize -> {400, 450}, Mesh -> None, PlotPoints -> 400, MaxRecursion -> ControlActive[0, Automatic]] And this reference seems very related: http://community.wolfram.com/groups/-/m/t/139463