|
Here is a much simpler way to realize the tetra geometry. Red vertices are the vertices of the tetrahedron. The green lines connect the bottom vertices (coils) to the centroid of the tetrahedron. The top coil points down to the center via the blue line.
For parameter testing, making a big cube frame with some plastic rails might be the easiest way to make a configurable test jig for testing all the coil combinations of this device.
Here is the OpenSCAD code for this basic diagram.
$fn=10;
// params cube_size = 10.0; half_cube_size = cube_size / 2.0;
// cube vertices cube_vertex1 = [half_cube_size, half_cube_size, cube_size]; cube_vertex2 = [half_cube_size, half_cube_size, 0.0]; cube_vertex3 = [half_cube_size, -half_cube_size, cube_size]; cube_vertex4 = [half_cube_size, -half_cube_size, 0.0]; cube_vertex5 = [-half_cube_size, half_cube_size, cube_size]; cube_vertex6 = [-half_cube_size, half_cube_size, 0.0]; cube_vertex7 = [-half_cube_size, -half_cube_size, cube_size]; cube_vertex8 = [-half_cube_size, -half_cube_size, 0.0]; cube_center = [0.0, 0.0, half_cube_size]; debug_sphere_dia = 1.0;
// place a test point module testp(pos) { translate(pos) sphere(d = debug_sphere_dia); }
// connect two points with a cylinder module conedge(p1, p2, dia) { vector = [p2[0] - p1[0],p2[1] - p1[1],p2[2] - p1[2]]; distance = sqrt(pow(vector[0], 2) + pow(vector[1], 2) + pow(vector[2], 2)); translate(vector/2 + p1) rotate([0, 0, atan2(vector[1], vector[0])]) rotate([0, atan2(sqrt(pow(vector[0], 2)+pow(vector[1], 2)),vector[2]), 0]) cylinder(h = distance, r = dia/2, center = true); }
// place the cube vertices color([1, 0, 0]) testp(cube_vertex1);
testp(cube_vertex2); testp(cube_vertex3);
color([1, 0, 0]) testp(cube_vertex4);
testp(cube_vertex5);
color([1, 0, 0]) testp(cube_vertex6);
color([1, 0, 0]) testp(cube_vertex7);
testp(cube_vertex8);
color([1, 0, 0]) testp(cube_center);
// connect the tetrahedral vertices together color([0,1,0]) conedge(cube_vertex1, cube_center, 0.25); color([0,1,0]) conedge(cube_vertex4, cube_center, 0.25); color([0,1,0]) conedge(cube_vertex6, cube_center, 0.25); color([0,0,1]) conedge(cube_vertex7, cube_center, 0.25);
|