¿Hay alguna práctica "mejor" o al menos "común" para manejar las asignaciones en el código de OpenSCAD?

8

Estoy diseñando algunos mecanismos con OpenSCAD, y uno de los parámetros que deben ajustarse entre impresoras / filamentos son los márgenes entre piezas que deben ensamblarse (por ejemplo, si quiero un "pasador de 5 mm de diámetro" para sujetar dos piezas). juntos, cuánto más grande que 5 mm serán los agujeros / cuánto más pequeño que 5 mm tendrá que ser el pasador).

Actualmente abordo el problema estableciendo una variable global allowancey utilizándola manualmente en el código, algo como:

module pin(radius) {
    cylinder(r = radius + allowance)
}

module hole(radius) {
    cylinder(r = radius - allowance)
}

Sin embargo, no tengo experiencia en el mundo real con el diseño, por lo que me pregunto si hay mejores prácticas comunes o de codificación para tener en cuenta las asignaciones al diseñar piezas como, por ejemplo:

  • módulos específicos para ser utilizados,
  • nombres convencionales para variables
  • técnicas específicas que se utilizarán (escalamiento? vectores?)
  • convenciones (como usar solo tolerancias en el sujetador, no en el objeto sujeto)
  • ...?

Para aclarar: no estoy buscando consejos sobre cómo planificar las dimensiones de mis diseños. Más bien, estoy buscando consejos sobre cómo organizar el código de OpenSCAD que los genera.

Mac
fuente
1
Sospecho que OpenSCAD es demasiado nicho para tener tales convenciones. Lo que estás haciendo es muy similar a mis propias prácticas.
Mick

Respuestas:

5

Ayuda a comprender los diferentes aspectos de las dimensiones, por lo que puede utilizar la terminología correctamente. Esto lo ayudará a definir sus variables en OpenSCAD con los nombres correctos. (Tolerancia es el término incorrecto para usar). Y una vez que tenga los nombres correctos, comprenderá cómo especificar las dimensiones en OpenSCAD.

  • La tolerancia es la cantidad de desviación o variación aleatoria permitida para una dimensión dada.
  • La asignación es una diferencia planificada entre un valor nominal o de referencia y un valor exacto.
  • El espacio libre es el espacio intencional entre dos partes.
  • La interferencia es la superposición intencional entre dos partes.

Otros dos términos

  • La precisión es la variación dimensional máxima entre las partes. Una máquina no puede producir piezas con una tolerancia más estricta que su precisión.
  • La precisión es el tamaño de los pasos que su máquina es capaz de hacer. A menudo se confunde con la precisión.

En su caso, debe definir la asignación para crear la autorización que desee.

Para diseñar su pasador de 5 mm y su orificio de 5 mm, debe comprender la precisión de su máquina. La impresora podría imprimir el pin más grande que 5 mm o más pequeño que 5 mm. O podría imprimir el agujero más grande que 5 mm o más pequeño que 5 mm. Tendrá que imprimir algunos alfileres y agujeros y medir las diferencias entre lo que definió y lo que imprimió. La diferencia entre las mediciones más grandes y más pequeñas que toma es la precisión de su máquina. Y asegúrese de verificar la precisión en sus dimensiones X, Y y Z; su impresora podría tener una diferencia entre ellos que afectaría la redondez de las piezas.

Digamos que la precisión medida de su impresora es ± 0.2 mm.

Luego, pasamos al despacho. ¿Cuál es el espacio mínimo entre las partes que está buscando y cuál es el máximo que puede aceptar?

Digamos que desea un espacio libre de al menos 0.2 mm entre el pasador y el orificio, pero no más de 1.0 mm. Como su precisión es de ± 0.2 mm, su pasador será de 5.0 ± 0.2 mm, por lo que el orificio debe ser de 5.6 mm ± 0.2 mm. La condición de tolerancia mínima sería un orificio de tamaño mínimo (5,4 mm) y un pasador de tamaño máximo (5,2 mm); la tolerancia máxima sería un orificio de tamaño máximo (5,8 mm) y un pasador de tamaño mínimo (4,8 mm).

Tenga en cuenta que un espacio libre de 1.0 mm puede ser demasiado descuidado para su aplicación. Puede pensar en apretar las tolerancias a 0.05 mm para reducir el espacio libre. Pero si su impresora no puede producir una pieza que cumpla con las tolerancias especificadas, necesitaría encontrar una forma diferente de fabricar o terminar las piezas.

