OpenSCAD Workbench/es

Introducción
El Ambiente de trabajo OpenSCAD tiene como objetivo ofrecer interoperabilidad con el software de código abierto OpenSCAD. Este programa no se distribuye como parte de FreeCAD, pero debe ser instalado para hacer uso completo de este banco de trabajo. No se debe confundir OpenSCAD con OpenCASCADE, que es el núcleo geométrico que FreeCAD utiliza para construir la geometría en la pantalla. Las bibliotecas de OpenCASCADE siempre son necesarias para usar FreeCAD, mientras que el ejecutable de OpenSCAD es totalmente opcional.

Contiene un importador que permite abrir los archivos CSG de OpenSCAD en FreeCAD, y un exportador para producir un árbol basado en CSG. La geometría que no esté basada en operaciones CSG será exportada como una malla.

Este ambiente de trabajo contiene funciones para modificar el árbol de características CSG y reparar modelos. También contiene herramientas de propósito general que no requieren la instalación de OpenSCAD; se pueden utilizar junto con otros ambientes de trabajo. Por ejemplo, el ambiente de trabajo Mesh utiliza internamente las funciones de OpenSCAD para realizar operaciones con meshes, ya que son bastante robustas.



Dependencias
En FreeCAD 0.19, el módulo Ply (Python-Lex-Yacc), que se utiliza para importar archivos CSG, fue eliminado del código fuente de FreeCAD, ya que es una biblioteca de terceros no desarrollada por FreeCAD. Como resultado, ahora es necesario instalar Ply antes de utilizar el ambiente de trabajo OpenSCAD. Cuando se utiliza una versión estable y pre-empaquetada de FreeCAD esta dependencia debería instalarse automáticamente en todas las plataformas; en otros casos, por ejemplo, cuando se compila desde el código fuente, puede que tengas que instalarlo desde un repositorio online.

En openSUSE esto se hace mediante:

En los sistemas basados en Debian/Ubuntu esto se hace de la siguiente manera:

La instalación general en todas las plataformas se puede hacer desde el índice de paquetes de Python.

OpenSCAD lenguaje y formato de archivo
El lenguaje de OpenSCAD permite la utilización de variables y bucles. Permite especificar submódulos para reutilizar geometría y código. Esta alto grado de flexibilidad hace el análisis sintáctico muy complejo. Actualmente el módulo OpenSCAD en FreeCAD no puede manejar el lenguaje de OpenSCAD de forma nativa. En cambio si OpenSCAD está instalado, se puede utilizar para convertir la entrada en un formato de salida denominado 'CSG'. Es un subconjunto del lenguaje OpenSCAD y se puede utilizar como la entrada de OpenSCAD para su procesamiento posterior. Durante la conversión todo el comportamiento paramétrico se pierde. Todos los nombres de variables serán desechados, los bucles expandidos y las expresiones matemáticas evaluadas.

Herramientas
Función de aumento de la tolerancia: Aumenta la tolerancia de bordes/caras/vértice de objeto(s) seleccionado(s).
 * [[Image:OpenSCAD_ColorCodeShape.svg|32px]] ColorCodeShape: Cambia el color de la selección o todas las formas basadas en su validez
 * [[Image:OpenSCAD_ReplaceObject.svg|32px]] Reemplazar objeto: Reemplaza una objeto en el árbol de operaciones. Por favor, selecciona los objetos antiguos, nuevos y padres
 * [[Image:OpenSCAD_RemoveSubtree.svg|32px]] Eliminar sub-árbol: Elimina los objetos seleccionados y todos sus descendientes que no estén referenciados desde otros objetos
 * [[Image:OpenSCAD_RefineShapeFeature.svg|32px]] Refinar operación de forma: Crea una operación de forma refinada
 * [[Image:OpenSCAD_MirrorMeshFeature.svg|32px]] Elemento de malla espejo: Crear característica de malla de espejo.
 * [[Image:OpenSCAD_ScaleMeshFeature.svg|32px]] Escalar la característica de malla: Escala una característica de malla.
 * [[Image:OpenSCAD_ResizeMeshFeature.svg|32px]] Redimensionar elemento de malla: Cambia el tamaño de una característica de malla.
 * [[Image:OpenSCAD_Edgestofaces.svg|32px]] Aristas a caras: Convierte aristas a caras. Útil para preparar geometría DXF importada para su extrusión.
 * [[Image:OpenSCAD_ExpandPlacements.svg|32px]] Expandir ubicación: Expande todas las ubicaciones por debajo del árbol de operaciones
 * [[Image:OpenSCAD_ExplodeGroup.svg|32px]] Explotar grupo: explota las partes primitivas fusionadas.
 * [[Image:OpenSCAD_AddOpenSCADElement.svg|32px]] Añadir elementos OpenSCAD: Añade un elemento OpenSCAD introduciendo código OpenSCAD en el panel de tareas y ejecutando el binario de OpenSCAD (requiere de OpenSCAD)
 * [[Image:OpenSCAD_MeshBoolean.svg|32px]] Mesh Booleana: Crea un nuevo objeto de malla mediante una operación booleana a partir de formas.
 * [[Image:OpenSCAD_Hull.svg|32px]] Casco: Aplica un casco a las formas seleccionadas.
 * [[Image:OpenSCAD_Minkowski.svg|32px]] Minkowski: Aplica una suma de minkowski a las formas seleccionadas.

