FreeCAD: un nuevo método de dibujo

Descargo de responsabilidad : nunca antes había trabajado con aplicaciones CAD / CAM en mi vida y, de repente, tuve que hacerlo. Los principios de trabajo de FreeCAD me han admirado tanto que requiere una publicación urgente en Habr para contarles a los demás.


Es probable que lo que está escrito en esta publicación sea trivial y aburrido para la mayoría de los usuarios activos de CAD, y esta publicación está dirigida principalmente a usuarios que no son CAD para contarles sobre el maravilloso nuevo mundo de los gráficos por computadora.


Entrada


Tenía una tarea simple: hacer un modelo 3D de mi apartamento. No solo "paredes de tamaño", sino todas las vigas, protuberancias y curvas. Intenté uno, dos, tres programas ... me desesperé (comenzó con SweetHome3D, y Blender y Inkscape terminaron). Todos estaban muy incómodos. Entre los programas que probé estaba FreeCAD, que me perdí debido a "nifig not do" y "no funciona correctamente". Después de desesperarme, fui a la segunda ronda. Esta vez, leyendo un poco más de documentación ... Y FreeCAD no solo "despegó", sino que también me abrió un nuevo mundo encantador de dibujos vectoriales precisos basados ​​en Restricciones.


Problemas de modelado


Primero, hablaré sobre el dolor que sufrí en varios editores.


