Crear un cubo con todas las aristas redondeadas es muy fácil. Basta con colocar esferas en cada uno de los vértices y aplicar el comando hull. Para que el cubo tenga las mismas dimensiones que el equivalente sin redondear, hay que calcular las coordenadas de las 8 esferas.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
//-- Constantes para acceder a las coordenadas X,Y,Z de los vectores X = 0; Y = 1; Z = 2; //-- Parámetros del cubo redondeado r = 4; //-- Radio de las curvas A = [30, 30, 20]; //-- Dimensiones del cubo //-- Calcular las coordenadas en funcion de los parametros del user a = (A - [2*r, 2*r, 2*r])/2; //-- Obtener las coordenadas. Es un atajo para no escribir tanto x = a[X]; y = a[Y]; z = a[Z]; //-- Calcular los vertices del cubo vertice = [ [x, y, z], [-x, y, z], [-x, -y, z], [x, -y, z], [x, y, -z], [-x, y, -z], [-x, -y, -z], [x, -y, -z], ]; //-- Cubo de comprobacion. Mismas dimensiones pero sin //-- redondear. El redondeado debe tener las mismas dimensiones %cube(A, center = true); //-- Dibujar el cubo redondeado. Se coloca en cada vertice una //-- esfera de radio r y se aplica el operador hull hull() for (pos = vertice) translate(pos) sphere(r = r, $fn = 20); |
Este contenido ha sido publicado por ObiJuan en su página web bajo licencia Creative Commons Attribution-ShareAlike 2.5 Spain License.