| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- include <../config/pot.scad>
- include <../config/thread.scad>
- include <./thread.scad>
- module pot_object() {
- module base_object(outside) {
- move_x = thread_diameter / 2 + pot_thickness / 2;
- move_z = pot_height / 2 - pot_size / 2;
- size = outside / 2;
-
- hull() {
- translate([move_x, 0, -move_z]) {
- sphere(r = size);
- }
- translate([move_x, 0, move_z]) {
- cylinder(r = size, h = size * 2, center = true);
- }
- translate([-move_x, 0, -move_z]) {
- sphere(r = size);
- }
- translate([-move_x, 0, move_z]) {
- cylinder(r = size, h = size * 2, center = true);
- }
- }
- }
- module watering_object() {
- inside_radius = pot_watering_size / 2;
- radius = inside_radius + pot_thickness;
- connector_size = pot_watering_connector_size / 2;
- connector_outside_size = connector_size + pot_thickness;
- module input_object() {
- module base() {
- hull() {
- sphere(r = radius);
-
- cylinder(
- r = connector_outside_size,
- h = radius * 2,
- center = true
- );
- }
- }
- difference() {
- base();
- sphere(r = inside_radius);
-
- cylinder(
- r = connector_size,
- h = radius * 2,
- center = true
- );
- translate([0, 0, radius / 2]) {
- size = [
- radius * 2,
- radius * 2,
- radius
- ];
- cube(size, center = true);
- }
- }
- }
- render() {
- input_object();
- }
- module connector_object() {
- width = radius + pot_thickness * 2;
- size = connector_size;
- outside_size = connector_outside_size;
- move = width + size;
- translate([-move, 0, -radius]) {
- rotate([90, 90, 0]) {
- rotate_extrude(angle = 90) {
- translate([move, 0, 0]) {
- difference() {
- circle(r = outside_size);
- circle(r = size);
- }
- }
- }
- }
- }
- }
- render() {
- connector_object();
- }
- }
- module base_pot_object() {
- render() {
- difference() {
- thickness = thread_height + pot_thickness * 2;
- base_object(pot_size + thickness);
-
- translate([0, thread_height / 2, thickness / 2]) {
- base_object(pot_size);
- }
- }
- }
- }
- base_pot_object();
-
- watering_move_y
- = pot_size / 2
- + pot_thickness
- + thread_height / 2
- + pot_watering_size / 2
- + pot_thickness * 2
- + pot_watering_connector_size;
- watering_move_z
- = pot_height / 2
- + pot_thickness;
- translate([0, watering_move_y, watering_move_z]) {
- rotate([0, 0, 90]) {
- watering_object();
- }
- }
- }
|