Comencemos con SweetHome3D. Una interfaz condicionalmente comprensible que le permite describir la habitación como un "piso" (donde se especifican la forma y las protuberancias), alrededor del cual se hace una "pared". SweetHome3D me dio dos problemas: la búsqueda de píxeles (el tamaño se cambia mediante desplazamientos microscópicos del mouse o en el cuadro de diálogo, pero no hay forma de "presionar" la pared al piso con precisión, solo búsqueda de píxeles. El segundo problema: el modelo SweetHome3D no implica la existencia de vigas, arcos y otros elementos de la pared , que no van de arriba a abajo. Además, SH3D no sabe cómo inclinar paredes y pisos (me gustaría no tener ese problema, pero antes de que IRL pueda repararse, necesito documentarlo). Es decir, SH3D cubre 90% de lo que necesitaba entregado Tengo un dolor increíble a 5%, y lo que es imposible que el 5% restante.


Blender teóricamente te permite hacer todo, pero solo teóricamente. En la práctica, o mis habilidades no eran suficientes, o el proceso en sí es muy lento, pero después de dibujar tres ángulos y medio, me di por vencido. Demasiado lento y demasiado alboroto con la iluminación y otras cosas sin importancia. Además (hasta donde yo sé), es poco probable que Blender pueda mostrar proyecciones 2D normales con dimensiones.


Inkscape era bueno, excepto por un problema: en una línea de varias secciones (F2) es imposible establecer las dimensiones de cada sección. Podría: habría pintado todo en Inkscape.


... Pero mi publicación no trata sobre la superioridad absoluta de FreeCAD sobre Blender (realmente no puedo compararlos a ambos como principiante), sino sobre un nuevo estilo de dibujo. Primero, sobre los problemas del viejo estilo (es decir, un dibujo vectorial "regular").


Problema de caza de píxeles


Antes de pasar a las imágenes y explicar la idea de Restricciones, quiero centrarme en algunos problemas que han estado plagados de dibujos vectoriales:


  • Curvas casi unificadas. Si dos curvas casi se tocan, entonces podría pensar que se están tocando. En algún momento (al imprimir, o con más manipulaciones), la imagen se desmoronará.
    imagen


  • Líneas casi paralelas / perpendiculares. Son paralelos, pero no hasta el final.



imagen


preste atención al esquema, muestra que el rectángulo que describe dos líneas es más grande que la línea misma, es decir línea en ángulo agudo.


  • la derivada de la anterior son líneas que se unen en un ángulo de 0.001 °.


  • imprecisiones en el tamaño y grosor de las líneas. La línea tiene su propio grosor, y al editar (giros, redimensionamientos, etc.), el grosor comienza a flotar. Además, en la mayoría de los reactores vectoriales es difícil dibujar un cuadrado con un área de 100 y una línea con un espesor de 0.5 (porque la línea va 50% al área de la figura, y no tenemos 10x10 dentro, sino 9.75x9.75).


  • Mantener la alineación y la simetría es una tarea que requiere atención constante.



Los editores tienen muchas herramientas integradas para tratar tales problemas, pero estas herramientas tienen una dificultad: deben usarse de manera significativa donde surgió el problema. Y debe controlar la aparición de problemas usted mismo.


Restricciones


Fue una larga introducción. Ahora estoy hablando de restricciones o, en ruso, mantener conexiones (traducción del término de un artículo sobre grados de libertad en mecánica .


Intentemos dibujar un cuadrado con el lado 10, en función de sus propiedades fundamentales.


El cuadrado 4 tiene lados rectos.


imagen


Casi sucedió Solver nos dice que necesitamos establecer 15 enlaces de retención adicionales para que nuestra figura sea inequívoca (tiene 0 grados de libertad).


  • Los lados opuestos del cuadrado son paralelos *

imagen


Solver dice que es mejor. Comenzó a perderse 13. Preste atención a las marcas rojas: esto es una indicación de restricciones. Al principio, accidentalmente obtuvimos dos restricciones: dos líneas horizontales.


Mejoró, aunque todavía se ve un poco cuadrado. Que esta mal Ah, sí, un cuadrado es un polígono, y en el polígono los lados convergen en las esquinas a un punto. Agrega estas restricciones.


imagen


Resultó un poco inesperado, aunque el solucionador está cada vez más satisfecho. La figura indicada es un cuadrilátero ordinario en el que los lados son paralelos por pares. Un poco fuera del curso escolar, pero comprensible.


Agregar volumen ... planos a esta figura. Las caras adyacentes son perpendiculares.


imagen


Ya parece ser cierto (aunque saqué el dibujo un poco hacia arriba, porque los lados de tamaño cero se ajustan bastante al solucionador como perpendicular a la línea en la que se encuentran (en forma de punto)). Solver jura por exceso de restricciones. Estamos de acuerdo con él y eliminamos una perpendicularidad (tenemos el requisito de paralelismo por pares, la perpendicularidad para un par se deduce automáticamente de la perpendicularidad del primer par). Después de eliminar el exceso, el solucionador se queja de 4 libertades.


Prohibir cualquier otra cosa, ya que hay demasiada libertad.


Por ejemplo, supongamos que todos los lados deben ser del mismo tamaño. Es suficiente hacer esto para cualquiera de los dos lados adyacentes, y se deduce que todos los lados son iguales (¡geometría escolar!).


Después de eso, tenemos tres libertades. ¿Tres libertades más? Pero el cuadrado es el mismo ... Sí, este es el cuadrado, pero no sabemos su tamaño (0 es también el tamaño, por cierto), y su posición en el espacio.


Vamos a configurarlo: indicaremos que una de las esquinas del cuadrado se encuentra en el punto "0, 0", además establecemos el tamaño de un lado en 10 mm.


Todo, el cuadrado está completamente listo, no tiene libertades, lo que significa que no hay errores ocultos.


imagen


Este ejemplo fue un poco grotesco, pero, como espero, expresivo. Me impresionó especialmente que el solucionador no solo verifique la ambigüedad, sino que también advierta si la cifra contiene más restricciones de las necesarias.


Letras de canciones


Para mí, este método de describir una imagen es completamente nuevo e inesperado. En cierto sentido, se parece a lo que hacen los lenguajes de programación escritos con código de máquina: le agregan restricciones que le permiten establecer restricciones sobre posibles operaciones de datos en una forma matemáticamente precisa. En ese momento, cuando hay muchas restricciones, obtenemos una solución inequívoca que definitivamente está ahí y definitivamente no es ambigua. Y exactamente el correcto si la entrada fue correcta. Y no "accidentalmente golpeó el mouse" o "la mano tembló".

Source: https://habr.com/ru/post/es422019/


All Articles