Advertisement
Guest User

Untitled

a guest
Jan 20th, 2020
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.90 KB | None | 0 0
  1. //НИС — Сделать мыльницу 70х50х20 в OpenSCAD.
  2.  
  3. //Для удобного изменения координат.
  4. Delta = 1;
  5.  
  6. X = 70 * Delta;
  7. Y = 50 * Delta;
  8. Z = 20 * Delta;
  9. //Изменение количества полигонов.
  10. //При 100 рендеринг: ~40 секунд.
  11. //При 200 рендеринг: ~120 секунд.
  12. $fn=200;
  13.  
  14. // Функция, чтобы отрисовать ножку,
  15. // которая выше оси координат.
  16. module leg(legX,legY,legZ) {
  17. difference() {
  18. translate(v = [legX,legY,legZ]) {
  19. cylinder(Z,Z/6.7,Z/4);
  20. }
  21. $fn = 20;
  22. //Вырезам всё, что меньше 0.
  23. translate(v = [0,0,-Z]) {
  24. cube([X,Y,Z], false);
  25. }
  26. }
  27. }
  28.  
  29. difference(){
  30. union(){
  31. translate(v = [X/2,Y/2,Z-Z/3.5]){difference(){
  32.  
  33. // Создаём сферу
  34. scale([X/2,Y/2,Z/1.5]){sphere(1);}
  35.  
  36. // И вычитаем из неё куб
  37. translate(v = [-X/2,-Y/2,Z/10]) {
  38. cube([X,Y,Z], false);
  39. }
  40. }}
  41.  
  42. //Делаем ножки. 4 наклонённых цилиндра
  43. leg(X/4,Y/4,-Z/2);
  44. leg(3*X/4,Y/4,-Z/2);
  45. leg(3*X/4,3*Y/4,-Z/2);
  46. leg(X/4,3*Y/4,-Z/2);
  47. }
  48.  
  49. // ВЫЧИТАЕМ ДЫРОЧКУ ДЛЯ ВОДЫ.[Чтобы вода стекала обратно в раковину/ванну]
  50. rotate([-76,0,0]) {translate(v = [X/2,0,-Z/7]) {
  51. cylinder(r=X/30, h=Z*1.5);
  52. }}
  53. rotate([-75,0,0]) {translate(v = [X/2 + X/10,0,-Z/7]) {
  54. cylinder(r=X/30, h=Z*1.5);
  55. }}
  56. rotate([-75,0,0]) {translate(v = [X/2 - X/10,0,-Z/7]) {
  57. cylinder(r=X/30, h=Z*1.5);
  58. }}
  59. // ВЫЧИТАЕМ УГЛУБЛЕНИЕ.
  60. translate(v = [X/2,Y/2,2*Z + Z/15]){
  61. scale([X/1.70,Y/1.75,1.9*Z]){sphere(1);}}
  62.  
  63. }
  64.  
  65. // Для тестирования
  66. /*
  67. translate(v = [0,0,0]) {
  68. cube([X,Y,Z], false);
  69. }*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement