Моделировано имплицитно (форма полностью описана уравнением) с помощью Mathematica с использованием базовых геометрических фигур и булевых операций. Задание для занятий по CAD и 3D-печати в рамках курса ME480 в Университете Вашингтона, посвященного расширенному использованию 3D-моделирования и 3D-печати.
Основная часть модели создается путем булевой суммы ленты Мебиуса и сферы.
Модельный код, используемый в Mathematica.
Базовый код предоставлен профессором Марком Гантером.
(Логическое объединение.)
Присоединяйтесь [f], g] := Минимум [f, g]
(Булевое вырезание.)
Резать [f, g] := Max[f, -g]
(Переводы.)
ТрансX [для женщин], s] := f /. x -> (x - s)
Транс-Y [для девушек], s] := f /. y -> (y - s)
Трансгендер [f], s] := f /. z -> (z - s)
(Вращайте.)
Вращайте RZ[f]!, а] := f /. {x -> x <en> ] := f /. {x -> x <ru> ] := f /. {x -> x <en> ] := f /. {x -> x <ru> ] := f /. {x -> x <en> ] := f /. {x -> x <ru> ] := f /. {x -> x <en> ] := f /. {x -> x <ru> ] := f /. {x -> x <en> ] := f /. {x -> x <ru> ] := fКос[a] + yСинус [a], y → -x.Синус [a] + yКос[а]}
Вращайте по оси Z, если f меньше нуля., а] := rotateRZ[f, d2R[a]]
(Декларируем примитивную геометрию: сфера.)
sphere[rad_] := x^2 + y^2 + z^2 - rad^2
(Декларируем примитивную геометрию: Лента Мебиуса -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
(Создание геометрии: 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]
(Соединение двух геометрических фигур вместе.)
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]
(Соединение двух геометрических фигур вместе.)
joinmuck3s = присоединиться [присоединился к MuckAbout3, transrttma32]
(Нарисуйте модель для предварительного просмотра.)
Площадь поверхности:
(Экспортируйте свою модель в виде файла STL.)
Экспортировать ["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]
Макс[-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]
Мин[Макс[-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
モデルソース
