OpenSCAD Workbench/es



El módulo OpenSCAD está en un estado de desarrollo inicial.

The OpenSCAD Workbench is intended to offer interoperability with the open source software OpenSCAD. This program is not distributed as part of FreeCAD, but should be installed to make full use of this workbench.

Contiene un importador que permite abrir los archivos .csg de OpenSCAD en FreeCAD.

This workbench contains functions to modify the CSG feature tree and repair models. It also contains general purpose tools that do not require installation of OpenSCAD; they can be used in conjunction with other workbenches. For example, the Mesh Workbench internally uses the OpenSCAD functions to perform operations with meshes, as they are quite robust.



Dependencies
In FreeCAD 0.19, the Ply (Python-Lex-Yacc) module, which is used to import CSG files, was removed from the FreeCAD source code, as it is a third party library not developed by FreeCAD. As a result, you now need to install Ply before using the OpenSCAD Workbench. When using a pre-packaged, stable version of FreeCAD this dependency should be installed automatically in all platforms; in other cases, for example, when compiling from source, you may have to install it from an online repository.

In Debian/Ubuntu based systems this is done like this.

The general installation in all platforms can be done from the Python package index.

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.

The OpenSCAD language allows the use of variables and loops. It allows you to specify sub-modules to reuse geometry and code. This high degree of flexibility makes parsing very complex. Currently the OpenSCAD Workbench cannot handle the OpenSCAD language natively. Instead, if OpenSCAD is installed, it can be used to convert the input to the CSG format, which is a subset of the OpenSCAD language, and can be used as the input to OpenSCAD for further processing. During conversion all parametric behavior is lost, meaning that all variable names are discarded, loops expanded, and mathematical expressions evaluated.

Comandos de la interfaz gráfica del usuario

 * [[Image:OpenSCAD_ColorCodeShape.png|32px]] ColorCodeShape: Cambia el color de la selección o todas las formas basadas en su validez
 * [[Image:OpenSCAD_ReplaceObject.png|32px]] Reemplazar objeto: Reemplaza una objeto en el árbol de operaciones. Por favor, selecciona los objetos antiguos, nuevos y padres
 * [[Image:OpenSCAD_RemoveSubtree.png|32px]] Eliminar sub-árbol: Elimina los objetos seleccionados y todos sus descendientes que no estén referenciados desde otros objetos
 * [[Image:OpenSCAD_RefineShapeFeature.png|32px]] Refinar operación de forma: Crea una operación de forma refinada
 * [[Image:OpenSCAD_IncreaseTolerance.png|32px]] Increase Tolerance Feature: Aumenta la tolerancia de bordes/caras/vértice de objeto(s) seleccionado(s).
 * [[Image:OpenSCAD_Edgestofaces.png|32px]] Aristas a caras: Convierte aristas a caras. Útil para preparar geometría DXF importada para su extrusión.
 * [[Image:OpenSCAD_ExpandPlacements.png|32px]] Expandir ubicación: Expande todas las ubicaciones por debajo del árbol de operaciones
 * [[Image:OpenSCAD_ExplodeGroup.png|32px]] Explotar grupo: explota las partes primitivas fusionadas.
 * [[Image:OpenSCAD_AddOpenSCADElement.png|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.png|32px]] Mesh Boolean: Creates new mesh object by boolean operation from shapes.
 * [[Image:OpenSCAD_Hull.png|32px]] Hull: Apllies a hull to selected shapes.
 * [[Image:OpenSCAD_Minkowski.png|32px]] Minkowski: Applies a minkowski sum to selected shapes.

Preferencias

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


 * [[Image:OpenSCAD_ColorCodeShape.svg|32px]] Color Code Shape: Change the color of selected or all shapes based on their validity.
 * [[Image:OpenSCAD_ReplaceObject.svg|32px]] Replace Object: Replace an object in the feature tree.
 * [[Image:OpenSCAD_RemoveSubtree.svg|32px]] Remove Subtree: Removes the selected objects and all children that are not referenced from other objects.
 * [[Image:OpenSCAD_RefineShapeFeature.svg|32px]] Refine Shape Feature: Create Refine Shape Feature.
 * [[Image:OpenSCAD_MirrorMeshFeature.svg|32px]] Mirror Mesh Feature: Create Mirror Mesh Feature.
 * [[Image:OpenSCAD_IncreaseToleranceFeature.svg|32px]] Increase Tolerance Feature: Increases tolerance of edges/faces/vertex of selected object(s).
 * [[Image:OpenSCAD_Edgestofaces.png|32px]] Convert Edges To Faces: Convert edges to faces. Useful to prepare imported DXF geometry for extrusion.
 * [[Image:OpenSCAD_ExpandPlacements.png|32px]] Expand Placements: Expand all placements downwards the FeatureTree.
 * [[Image:OpenSCAD_ExplodeGroup.png|32px]] Explode Group: Explodes fused part primitives.
 * [[Image:OpenSCAD_AddOpenSCADElement.png|32px]] Add OpenSCAD Element: Add an OpenSCAD element by entering OpenSCAD code into the task panel.
 * [[Image:OpenSCAD_MeshBoolean.png|32px]] Mesh Boolean: Creates new mesh object by boolean operation from shapes.
 * [[Image:OpenSCAD_Hull.svg|32px]] Hull: Applies a hull to selected shapes.
 * [[Image:OpenSCAD_Minkowski.svg|32px]] Minkowski: Applies a minkowski sum to selected shapes.

Preferences

 * [[Image:Std_DlgParameter.svg|32px]] Preferences: preferences available for the OpenSCAD tools.

Limitaciones
OpenSCAD crea geometría sólida constructiva así como la importación de archivos de malla y extrusión de geometría 2D (a partir de archivos DXF). FreeCAD te permite crear CSG también con primitivas. 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.

Pistas
Cuando se importa DXF establecer la precisión 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 el menú Editar → Preferencias → Diseño de Piezas Parámetros del modelo

Tutoriales

 * Importar código OpenSCAD

Enlaces

 * Open tickets tagged "Openscad" on the FreeCAD bugtracker
 * Elementos etiquetados con "Openscad" en Thingiverse