기본 형상과 부울 연산을 통해 수학적으로 암시적으로 모형화되었습니다(형상은 방정식으로 완전히 설명되었습니다). 워싱턴 대학의 ME480 CAD 3DP 수업에서 실시한 대학 과제로, 3D 모델링과 3D 인쇄의 고급 사용에 대한 내용이 포함되어 있습니다.
모형의 대부분은 구형에 모비우스 테이프를 부울적으로 추가하여 만들어집니다.
마테마틱스에서 사용된 모형 코드.
기반 코드는 마크 간터 교수의 것입니다.
(<)부울 조인)
가입하세요 [f]음, 그게...] := f와 g의 최소값
(<)부울 커트)
잘라내기 [f]음, 그게...][ = Max[f, -g]
(<)번역들.)
트랜스X [f], s][ = f /. x -> (x - s)
트랜스Y [여성], s][ =: f /. y -> (y - s)
트랜스Z[f], s][ =: f /. z -> (z - s)
(<)회전하세요.)
rotateRZ[f <]그건, 아...] := f /. {x -> x <}코스[a] + y신[a], y -> -x신[a] + y코스[a}
회전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)
모비우스[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]
트랜스2로타테마3 = 트랜스X[트랜스로타테마3, 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]
트랜스로타마32 = transX[rotatemuckabout32, 3]
transrtransma32 = transY[transrotatema32, 1]
transrttma32 = transZ[transrtransma32, -2.75]
(<)두 개의 기하학적 객체를 함께 합쳐주세요.)
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, 9y - x^2y - y^3 + 6xz + 2x^2z + 2y^2z - yz^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)^2z + 2 (-0.5 + y)^2z - (-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], 최대값[-7.5625 + (-0.5 + x)^2 + (0.5 + y)^2 + z^2, -9 (0.5 + y) + (-0.5 + x)^
맥스[-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 + (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]
최소값[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
모델 소스
