Implicit Solid Model – Thing 1 by WeeksB

See all models by WeeksB


Download All Files
Favorite
Download Individual Parts
Description
Modeled implicitly (the shape is completely described with an equation) via Mathematica using basic geometries and Boolean Operations.

The main shape is created with a Boolean Addition of a Mobius Strip to a Sphere.

Printing Instructions
####The model code used in Mathematica
#####Base code courtesy of Professor Mark Ganter

(*Boolean Join*)
join[f_, g_] := Min[f, g]
(*Boolean Cut*)
cut[f_, g_] := Max[f, -g]

(*Translations*)
transX [f_, s_] := f /. x -> (x – s)
transY [f_, s_] := f /. y -> (y – s)
transZ[f_, s_] := f /. z -> (z – s)

(*Rotate*)
rotateRZ[f_, a_] := f /. {x -> x*Cos[a] + y*Sin[a], y -> -x*Sin[a] + y*Cos[a]}
rotateZ[f_, a_] := rotateRZ[f, d2R[a]]

(*Declaring a Primitive Geometry: Sphere*)
sphere[rad_] := x^2 + y^2 + z^2 – rad^2

(*Declaring a Primitive Geometry: Mobius strip – http://www.wolframalpha.com/input/?i=mobius+strip+Cartesian+equation*)
mobius[a_] := -a^2 y – 2 a x z + x^2 y – 2 x^2 z + y^3 – 2 y^2 z +
y z^2

(*Creating a geometry: muckabout3*)
muckabout3 = cut[sphere[2.75], mobius[3]]

(*Creating a geometry: trasn2rotatma3*)
rotatemuckabout3 = rotateZ[muckabout3, 180]
transrotatema3 = transY[rotatemuckabout3, -0.5]
trans2rotatema3 = transX[transrotatema3, 0.5]

(*Creating a geometry: trans2rotatma13*)
transrotatema13 = transY[muckabout3, 0.5]
trans2rotatema13 = transX[transrotatema13, -0.5]

(*Joining two geometries together*)
joinedmuckabout3 = join[trans2rotatema13, trans2rotatema3]

(*Creating a geometry: transrttma32*)
muckabout32 = cut[sphere[6], mobius[3]]
rotatemuckabout32 = rotateZ[muckabout32, 180]
transrotatema32 = transX[rotatemuckabout32, 3]
transrtransma32 = transY[transrotatema32, 1]
transrttma32 = transZ[transrtransma32, -2.75]

(*Joining two geometries together*)
joinmuck3s = join[joinedmuckabout3, transrttma32]

(*plot the model for a preview*)
plt = ContourPlot3D[joinmuck3s == 0, {x, -10, 10}, {y, -10, 10}, {z, -10, 10}

(*export your model as an STL file*)
Export[“ISMmodel1.stl”, plt, “STL”]

####The Resulting Equation
Max[-7.5625 + x^2 + y^2 + z^2, 9 y – x^2 y – y^3 + 6 x z + 2 x^2 z + 2 y^2 z – y z^2]
Max[-7.5625 + x^2 + y^2 + z^2, -9 y + x^2 y + y^3 – 6 x z + 2 x^2 z + 2 y^2 z + y z^2]
Max[-7.5625 + x^2 + (0.5 + y)^2 + z^2, -9 (0.5 + y) + x^2 (0.5 + y) + (0.5 + y)^3 – 6 x z + 2 x^2 z + 2 (0.5 + y)^2 z + (0.5 + y) z^2]
Max[-7.5625 + (-0.5 + x)^2 + (0.5 + y)^2 + z^2, -9 (0.5 + y) + (-0.5 + x)^2 (0.5 + y) + (0.5 + y)^3 – 6 (-0.5 + x) z + 2 (-0.5 + x)^2 z + 2 (0.5 + y)^2 z + (0.5 + y) z^2]
Max[-7.5625 + x^2 + (-0.5 + y)^2 + z^2, 9 (-0.5 + y) – x^2 (-0.5 + y) – (-0.5 + y)^3 + 6 x z + 2 x^2 z + 2 (-0.5 + y)^2 z – (-0.5 + y) z^2]
Max[-7.5625 + (0.5 + x)^2 + (-0.5 + y)^2 + z^2, 9 (-0.5 + y) – (0.5 + x)^2 (-0.5 + y) – (-0.5 + y)^3 + 6 (0.5 + x) z + 2 (0.5 + x)^2 z + 2 (-0.5 + y)^2 z – (-0.5 + y) z^2]
Min[Max[-7.5625 + (0.5 + x)^2 + (-0.5 + y)^2 + z^2, 9 (-0.5 + y) – (0.5 + x)^2 (-0.5 + y) – (-0.5 + y)^3 + 6 (0.5 + x) z + 2 (0.5 + x)^2 z + 2 (-0.5 + y)^2 z – (-0.5 + y) z^2], Max[-7.5625 + (-0.5 + x)^2 + (0.5 + y)^2 + z^2, -9 (0.5 + y) + (-0.5 + x)^2 (0.5 + y) + (0.5 + y)^3 – 6 (-0.5 + x) z + 2 (-0.5 + x)^2 z + 2 (0.5 + y)^2 z + (0.5 + y) z^2]]
Max[-36 + x^2 + y^2 + z^2, 9 y – x^2 y – y^3 + 6 x z + 2 x^2 z + 2 y^2 z – y z^2]
Max[-36 + x^2 + y^2 + z^2, -9 y + x^2 y + y^3 – 6 x z + 2 x^2 z + 2 y^2 z + y z^2]
Max[-36 + (-3 + x)^2 + y^2 + z^2, -9 y + (-3 + x)^2 y + y^3 – 6 (-3 + x) z + 2 (-3 + x)^2 z + 2 y^2 z + y z^2]
Max[-36 + (-3 + x)^2 + (-1 + y)^2 + z^2, -9 (-1 + y) + (-3 + x)^2 (-1 + y) + (-1 + y)^3 – 6 (-3 + x) z + 2 (-3 + x)^2 z + 2 (-1 + y)^2 z + (-1 + y) z^2]
Max[-36 + (-3 + x)^2 + (-1 + y)^2 + (2.75 + z)^2, -9 (-1 + y) + (-3 + x)^2 (-1 + y) + (-1 + y)^3 – 6 (-3 + x) (2.75 + z) + 2 (-3 + x)^2 (2.75 + z) + 2 (-1 + y)^2 (2.75 + z) + (-1 + y) (2.75 + z)^2]
Min[Max[-7.5625 + (0.5 + x)^2 + (-0.5 + y)^2 + z^2, 9 (-0.5 + y) – (0.5 + x)^2 (-0.5 + y) – (-0.5 + y)^3 + 6 (0.5 + x) z + 2 (0.5 + x)^2 z + 2 (-0.5 + y)^2 z – (-0.5 + y) z^2], Max[-7.5625 + (-0.5 + x)^2 + (0.5 + y)^2 + z^2, -9 (0.5 + y) + (-0.5 + x)^2 (0.5 + y) + (0.5 + y)^3 – 6 (-0.5 + x) z + 2 (-0.5 + x)^2 z + 2 (0.5 + y)^2 z + (0.5 + y) z^2], Max[-36 + (-3 + x)^2 + (-1 + y)^2 + (2.75 + z)^2, -9 (-1 + y) + (-3 + x)^2 (-1 + y) + (-1 + y)^3 – 6 (-3 + x) (2.75 + z) + 2 (-3 + x)^2 (2.75 + z) + 2 (-1 + y)^2 (2.75 + z) + (-1 + y) (2.75 + z)^2]]

Printing Stats
ISMmodel1Mesh_NetFabbfixed.stl Time: 0h 2m 58s Filament used: 0.029374m
Buy This Printed
Instead of downloading everything and 3D printing it yourself, let us handle it! All printable pieces will be 3D printed by either us, or a trusted manufacturing partner, and then shipped right to your doorstep with no hassle.
Click here to learn more about printing through Lagoon.