基本的な幾何学とブルーン操作を用いて、Mathematicaで暗黙的にモデリングされました(形状は式で完全に記述されています)。これは、ワシントン大学のME480 CAD 3DPクラスの課題で、3Dモデリングと3D印刷の高度な使用に関するものでした。
モデルの大部分は、球体にモビウスストリップをブーリアン加算して作成されています。
マテマチカで使用されているモデルコード。
ベースコードは、Mark Ganter教授から提供されました。
(ブールジョイン)
参加してください[f]、g] := fとgの最小値
(ブールカット)
切る[f、g] := fと-gのうち大きい方
(翻訳)
トランスX [f], s] := f /. x -> (x - s)
トランスY [f], s] := f /. y -> (y - s)
トランスZ[f], s] := f /. z -> (z - s)
(回転させる)
回転RZ[f <en> Rotate RZ[f]、a] := f /. {x -> x <en> ] := f /. {x -> x <zh> ] := f /. {x -> x <en> ] := fコス[a] + yシン[a], y -> -xシン[a] + yコス[a}
回転Z[f]、a] := rotateRZ[f, d2R[a]]
(プリミティブジオメトリの宣言:球体)
球体[rad_] := x^2 + y^2 + z^2 - rad^2
(プリミティブジオメトリの宣言:モビウスストリップ -http://www.wolframalpha.com/input/?i=mobius+strip+Cartesian+equation)
モビウス[a_] := -a^2 y - 2 a x z + x^2 y - 2 x^2 z + y^3 - 2 y^2 z +
そしてy z^2
(幾何学の作成:muckabout3)
muckabout3 = cut[sphere[2.75], mobius[3]]
(幾何体の作成:trasn2rotatma3)
rotatemuckabout3 = rotateZ[muckabout3, 180]
transrotatema3 = transY[rotatemuckabout3, -0.5]
trans2rotatema3 = transX[transrotatema3, 0.5]
(幾何学の作成:trans2rotatma13)
transrotatema13 = transY[muckabout3, 0.5]
trans2rotatema13 = transX[transrotatema13, -0.5]
(2つの幾何学形体をつなぎ合わせる。)
joinedmuckabout3 = join[trans2rotatema13, trans2rotatema3]
(幾何学の作成:transrttma32)
muckabout32 = cut[sphere[6], mobius[3]]
rotatemuckabout32 = rotateZ[muckabout32, 180]
transrotatema32 = transX[rotatemuckabout32, 3]
transrtransma32 = transY[transrotatema32, 1]
transrttma32 = transZ[transrtransma32, -2.75]
(2つの幾何学形体をつなぎ合わせる。)
joinmuck3s = join[joinedmuckabout3, transrttma32]
(プレビュー用のモデルを描く。)
plt = ContourPlot3D[joinmuck3s == 0, {x, -10, 10}, {y, -10, 10}, {z, -10, 10}
(あなたのモデルをSTLファイルとしてエクスポートしてください。)
Export["ISMmodel1.stl", plt, "STL"]
その結果として得られるISM方程式
マックス[-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]
マックス[-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]
マックス[-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]
マックス[-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]
マックス[-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]
マックス[-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]
ミニマム[マキシマム -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], マキシマム -7.5625 + (-0.5 + x)^2 + (0.5 + y)^2 + z^2, -9 (0.5 + y
マックス[-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]
マックス[-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]
マックス[-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]
マックス[-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]
マックス[-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]
ミニ[マックス[-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], マックス[-7.5625 + (-0.5 + x)^2 + (0.5 + y)^2 + z^2, -9 (0.5 + y) + (-0.5 + x)^2
Model Source
