FreeCAD-Doc/localwiki/Assembly_project-es.html
2018-07-19 18:47:02 -05:00

178 lines
21 KiB
HTML

<html><head><title>Assembly project/es</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><link type='text/css' href='wiki.css' rel='stylesheet'></head><body><h1>Assembly project/es</h1></div>
<div id="mw-content-text" lang="es" dir="ltr" class="mw-content-ltr"><hr/><div class="mw-parser-output"><p>Aquí está la planificación del proyecto para el módulo de <b>Ensamblaje</b> como parte del <a href="https://www.freecadweb.org/wiki/index.php?title=Development_roadmap/es" title="Development roadmap/es">Mapa de desarrollo</a>
</p>
<div id="toc" class="toc"><div class="toctitle"><h2>Contents</h2></div>
<ul>
<li class="toclevel-1 tocsection-1"><a href="#Prop.C3.B3sito_y_principios"><span class="tocnumber">1</span> <span class="toctext">Propósito y principios</span></a></li>
<li class="toclevel-1 tocsection-2"><a href="#Resultado"><span class="tocnumber">2</span> <span class="toctext">Resultado</span></a></li>
<li class="toclevel-1 tocsection-3"><a href="#Tormenta_de_ideas"><span class="tocnumber">3</span> <span class="toctext">Tormenta de ideas</span></a>
<ul>
<li class="toclevel-2 tocsection-4"><a href="#Modelo_m.C3.BAltiple"><span class="tocnumber">3.1</span> <span class="toctext">Modelo múltiple</span></a></li>
<li class="toclevel-2 tocsection-5"><a href="#Gestor_de_proyecto"><span class="tocnumber">3.2</span> <span class="toctext">Gestor de proyecto</span></a></li>
<li class="toclevel-2 tocsection-6"><a href="#Derechos_de_autor"><span class="tocnumber">3.3</span> <span class="toctext">Derechos de autor</span></a></li>
<li class="toclevel-2 tocsection-7"><a href="#ISO_10303"><span class="tocnumber">3.4</span> <span class="toctext">ISO 10303</span></a></li>
<li class="toclevel-2 tocsection-8"><a href="#Restricciones_de_ensamblaje"><span class="tocnumber">3.5</span> <span class="toctext">Restricciones de ensamblaje</span></a></li>
<li class="toclevel-2 tocsection-9"><a href="#Cinem.C3.A1ticas"><span class="tocnumber">3.6</span> <span class="toctext">Cinemáticas</span></a></li>
<li class="toclevel-2 tocsection-10"><a href="#Control_de_revisiones"><span class="tocnumber">3.7</span> <span class="toctext">Control de revisiones</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-11"><a href="#Organizaci.C3.B3n"><span class="tocnumber">4</span> <span class="toctext">Organización</span></a>
<ul>
<li class="toclevel-2 tocsection-12"><a href="#Infraestructura"><span class="tocnumber">4.1</span> <span class="toctext">Infraestructura</span></a>
<ul>
<li class="toclevel-3 tocsection-13"><a href="#Modelos_m.C3.BAltiples"><span class="tocnumber">4.1.1</span> <span class="toctext">Modelos múltiples</span></a></li>
<li class="toclevel-3 tocsection-14"><a href="#Part-Trees"><span class="tocnumber">4.1.2</span> <span class="toctext">Part-Trees</span></a></li>
<li class="toclevel-3 tocsection-15"><a href="#Interfaces_unificados_de_Arrastrar.2FSoltar.2FCopiar.2FPegar"><span class="tocnumber">4.1.3</span> <span class="toctext">Interfaces unificados de Arrastrar/Soltar/Copiar/Pegar</span></a></li>
<li class="toclevel-3 tocsection-16"><a href="#Recursos_externos"><span class="tocnumber">4.1.4</span> <span class="toctext">Recursos externos</span></a></li>
</ul>
</li>
<li class="toclevel-2 tocsection-17"><a href="#Material"><span class="tocnumber">4.2</span> <span class="toctext">Material</span></a></li>
<li class="toclevel-2 tocsection-18"><a href="#Modelo_de_objetos"><span class="tocnumber">4.3</span> <span class="toctext">Modelo de objetos</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-19"><a href="#STEP_check_loop"><span class="tocnumber">5</span> <span class="toctext">STEP check loop</span></a>
<ul>
<li class="toclevel-2 tocsection-20"><a href="#Solucionador_de_restricciones_de_ensamblaje"><span class="tocnumber">5.1</span> <span class="toctext">Solucionador de restricciones de ensamblaje</span></a></li>
<li class="toclevel-2 tocsection-21"><a href="#Interfaz_de_simulaci.C3.B3n_f.C3.ADsica"><span class="tocnumber">5.2</span> <span class="toctext">Interfaz de simulación física</span></a></li>
</ul>
</li>
<li class="toclevel-1 tocsection-22"><a href="#Pr.C3.B3ximas_acciones"><span class="tocnumber">6</span> <span class="toctext">Próximas acciones</span></a></li>
<li class="toclevel-1 tocsection-23"><a href="#Tutorial"><span class="tocnumber">7</span> <span class="toctext">Tutorial</span></a></li>
</ul>
</div>
<h2><span class="mw-headline" id="Prop.C3.B3sito_y_principios">Propósito y principios</span></h2>
<p>Este es un proyecto de desarrollo de software cuya intención es implementar capacidades para la creación de ensamblajes y productos. Trata de la implementación de algunas <b>características principales</b> en los módulos de CAD de FeeCAD, <b>Piezas y Ensamblaje</b>.
</p><p>Los pasos del desarrollo se planifican aquí y se siguen en el sistema de gestión de incidencias para conseguir un histórico de cambios bien definido:
<a rel="nofollow" class="external text" href="http://apps.sourceforge.net/mantisbt/free-cad/my_view_page.php">Sistema de gestión de incidencias</a>
</p>
<h2><span class="mw-headline" id="Resultado">Resultado</span></h2>
<p>La intención del proyecto es permitir a FreeCAD lograr una tarea de diseño como está:
</p><p><a href="https://www.freecadweb.org/wiki/index.php?title=File:Gripper.jpg" class="image"><img alt="Gripper.jpg" src="400px-Gripper.jpg" width="400" height="355" srcset="/wiki/images/thumb/7/78/Gripper.jpg/600px-Gripper.jpg 1.5x, /wiki/images/thumb/7/78/Gripper.jpg/800px-Gripper.jpg 2x" /></a>
</p><p>Esto se logrará utilizando el <b>Ensamblaje</b> para poner todos los diferentes tipos de piezas juntas con restricciones y permanecer lo más cerca que se pueda de la especificación ISO 10303 para permitir un intercambio de modelos sencillo.
</p><p>Otro objetivo es utilizar <a rel="nofollow" class="external text" href="http://en.wikipedia.org/wiki/Open_Dynamics_Engine">ODE</a> para la cinemática.
</p>
<h2><span class="mw-headline" id="Tormenta_de_ideas">Tormenta de ideas</span></h2>
<h3><span class="mw-headline" id="Modelo_m.C3.BAltiple">Modelo múltiple</span></h3>
<div class="floatright"><a href="https://www.freecadweb.org/wiki/index.php?title=File:MultiModel.png" class="image"><img alt="MultiModel.png" src="600px-MultiModel.png" width="600" height="341" srcset="/wiki/images/thumb/7/70/MultiModel.png/900px-MultiModel.png 1.5x, /wiki/images/thumb/7/70/MultiModel.png/1200px-MultiModel.png 2x" /></a></div>
<p>Una característica importante para los diseños del mundo real es la habilidad de dividir un diseño en partes más manejables. Es imposible trabajar en todos los aspectos de un diseño al mismo tiempo o por separado. Esto es cierto para la geometría y también para las tareas de ingeniería como CAE o CAM. Por eso FreeCAD necesita la posibilidad de dividir los modelos. Esto abre algunas posibilidades:
</p>
<ul><li> <b>Carga retardada</b> - Sólo se necesitan recursos como los gráficos y la memoria principal para la pieza en la que se está trabajando.</li>
<li> <a rel="nofollow" class="external text" href="http://en.wikipedia.org/wiki/Concurrent_engineering"><b>Ingeniería concurrente</b></a> - Permite a varias personas trabajar en el mismo diseño</li>
<li> <a rel="nofollow" class="external text" href="http://es.wikipedia.org/wiki/Control_de_versiones"><b>Control de versiones</b></a> - Mejorar el control sobre diversos aspectos del diseño</li>
<li> y muchas otras....</li></ul>
<p>Un diseño de modelo múltiple podría parecerse a este:
</p>
<h3><span class="mw-headline" id="Gestor_de_proyecto">Gestor de proyecto</span></h3>
<p>Modelo múltiple significa un montón de archivos que pertenecen a un proyecto, normalmente bajo un directorio común.
Un archivo de proyecto y un explorador de proyecto (project browser) pueden ayudar a organizar los archivos. También pueden guardar información adicional sobre el proyecto o una website del proyecto.
</p><p>1. Dos modos, el modo "Simple" y el modo "Proyecto". "Simple" significa que sólo hay un documento, y todos los ensamblajes y piezas van en ese documento. Si se crea o abre un Proyecto, FreeCAD está en modo "Proyecto".
</p><p>2. Proyectos. La posición del archivo FCPrj en el disco define un directorio raíz. Todos los archivos contenidos en este directorio están definidos con rutas relativas al directorio raíz. Una vista adicional a la izquierda contendrá el ProjectExplorer que mostrará el árbol de directorios con los archivos manejados.
</p><p>Este directorio raíz se utiliza también como raíz para un entorno de pruebas SVN, que permitirá después facilitar el compartir y el control de versiones.
</p><p>Las referencias externas (a un directorio fuera del directorio raíz, un servidor compartido o un recurso web) se manejarán y mostrarán de forma separada en el ProjectExplorer (un pseudo directorio para cada archivo de servidor o servidor web). Esto hace posible conseguir un rápido resumen sobre las referencias externas y redefinir sus rutas.
</p>
<h3><span class="mw-headline" id="Derechos_de_autor">Derechos de autor</span></h3>
<p>Ahora los derechos de autor de los modelos de 3D son un campo interesante. Los modelos 3D realmente tienen derechos de autor. Los derechos de autor son del creador del modelo. Sólo es posible proteger la forma, que es representada por el modelo, por una patente o una patente de diseño (EE.UU). Pero las patentes cubren sólo la creación de una pieza física para ganar dinero. Como ejemplo el <a rel="nofollow" class="external text" href="http://patft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&amp;Sect2=HITOFF&amp;d=PALL&amp;p=1&amp;u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&amp;r=1&amp;f=G&amp;l=50&amp;s1=D464,651.PN.&amp;OS=PN/D464,651&amp;RS=PN/D464,651">Patente del diseño del ratón de Microsoft</a>.
</p><p>De modo que tenemos que recordar al creador (titular de los derechos de autor) y cualquier clase de licencia para cada modelo/producto/archivo de un diseño. Para la licencia yo utilizaría las licencias de tipo de CC. <a rel="nofollow" class="external free" href="http://creativecommons.org/">http://creativecommons.org/</a>
</p><p>Claves abreviadas para licencias CC:
</p>
<ul><li> BY = Sólo atribución</li>
<li> BY-ND = Atribución - No derivativos</li>
<li> BY-NC-ND = Atribución - No comercial - No derivativos</li>
<li> BY-NC = Atribución - No comercial</li>
<li> BY-NC-SA = Atribución - No comercial - como Share</li>
<li> BY-SA = Atribución - Como Share</li>
<li> PD = Dedicado o marcado para ser de dominio público por una vía de nuestras herramientas de dominio público, o otro treabajo de dominio público; adaptaciones de trabajo en el dominio público pueden crearse y licenciarse por el creador bajo cualquier término de licencia deseado </li></ul>
<p>Añadir un enlace URL al documento de licencia completo (en caso de licencias de clientes)
</p>
<h3><span class="mw-headline" id="ISO_10303">ISO 10303</span></h3>
<p>La ISO 10303 (STEP) es muy importante en este campo. Es la única definición de estructuras de producto que conozco que está bien estandarizada y ampliamente discutida y reconocida.
</p>
<div class="floatright"><a href="https://www.freecadweb.org/wiki/index.php?title=File:Product_structure_modeling_Process-Data_diagram.gif" class="image"><img alt="Product structure modeling Process-Data diagram.gif" src="500px-Product_structure_modeling_Process-Data_diagram.gif" width="500" height="556" srcset="/wiki/images/thumb/f/f7/Product_structure_modeling_Process-Data_diagram.gif/750px-Product_structure_modeling_Process-Data_diagram.gif 1.5x, /wiki/images/f/f7/Product_structure_modeling_Process-Data_diagram.gif 2x" /></a></div>
<p>Aquí algunos vínculos con información:
</p>
<ul><li> <a rel="nofollow" class="external text" href="http://es.wikipedia.org/wiki/ISO_10303">ISO 10303 en Wikipedia</a></li>
<li> <a rel="nofollow" class="external text" href="http://www.wikistep.org/index.php/Main_Page">WikiStep.org</a> con un montón de información básica pero principalmente centrada en STEP-NC</li>
<li> La <a rel="nofollow" class="external text" href="http://www.wikistep.org/index.php/Product_Basics">Estructura de producto</a> en STEP</li>
<li> Algunos <a rel="nofollow" class="external text" href="http://www.wikistep.org/index.php/STEP_Tutorial">ejemplos</a> sobre STEP</li>
<li> <a rel="nofollow" class="external text" href="http://en.wikipedia.org/wiki/ISO_10303-11">ISO 10303-11</a> sobre el lenguaje de modelado (EXPRESS)</li>
<li> <a rel="nofollow" class="external text" href="http://en.wikipedia.org/wiki/Product_Structure_Modeling">Un artículo de Wikipedia</a> sobre modelado de producto</li>
<li> <a rel="nofollow" class="external text" href="http://www.steptools.com/support/stdev_docs/express/step_irs/index.html#part41">Visión general de la Parte 41 -- Fundamentos de Descripción de producto y soporte</a></li>
<li> <a rel="nofollow" class="external text" href="http://www.steptools.com/support/stdev_docs/express/step_irs/index.html#part44">Visión general de la Parte 44 (edición 2) -- Configuración de la estructura de producto</a></li>
<li> <a rel="nofollow" class="external text" href="http://www.steptools.com/support/stdev_docs/express/ap214/index.html">Ejemplos de pequeños archivos de AP 214</a></li></ul>
<h3><span class="mw-headline" id="Restricciones_de_ensamblaje">Restricciones de ensamblaje</span></h3>
<p>Una función importante en la construcción de modelos grandes y productos son las restricciones de ensamblaje, que formulan ciertas reglas sobre como se ensamblan las piezas en un producto. Las restricciones más relevantes son del tipo: Fijo, Cara a cara, Ángulo, Equidistancia y algún tipo de patrón de repetición (para producir múltiples instancias). Estas restricciones necesitan un solucionador especializado que las actualice cuando se produzcan cambios en las piezas.
Este solucionador es fundamentalmente diferente al solucionador de croquis. Creo que tenemos que ir hacia un acercamiento basado en gráficos en este...
</p>
<h3><span class="mw-headline" id="Cinem.C3.A1ticas">Cinemáticas</span></h3>
<p>Un paso más sería utilizar <a rel="nofollow" class="external text" href="http://ode.org/">ODE</a> para poner las restricciones de piezas y ensamblajes juntas para hacer una simulación de la cinemática de las máquinas. Eso permitiría comprobar si existen colisiones y explorar las condiciones de un sistema mecánico.
</p>
<h3><span class="mw-headline" id="Control_de_revisiones">Control de revisiones</span></h3>
<p>Un importante punto es el control de versión y desarrollo distribuido. Con diseño multi modelo podremos dividir los diseños en piezas menores y podemos distribuir el trabajo entre un equipo. A un desarrollador de software "distribuido" y "Versión" le sonará familiar, así que por que no utilizar un <a rel="nofollow" class="external text" href="http://en.wikipedia.org/wiki/Distributed_Version_Control_System">DVCS</a>.
Una buena comparación está <a rel="nofollow" class="external text" href="http://en.wikipedia.org/wiki/Comparison_of_revision_control_software#Technical_information">aquí</a>.
</p><p>Ya que manejamos datos grandes, y datos que no pueden diferenciarse fácilmente, estamos limitados a aquellos que utilizan el modelo de captura persistente.
Cualquier sistema de almacenamiento diferente nos dará problemas con los datos (probado personalmente con archivos de Mercurial y Catia).
Después de separar los comerciales y no-libres, básicamente sólo quedan <a rel="nofollow" class="external text" href="http://en.wikipedia.org/wiki/Git_%28software%29">Git</a> y <a rel="nofollow" class="external text" href="http://subversion.apache.org/">SVN</a> .
</p><p>Utilizando Git para la tarea nos deja a nosotros con dos grandes fronteras:
</p>
<ul><li> Git es muy complicado; El ramificado, el fusionado y etiquetado a lo largo de una ruta de desarrollo no lineal deja sólo el fusionado con repositorios remotos (push, pull) traerá un montón de complejidad en al asunto. Ocultarlo del usuario será un complicado. </li>
<li> Git permite manejadores de Fusión y Diferencia para ciertos tipos de archivos; Necesitamos uno para .fcstd. Este manejador tiene que examinar dos documentos de FreeCAD y mostrar y fusionar diferencias en los objetos, operaciones y parámetros. Tampoco es fácil</li></ul>
<p>Pero utilizando Git podrían abrirse un montón de posibilidades incluso podríamos soñar con un sistema PLM de primera clase...
</p>
<h2><span class="mw-headline" id="Organizaci.C3.B3n">Organización</span></h2>
<p>Aquí están algunas tareas de desarrollo necesarias para un diseño decente de Ensamblaje/Productos:
</p>
<h3><span class="mw-headline" id="Infraestructura">Infraestructura</span></h3>
<p>El ensamblaje demandará algunos cambios en e sistema base y capa de infraestructura de FreeCAD.
</p>
<h4><span class="mw-headline" id="Modelos_m.C3.BAltiples">Modelos múltiples</span></h4>
<p>Los modelos múltiples estaban en mente desde el principio del diseño de FreeCAD. Por tanto tenemos una interfaz de múltiples documentos y podemos cargar ilimitados documentos. Pero necesitamos promocionar especialmente el visor 3D para manejar el mostrar más de un documento en su vista (Part-Trees).
</p>
<h4><span class="mw-headline" id="Part-Trees">Part-Trees</span></h4>
<p>La combinación de piezas y subensamblajes es la actividad principal durante los ensamblajes. Por ello, hay que tener herramientas adecuadas para agrupar ordenadamente las piezas en una estructura de arbol. Esas herramientas hay que implementarlas.
A diferencia de un DocumentObjectGroup el grupo de Ensamblaje tiene que manejar visibilidad y ubicación de sus hijos. Mejor hacerlo por apilado ViewProvider en cada otro. Eso necesita un tipo de ClaimChildren() interfaz para el ViewProviders.
</p>
<h4><span class="mw-headline" id="Interfaces_unificados_de_Arrastrar.2FSoltar.2FCopiar.2FPegar">Interfaces unificados de Arrastrar/Soltar/Copiar/Pegar</span></h4>
<p>El interfaz debe ser adecuado para facilitar que tanto desde ViewProvider como desde los diversos entornos se tenga un control total sobre las operaciones de Arrastrar/Soltar/Copiar/Pegar y además sea operativo tanto en la vista en árbol como en la vista 3D.
</p>
<h4><span class="mw-headline" id="Recursos_externos">Recursos externos</span></h4>
<p>Manejar enlaces (de navegadores internos o externos). Significa recursos cargando sobre (potencialmente) conexiones lentas (http).
</p>
<h3><span class="mw-headline" id="Material">Material</span></h3>
<p>La descripción del material y sus propiedades es una parte vital de un sistema CAD/CAE. Un material tiene un montón de propiedades y nombres altamente dependientes del campo en el que se utilizan. Por ejemplo, FEM y la ingeniería mecánica tienen diferentes entornos y estándares para describir el material.
</p><p>Para la descripción del material se ha creado un artículo específico: <a href="https://www.freecadweb.org/wiki/index.php?title=Material/es" title="Material/es">Material</a>
</p>
<h3><span class="mw-headline" id="Modelo_de_objetos">Modelo de objetos</span></h3>
<p>Una Clase árbol para manejar conceptos necesarios. Referencias, interfaces, enlaces de documentos, vistas, compuestos, restricciones, configuraciones, y mucho más...
</p>
<h2><span class="mw-headline" id="STEP_check_loop">STEP check loop</span></h2>
<p>Implementing a first STEP importer for more then geometry and color to check if the object model holds for a wider usage.
</p>
<h3><span class="mw-headline" id="Solucionador_de_restricciones_de_ensamblaje">Solucionador de restricciones de ensamblaje</span></h3>
<p>Definir un interfaz para un Solucionador de restricciones de ensamblaje, muy similar al interfaz del solucionador del Croquizador.
</p>
<h3><span class="mw-headline" id="Interfaz_de_simulaci.C3.B3n_f.C3.ADsica">Interfaz de simulación física</span></h3>
<p>Interfaz para permitir a un software de simulación (multi)física (externo) tomar el control sobre el posicionamiento de las Piezas en el Ensamblaje. Esto podría permitir utilizar "bullet" o "ODE" para hacer los test de cinemática y DMU.
</p>
<h2><span class="mw-headline" id="Pr.C3.B3ximas_acciones">Próximas acciones</span></h2>
<ul><li> Modelo de objetos</li>
<li> Esperar a que se libere la versión 0.12 </li></ul>
<h2><span class="mw-headline" id="Tutorial">Tutorial</span></h2>
<ul><li> <a href="https://www.freecadweb.org/wiki/index.php?title=Assembly_Basic_Tutorial/es" title="Assembly Basic Tutorial/es">Assembly Basic Tutorial</a></li></ul>
<div style="clear:both"></div>
</div>
</div>
</div><div class="printfooter">
Online version: "<a dir="ltr" href="https://www.freecadweb.org/wiki/index.php?title=Assembly_project/es&amp;oldid=122211">http://www.freecadweb.org/wiki/index.php?title=Assembly_project/es&amp;oldid=122211</a>"</div>
<div id="catlinks" class="catlinks" data-mw="interface"></div><div class="visualClear"></div>
</div>
</div>
<div id="mw-navigation">
<h2>Navigation menu</h2>
</body></html>