Alexander F
alex.d.fox10 followers
Follow
Ichthys Pipe (stl) 3d model
Ichthys Pipe (stl) 3d model

Ichthys Pipe (stl)

Open Scad:

// --- PARAMETERS --- tube_radius = 0.6; // Outside radius of the pipe wall_thickness = 0.15; // Thickness of the tube wall $fn = 30; // Smoothness of the tubes

// VISUAL CHECK: Set to false to see the full model! // Set to true to slice it in half and verify it's hollow. slice_open = false;

// Calculate the inner radius for hollowing inner_radius = tube_radius - wall_thickness;

// --- THE FISH COORDINATE PATH --- fish_points = [ [ 7.0, 2.0, 0], // 0: Top of the tail fin (Open End) [ 5.0, 0.0, 0], // 1: Tail intersection [ 1.0, 2.5, 0], // 2: Top curve of the body [-3.0, 0.0, 0], // 3: Nose of the fish (CLOSED MOUTH) [ 1.0, -2.5, 0], // 4: Bottom curve of the body [ 5.0, 0.0, 0], // 5: Tail intersection [ 7.0, -2.0, 0] // 6: Bottom of the tail fin (Open End) ];

// --- MAIN SOLID / HOLLOW GENERATION --- difference() { // 1. Outer Solid Tube Mesh fish_tube_chain(fish_points, tube_radius);

// 2. Inner Subtracted Tube Mesh (The hollow core) fish_tube_chain(fish_points, inner_radius); // 3. True End-Capping Cutters (Only at the tail ends now) // Top Tail Open Hole punch_hole(fish_points[0], fish_points[1], inner_radius); // Bottom Tail Open Hole punch_hole(fish_points[6], fish_points[5], inner_radius); // --- VISUAL CUTAWAY --- if (slice_open) { // Shaves off the front half so you can peer inside translate([-5, 0, -2]) cube([15, 5, 4]); }

}

// --- HELPER MODULES ---

// Creates a continuous chain of hull segments module fish_tube_chain(points_list, r_size) { for (i = [0 : len(points_list) - 2]) { hull() { translate(points_list[i]) sphere(r = r_size); translate(points_list[i + 1]) sphere(r = r_size); } } }

// Dynamically creates a cylinder pointing outward from an endpoint to slice it open cleanly module punch_hole(end_pt, next_pt, r_size) { dir = end_pt - next_pt; // Vector pointing toward the outside exit len_dir = norm(dir); unit_dir = dir / len_dir;

// Position the cutting cylinder slightly inside the tube and extending outward translate(end_pt - unit_dir * 0.2) hull() { translate([0,0,0]) sphere(r = r_size); translate(unit_dir * 2) sphere(r = r_size); // Pulls a cutting core outward }

}


Discussions

Ichthys Pipe (stl)

0 downloads · 15 hours ago
Alexander F
alex.d.fox10 followers
Follow