Implicit Solid Model
Mô hình Implicit Solid được tạo ra bằng Mathematica thông qua việc sử dụng phương trình toán học và các phép toán Boolean. Đây là một bài tập kỹ thuật CAD nâng cao mô tả hình học phức tạp, được đăng tải lần đầu trên Thingiverse từ năm 2014.
Mô tả
Mô hình này được tạo ra hoàn toàn bằng phương pháp toán học (Implicit Modeling), trong đó hình dáng được mô tả bằng các phương trình thông qua phần mềm Mathematica, kết hợp các hình khối cơ bản và các phép toán Boolean. Đây là bài tập trong môn ME480 CAD 3DP tại Đại học Washington, tập trung vào việc ứng dụng nâng cao của mô hình hóa 3D và in 3D.
Phần lớn cấu trúc của mô hình được tạo ra bằng phép cộng Boolean (Boolean Addition) giữa dải Mobius và một hình cầu.
Mã code Mathematica được sử dụng
Mã nguồn cơ bản từ Giáo sư Mark Ganter
(Phép hợp Boolean) join[f, g] := Min[f, g] (Phép cắt Boolean) cut[f, g] := Max[f, -g]
(Các phép dịch chuyển) transX [f, s] := f /. x -> (x - s) transY [f, s] := f /. y -> (y - s) transZ[f, s] := f /. z -> (z - s)
(Phép xoay) rotateRZ[f, a] := f /. {x -> x_Cos[a] + y_Sin[a], y -> -x_Sin[a] + yCos[a]} rotateZ[f, a_] := rotateRZ[f, d2R[a]]
(Khai báo hình học cơ bản: Hình cầu) sphere[rad_] := x^2 + y^2 + z^2 - rad^2
(Khai báo hình học cơ bản: Dải Mobius - 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
(Tạo hình học: muckabout3) muckabout3 = cut[sphere[2.75], mobius[3]]
(Tạo hình học: trasn2rotatma3) rotatemuckabout3 = rotateZ[muckabout3, 180] transrotatema3 = transY[rotatemuckabout3, -0.5] trans2rotatema3 = transX[transrotatema3, 0.5]
(Tạo hình học: trans2rotatma13) transrotatema13 = transY[muckabout3, 0.5] trans2rotatema13 = transX[transrotatema13, -0.5]
(Hợp nhất hai hình học) joinedmuckabout3 = join[trans2rotatema13, trans2rotatema3]
(Tạo hình học: transrttma32) muckabout32 = cut[sphere[6], mobius[3]] rotatemuckabout32 = rotateZ[muckabout32, 180] transrotatema32 = transX[rotatemuckabout32, 3] transrtransma32 = transY[transrotatema32, 1] transrttma32 = transZ[transrtransma32, -2.75]
(Hợp nhất hai hình học) joinmuck3s = join[joinedmuckabout3, transrttma32]
(Vẽ mô hình để xem trước) plt = ContourPlot3D[joinmuck3s == 0, {x, -10, 10}, {y, -10, 10}, {z, -10, 10}
(Xuất mô hình dưới định dạng tệp STL) Export["ISMmodel1.stl", plt, "STL"]
Phương trình ISM kết quả
(Dữ liệu phương trình giữ nguyên như bản gốc)
Giấy phép
File mô hình
Chưa có bản in nào được khoe. Hãy là người đầu tiên!
Chưa có bình luận nào. Hãy là người đầu tiên!