Preferencias

 * [[Image:Std_DlgParameter.svg|32px]] Preferencias: Preferencias disponibles para las herramientas de OpenSCAD.

Limitaciones
OpenSCAD crea geometría sólida constructiva, así como importa archivos de malla y extruye geometría 2D desde archivos DXF. FreeCAD permite crear CSG con primitivas también. El núcleo de geometría de FreeCAD (OCCT) funciona trabajando sobre una representación de los limites. Por tanto la conversión de CSG a BREP en teoría debería ser posible. Mientras que una conversión de BREP a CSG es, en general, imposible.

OpenSCAD funciona internamente sobre mallas. Algunas operaciones que son útiles en mallas no son significativas en un modelo BREP y no pueden ser totalmente compatibles. Entre estos se encuentran el convex hull, minkowski sum, glide y subdiv. Actualmente ejecutamos el binario OpenSCAD para realizar operaciones de hull y minkwoski e importar el resultado. Esto significa que la geometría involucrada será triangulada. En OpenSCAD, a menudo se usa una escala no uniforme, que no impone ningún problema cuando se usan mallas. En nuestra geometría, las primitivas geométricas del núcleo (líneas, secciones circulares, etc.) se convierten a BSpline antes de realizar tales deformaciones. Esas líneas de BS son conocidas por causar problemas en operaciones booleanas posteriores. Una solución automática no está disponible en este momento. Por favor, siéntase libre de publicar en el foro si encuentra tales problemas. A menudo, tales problemas se pueden resolver remodelando piezas pequeñas. Una deformación de un cilindro puede sustituirse por una extrusión de una elipsis.

Importing text
Importing OpenSCAD code with texts requires that the fonts that are used are properly installed on your system. You can verify this by opening OpenSCAD as a standalone tool and checking the list in. The list will also give you the correct font names. If a font does not appear in the list after installing, you may have to manually copy the font file to the appropriate system directory.

Importing texts is relatively slow. Behind the scenes FreeCAD uses a DXF file created by OpenSCAD. The more contours there are the slower the import.

It can be a good idea to first import a simple test case (replace with the correct font name):

TESTFONT="NameOfFont"; linear_extrude(0.001) { text("A", size=5, font=TESTFONT); };

Please note that statements in your source files are ignored when importing in FreeCAD. Under OpenSCAD the effect of a statement is that the provided font file is temporarily added to the list of known fonts (although even there the statement does not work when a script is modified interactively).

Pistas
Cuando se importa DXF establecer la precisión Borrador a una cantidad sensible para que afecte a la detección de aristas conectadas.

Si FreeCAD se cuelga importando CSG, es muy recomendable activar automáticamente comprobar el modelo después de una operación booleana en

Tutoriales

 * Importar código OpenSCAD

Enlaces

 * Repositorio de código fuente de OpenSCAD en GitHub
 * Open tickets tagged "Openscad" on the FreeCAD bugtracker
 * Elementos etiquetados con "Openscad" en Thingiverse