
Implicit Solid Model
- Downloads
- 0
- Likes
- 0
- Views
- 68
- Remixes
- 0
- Comments
- 0
Files 1 5.6 MB
- WeeksB_ISM_1775318912.stlSTL · 5.6 MB
Make a variant with AI
Build another version of this model.
Details
- Model ID
- #286378
- Category
- Mỹ Thuật
- Published
Description
Modeled implicitly (the shape is completely described with an equation) via Mathematica using basic geometries and Boolean Operations. College assignment for University of Washington's ME480 CAD 3DP class on advanced use of 3D modeling and 3D printing.
The bulk of model is created by a Boolean Addition of a Mobius Strip to a Sphere.
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 ISM 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]]
Print spec
- Formats
- stl
- Model files
- 1
- Total size
- 5.6 MB
- Largest file
- 5.6 MB