John Deters
fuente
¡Gracias por proporcionarme el vocabulario adecuado en inglés para comunicarme con otros diseñadores de manera efectiva! Actualicé mi pregunta en consecuencia. Sin embargo, mi pregunta es específicamente sobre la organización del código OpenSCAD , no sobre la teoría y la práctica de las asignaciones (que ya entendí, aunque ignore los términos en inglés adecuados). :) ¿Puedo sugerirle que cree una pregunta de estilo wiki (opción cuando edita la pregunta) como "¿Cuáles son las diferencias entre tolerancia y tolerancia?" y mover tu texto allí? Esta es una información muy útil, pero no es una respuesta a mi pregunta, ¡ay!
mac
... y, por supuesto, sería el primero en votar eso ... ¡házmelo saber en los comentarios si puedes hacerlo! :)
mac
2

No conozco un estándar en Openscad, pero puedo compartir lo que he hecho en el pasado.

cutoutActualDiameter = 10;
cutoutDiameterClearance = 0.1;
cutoutDiameter = cutoutActualDiameter + cutoutDiameterClearance;

Sé que esto es detallado, pero desafortunadamente en mi experiencia es una necesidad si desea que su código sea mantenible en Openscad. El beneficio de esto es que hasta que necesite agregar espacio libre, puede usar la variable cutoutDiametery luego, si necesita agregar espacio libre, puede cambiar el nombre de esa variable y no tiene que cambiar ninguno de los códigos donde está la variable consumado.

Sin embargo, me encantaría saber cómo otros manejan esto.

Nick Dancer
fuente
1
Entonces, ¿estás diciendo que en lugar de usar una variable para todas las asignaciones creas una variable ad-hoc para cada dimensión de tu parte? Si no, ¿puede aclarar cuál es la diferencia entre su enfoque y el descrito en la pregunta en sí? ¡Gracias! :)
mac
@mac eso es correcto. Todavía podría usar este patrón con una variable de tolerancia más global y tendría la flexibilidad de usarlo donde pueda o ser tan granular como lo necesite. Algunas cosas pueden necesitar un ajuste apretado. Otros deberían tener algo para dar.
Nick Dancer
-2

Bueno, las tolerancias dependerán del material que se utilizará para la fabricación de la parte requerida y también de dónde irá y encajará la parte. Recuerde que todas las partes necesitan algo de espacio para ajustarse correctamente.

Hace unos años (10 años) trabajaba como ingeniero de calidad y algunos ingenieros de diseño se quejaban de que un pin Dupont no encajaba en la PCB, por lo que me dijeron que necesitaba forzar la fabricación de PCB para aumentar los agujeros a la tolerancia más alta. ¿Qué tuve que preguntarle primero el tamaño del pasador y me dijo 0.70 mm y el tamaño del orificio 0.80 y máximo 0.90 - hmmm y el tamaño máximo del pasador? Pregunté, y me dijeron con orgullo 0.78 mm para que la pieza se ajuste perfectamente. - Oh, entonces un pasador cuadrado de 0.78 mm cabe en un agujero de 0.9 mm, pero ¿qué pasa con la dimensión diagonal? si el pasador en la dimensión superior está cerca de 1.2 mm.

Imagine lo que sucedió más tarde, cambios de ingeniería y modificación de otros diseños debido a tolerancias inadecuadas. El software de ingeniería profesional no pudo calcular lo que los diseñadores necesitaban.

El material tiene contracción, deformación y otras condiciones que se necesitan para conocer la maleabilidad y la dureza, y algunos de estos datos se encuentran en el material de especificación o en la especificación de la pieza.

Fernando Baltazar
fuente
1
Esto no responde a la pregunta de ninguna manera.
tjb1
@ tjb1 Esto le hace pensar en considerar las tolerancias incluso si está utilizando el mejor software cad.
Fernando Baltazar
1
La pregunta es cómo aplicar tolerancias dentro de OpenSCAD al codificar, no cómo se aplican las tolerancias a una parte real.
tjb1
@ tjb1 Entonces, ¿el usuario nunca planeará usarlo en partes reales?
Fernando Baltazar
1
Independientemente de si son tolerancias o tolerancias, la pregunta es sobre cómo aplicarlas en el código dentro de OpenSCAD que está generando el modelo, vea los puntos de la pregunta. StackExchange no es un foro y su respuesta es en gran medida una historia sobre un trabajo anterior, pero no una respuesta a la pregunta.
tjb1