Pit OpenSCAD para C ++
Hay un viejo refrán que dice que una imagen vale más que mil palabras. Si alguna vez ha intentado construir muebles o un juguete con una de esas instrucciones que solo contienen imágenes, es posible que no esté de acuerdo. El diseño 3D es el mismo para muchas personas. Crees que quieres dibujar las cosas gráficamente, pero una vez que comienzas a hacer cosas complejas y a realizar cambios, el modelado paramétrico es el camino a seguir. Algunas herramientas CAD le permiten hacer ambas cosas, pero muchos usuarios de impresoras 3D terminan con OpenSCAD, que es completamente paramétrico.
Si ha usado OpenSCAD, sabe que es como un lenguaje de programación simple, pero con algunas diferencias significativas con respecto a lo que usa normalmente. Es una buena apuesta que la mayoría de los lectores de La-Tecnologia puedan programar en al menos un idioma. Entonces, ¿por qué aprender algo nuevo? Un verdadero lenguaje de programación probablemente tiene características que no encontrará fácilmente en OpenSCAD que, en teoría, deberían ayudar a reutilizar y administrar proyectos complejos.
Consideré OpenJSCAD. Es más o menos OpenSCAD para JavaScript. Sin embargo, JavaScript en sí mismo es un lenguaje de programación. Claro, tiene objetos y algunas otras características, pero me siento más cómodo con C ++. Pensé en usar la biblioteca OpenCSG que usa OpenSCAD, pero eso muestra muchos detalles.
En su lugar, recurrí a un proyecto que usa código C ++ para generar una salida OpenSCAD, OOML (el lenguaje mecánico orientado a objetos). OpenSCAD realiza la creación de imágenes, la exportación y otras funciones. Desafortunadamente, el proyecto parece haberse estancado hace unos años y parece que falta la documentación del sitio web principal. Sin embargo, es muy útil y si sabe cómo encontrarlo, hay muchos documentos disponibles.
¿Por qué no OpenSCAD?
Obviamente, en OOML no hay nada que no puedas hacer en OpenSCAD. Lo que es como decir que puedes hacer todo lo que hace C ++ en lenguaje ensamblador: es cierto, pero falta un poco. Primero, OOML define muchos más objetos básicos (vea a continuación un gráfico de un documento técnico sobre OOML). Si desea, por ejemplo, RoundedTablet, simplemente cree uno y la salida final tendrá el OpenSCAD necesario.
Claro, podrías definir esas cosas con un módulo. También hay una biblioteca de piezas que incluye contornos, cojinetes y otros elementos útiles de Arduino. Pero el valor real es que puede realizar todas las funciones de C ++ para desarrollar nuevas formas.
He aquí un ejemplo sencillo. Una de las piezas disponibles es la forma de un módulo de transducción ultrasónica general. La clase proporciona un constructor que le permite establecer los diferentes atributos, como el tamaño de la placa, el tamaño de los sensores y más.
También hay una parte que es una marca específica de sensor ultrasónico (uno de Seeed Studios). A continuación, se explica cómo crear uno de estos en un programa OOML C ++:
SeeedUSSensor sensor;
Aquí lo tienes. Aquí está la definición del constructor SeeedUSSensor:
SeeedUSSensor(bool fill_drills = true) : USSensor(43,20,15,2,40,17,1,16.1/2,20-16.1/2,fill_drills) { rebuild(); }
Eso está fuera de contexto, pero no hay nada más significativo en ese objeto. Todas las imágenes están en la clase básica de USSensor. Podría crear fácilmente mi propia clase para un sensor Seeed en un soporte, por ejemplo. Simplemente obtendría una nueva clase y proporcionaría la visualización adicional (o podría usar cualquier otra técnica de C ++ como hacer que mi nuevo objeto cree el objeto sensor).
Otra característica que no es necesariamente convincente es que personalmente me gusta la sintaxis. A continuación, se explica cómo traducir un objeto en OpenSCAD:
translate([10,10,0]) cube([5,5,10]);
Aquí está el mismo código en OOML:
Component cube(Cube(5, 5, 10)); cube.translate(10,10,0);
Si desea fusionar y diferenciar algunos objetos OOML:
result=cube1+cube2-boltholes;
La documentación es como el oxígeno
Érase una vez una Wiki con documentación sobre el proyecto, pero se movió o desapareció. Sin embargo, el proyecto está creado para hacer documentación sobre Doxygen. No está completo, pero contiene más de 2000 archivos HTML (por lo que probablemente no esté en GitHub). Puede generarlo fácilmente, pero para evitarle problemas, eliminé el proyecto y agregué la documentación como un archivo ZIP que puede descargar.
La otra forma de aprender sobre OOML es leer el código fuente. Especialmente en test
un subdirectorio tiene de todo, desde un simple cubo hasta algunas formas bastante complejas. Si te sumerges en el src
En la carpeta también puedes encontrar ejemplos de cosas interesantes como el sensor ultrasónico que te mostré antes.
Usabilidad
Tener el poder de C ++ al alcance de la mano de su proyecto es bueno. Lo que no es agradable es perder el ciclo de proyecto inmediato que obtiene con OpenSCAD. Para poder cortar un número, presione F5
y repetir es bastante adictivo. Usar cosas como el pulpo (tengo demasiados amigos británicos para llamarlo un signo de libra) para visualizar un corte también es una gran pérdida.
No puede hacer mucho con los caracteres especiales a menos que lea el código de OpenSCAD y encuentre el lugar correcto para colocarlo (lo que en cierto modo frustra el propósito de usar OOML). Sin embargo, puede ayudar con una reacción un poco más inmediata con cualquier arreglo.
Solo necesita abrir el archivo OpenSCAD generado una vez. Luego, asegúrese de que "recargar automáticamente" esté marcado en el menú Proyecto. Ahora, cuando vuelva a ejecutar su programa ejecutable y escriba con OpenSCAD, el programa lo detectará, le pedirá que confirme y vuelva a cargar el archivo. No es tan conveniente, pero tampoco está mal.
Si solo está haciendo un llavero simple, probablemente esto sea superior a lo que desea. Pero si haces un diseño complejo con muchas piezas que reutilizas, con pequeñas diferencias, puede que sea justo lo que necesitas.
Algo simple
Este es un programa OOML bastante simple. Tomé en cuenta el código de dibujo de la parte que escribe el resultado.
#include <core/IndentWriter.h> #include <components/RoundedTablet.h> #include <components/Cylinder.h> #include <iostream> #include <fstream> void render(IndentWriter &writer) { Component obj(RoundedTablet(100,100,5,25,true,false,false,false)); Component cyl(Cylinder(25,10)); cyl.translate(22,22,-2); writer << obj-cyl; } int main(int argc, char **argv) { IndentWriter writer; render(writer); std::cout << writer; return 0; }
Eso significa que puede ignorar el código en main
y centrarse en la función de retorno. Construyo una RoundedTablet con solo una esquina redondeada (esto no está bien documentado, pero puede averiguarlo a partir de los nombres de los parámetros). Luego corté un cilindro de una esquina. De acuerdo, esto no sería muy difícil de hacer en OpenSCAD y realmente no muestra las funciones que podrías usar, pero quería algo simple para que veas cómo funciona.
Puede ver la imagen resultante de OpenSCAD al comienzo de esta publicación. Una vez que lo tenga en este punto, puede hacer todo lo que OpenSCAD puede hacer.
Edificio
Debido a que OOML no hace nada de la generación de gráficos real en sí, se puede compilar fácilmente. Construí una copia bajo Cygwin, pero debe ser casi igual en Linux. Necesita cmake instalado. Aquí están los pasos básicos:
cmake . make make install
Tuve que jugar un poco con las ubicaciones de DLL en Windows, pero eso no es nada nuevo. Para compilar mi ejemplo, emití el siguiente comando:
g++ -o had -L ../lib -I ../src had.cpp -lOOMLCore -lOOMLComponents -lOOMLParts && ./had >had.scad
Tenga en cuenta la parte después de la &&
realmente inicia el programa resultante y luego todavía tienes que abrir el had.scad
archivo (aunque solo una vez si activa la recarga automática).
Prueba OOML. Es de código abierto, por lo que si falta algo, puede agregarlo a su propia bifurcación del código. Si bien comenzaría con algo pequeño, el verdadero poder es cuando desea construir objetos complejos o sistemas de objetos usando C ++. Puedo imaginar una clase básica de piezas de ajedrez, por ejemplo. O extraiga datos de una base de datos para impulsar la creación de objetos.
Rodney McKay dice:
Me gustaría ver una herramienta que combinara un editor de programas en C con una hoja de cálculo para hacer cálculos y visualizar resultados. Usé Excel para generar código de parámetros para proyectos más pequeños, pero daré que sería inconveniente para el código largo.
Dan dice:
Hay una hoja de cálculo escrita en Python que también usa Python para la secuencia de comandos, así como varias interfaces de Python para el motor de openscad. No veo el sentido de un lenguaje compilado para ingresar datos en openscad, porque cada trabajo pesado lo hace el motor de todos modos.
Axel F. dice:
No, no pitón. Ya sé un poco sobre C y C ++ y los ejemplos aquí se ven bien. También me disgusta la sintaxis de Python. Asume que dev es estúpido, y creo que perdería el respeto por mí mismo si usara una lengua como esa.
addy771 dice:
Y ahora supongo que eres un tonto por dejar caer una pitón tan rápido
Ostraco dice:
La forma de construir cosas de POV Ray.
Derrick dice:
Es por eso que amo OpenSCAD cuando necesito crear una determinada clase de objetos; esto es algo más complejo de lo que quiero hacer en un programa ultra básico como Tinkercad, pero algo que se hace con precisión geométrica al sumar y restar formas básicas.
Pasé mucho tiempo con POV-Ray en mi juventud (lo más parecido a una obra de arte que he tenido), por lo que es una forma muy natural de construir esos objetos para mí.
Elliot Williams dice:
¡No hay nada de malo en eso!
dassheep dice:
El problema de usar un lenguaje pequeño, simple y específico de dominio como OpenSCAD, y no una bestia completa de Turing de propósito general como C ++ (con tentáculos estampados en un perro) es que tiene menos posibilidades de cometer errores, más fácil depuración, menos líneas de código y puede adivinar fácilmente lo que hace un fragmento de código con solo mirarlo, porque nunca hará nada que no tenga sentido en este contexto. La idea es tener menos poder, por lo que puede lastimarse menos con él.
Al Williams dice:
Sí ... pero ... si está acostumbrado a usar C ++ de todos modos, está bien tener una forma de usar la misma herramienta para hacer el trabajo. Como un voltímetro contra un osciloscopio. No haría que un niño hiciera su primer proyecto más que alcance. Pero probablemente si hago algo serio, usaré el endoscopio y no tomaré un medidor, aunque es más simple de usar.
Por supuesto, todo es OpenSCAD a continuación, de todos modos, así que no tome mi comentario serio demasiado en serio.
Lisaparratt dice:
Todo se parece un poco a un clavo ...
Las llamadas a métodos parecen una forma increíblemente inversa de expresar transformaciones geométricas, dado el orden inverso de una matriz multiplicada.
Ulo dice:
La otra razón para usar un lenguaje como OpenSCAD son los programas existentes que están escritos y abiertos desde los cuales puede crear.
Nathan dice:
No he investigado OOML, pero mi brillante reacción es: ¿por qué no se ha probado este artículo sobre BRLCAD de código abierto y probado en la industria? Tiene una GUI de C ++, TCL, rudimentaria pero utilizable (al menos para revisión), y mis últimos esfuerzos fueron envolver el script TCL dentro de una biblioteca de Python.
Al Williams dice:
Estuve expuesto a BRLCAD trabajando con el Ejército. No lo he mirado últimamente, pero ha sido un aprendizaje bastante empinado. Sin embargo, hace un gran trabajo.
Luggawatt dice:
¿De verdad ha intentado utilizar BRLCAD? Ir a él desde OpenSCAD es como ir a un ensamblaje de JavaScript. Y si vienes de otra cosa, es como intentar ser la Cámara China sin un manual de instrucciones.
Blender es muy obvio e intuitivo en comparación con la curva de aprendizaje de BRL.
Nathan dice:
¡Sí tengo! Yo uso activamente para el diseño de MEMS, donde tengo características de escala nanométrica, así como características de escala milimétrica. El rango dinámico que admite BRLCAD es una de las principales características por las que me he mantenido alejado de otras herramientas. Para facilitarme la curva de aprendizaje, escribí una biblioteca de Python para codificar todos mis modelos paramétricos ... Echa un vistazo a mi repositorio de github para ver ejemplos ... Incluso implementé porciones (sin ruta del generador de herramientas 3D, solo porciones y salida ráster, para mis máscaras litográficas) .... todo en BRLCAD. http://github.com/nmz787/python-brlcad-tcl
avalero dice:
Hola, soy uno de los creadores de OOML. Genial verlo aquí en unos años. Desafortunadamente, no pudimos seguir desarrollándonos, pero sería genial si alguien lo aceptara. Definitivamente contribuiría.
Entre los objetivos estaba no solo proyectar en c ++, sino poder utilizar potentes bibliotecas de c ++ en proyectos complejos, o utilizar bibliotecas de matriz para calcular parámetros ...
Sería genial ver que este trabajo continúe, aunque tal vez ahora elegiría una pitón.
dinamodan dice:
@avalero ¿Alguna vez usaste el complemento Sverchok para Blender3D? Es un modelador paramétrico, pero usa los elementos de la interfaz de usuario del nodo de Blender para representar su flujo. Debajo del capó, probablemente todo sea Python, porque la API de Blender3D es Python.
marca dice:
Está apuntando a https://github.com/SolidCode/SolidPython
Brian Beebe dice:
SolidPy en github es la misma idea en Python. Funcionó durante unos años cuando usé OPENSCAD.
Torsten Martinsen dice:
He estado codificando C ++ profesionalmente durante 20 años, pero uso SolidPython con OpenSCAD. De hecho, funciona muy bien.
hephaisto dice:
¡Gracias! Yo mismo escribí un script de Python que hace esencialmente lo mismo (por supuesto, solo que se adapta mucho más personalmente). ¡Definitivamente estaré viendo SolidPy!
Gravis dice:
La documentación se parece al oxígeno, pero Doxygen no se parece a la documentación. -_-
Matthew Tippett dice:
Openjscad acaba de recibir un código que lo hace adecuado para ejecutarse en node.js, por lo que termina en una situación similar.
Brendan Sleight dice:
Por qué no: https://github.com/SolidCode/SolidPython
OpenSCAD con las ventajas de Python
Nathan dice:
Porque el núcleo de openSCAD (openCasCade) falla y no tiene buenas primeras pruebas.
neon22 dice:
no. No es así: algunos pidieron integrar openCASCADE en 2011, pero no.
Utiliza CGAL, que hace el minkowski y algunos otros trucos booleanos. Con el tiempo, se está reemplazando lentamente.Nathan dice:
Lo siento, atribuí mal los choques y la inestabilidad ...
fho dice:
Conexión: http://www.implicitcad.org/
Lo mismo basado en Haskell. Fue presentado en HaD antes del iirc.
Nathan dice:
Todavía no funciona para modelos complejos con un gran rango dinámico ... Lo sé, porque los desarrolladores utilizan un modelo que escribí para implícitacad como caso de prueba.
fho dice:
Realmente ... De hecho, creo que ya no está activo. Lo cual es triste porque Haskell es un gran lenguaje para insertar lenguajes específicos de dominio.
Sebastiano dice:
Siendo “principalmente software”, mi trayectoria personal en CAD puede ser de interés para otras personas.
Estas son las etapas por las que pasé:
- Paso 1: No pude hacer nada porque cada vez que probaba un programa CAD, o se estrellaba bajo mis dedos (FreeCAD) o me explotaba la cabeza (Rhino, Fusion, algunos otros). También soy una persona de post-mouse y de un botón, lo que complica las cosas.
- Paso 2: descubrí OpenSCAD y lo usé felizmente hasta que quise hacer cosas con archivos. Ahora podría proyectar cosas, pero siempre se ven como cosas de OpenSCAD. (Sí, hay una biblioteca para archivos si puede esperar unas horas, o días en mi caso, para devolver las cosas y estropear su código fuente irreconocible ...)
- Etapa 3: Aprendí cómo los ingenieros mecánicos comunican los proyectos a sus colegas en el taller de máquinas. Para esto tomé algunas lecciones sobre lápiz y papel, literalmente, de mi ingeniero mecánico de formación. (Ella también es mi esposa). Un sello distintivo del diseño mecánico es la comprensión adecuada y la comunicación de las tolerancias.
- Paso 4: Compró una licencia de QCAD, un programa CAD 2D serio y bien diseñado. Mucho mejorado en el método de lápiz y papel gracias a la segunda reparación más correcta. (Entiendo cómo alguien puede dibujar el HMS Titanic en 2D, pero ¿cómo lo hicieron en papel?) ¿Podrías producir dibujos 2D aceptables con los que el taller mecánico pueda trabajar?
- Paso 5: Descubra Onshape.com, un programa profesional de resolución de problemas CAD en 3D que se ejecuta en los servidores de Onshape y en su navegador. Modelo de marketing Freemium. Seguí algunos tutoriales y dibujé algunas cosas. Ahora podía crear auténticos proyectos 3D de piezas y decorados y extraer dibujos 2D de estos, que es otro proceso creativo y no una operación matemática, como asumí antes de la 3ª etapa.
- Paso 6: Escribí algunos programas en el lenguaje de extensión Onshape ("FeatureScript"). Esto me permitió definir geometría paramétrica compleja por código, y las funciones son visibles en la GUI como cualquier otra operación. Esto me llenó hasta el diseño de artefactos 3D escribiendo el código fuente, pero no necesito hacerlo tan a menudo como antes, porque el CAD 3D ha perdido su amenaza ... (¡Y muchas gracias a N. por eso!)Internet dice:
- Paso 7: Se decepciona terriblemente cuando Onshape.com cambia su modelo / es pirateado / deshabilitado / cierra el negocio / decide que no le agradas / cambia sus tarifas / tiene un error / no puede conectarse a usted debido a su conexión a Internet está abajo / un montón de otros números posibles.
dassheep dice:
- Etapa 8: Escriba su propio programa CAD.
Internet dice:
- Paso 9: grupos de apoyo y empresas que no le obliguen a utilizarlos como proveedores exclusivos de la nube.
pelrun dice:
No veo dónde te obligan a usar su producto. Si desea utilizar SolidWorks en su lugar, tendrá más potencia, solo asegúrese de haber gastado todo ese dinero extra en hardware para ejecutarlo.
Los servicios en la nube tienen sus ventajas y desventajas; si ignora los productos solo porque están "en la nube", entonces se está perdiendo opciones que en realidad se adaptan perfectamente a sus casos de uso.
Carsten Arnholm dice:
Sí, AngelCAD https://arnholm.github.io/angelcad-docs/
Sebastiano dice:
General "/" - en particular, Onshape ha sido y es una herramienta de aprendizaje muy valiosa para mí. Me permitió pasar del mundo de OpenSCAD al mundo del CAD 3D profesional para la ingeniería mecánica. Por supuesto, esto no me convierte en un experto en diseño mecánico, pero tuve una idea de "exactamente lo que hacen" e hice algunas cosas yo mismo. Comprar una licencia (no para estudiantes) de SolidWorks, Creo o Solid Edge para este propósito limitado superó el presupuesto, y Fusion 360 no fue suficiente para mí.
Nate dice:
Entonces ... ¿nunca ha probado Inventor o Solidworks?
Lisaparratt dice:
Es un poco decepcionante que solo use OpenSCAD y el resto de las herramientas habituales en la red trasera. Sería mucho más interesante ver algo que funcione con Signed Remote Functions y generar el gcode directamente a partir de él, evitando el pulido triangular. La otra ventaja es que cosas como la dificultad de subprocesos en OpenSCAD se volverían triviales.
yo dice:
Me di cuenta de que hasta ahora ni el artículo ni nadie más ha mencionado gcode, impresoras 3d, máquinas cnc o cualquier otra cosa relacionada con gcode.
¿Los modelos OpenSCAD están acostumbrados a algo más? Quizás obras de arte electrónicas, piezas de videojuegos, etc. Si es así, quizás tu respuesta. Siempre puede obtener código g con OpenSCAD.
Lisaparratt dice:
El formato de salida principal de OpenSCAD es STL, que es casi un montón de triángulos, y es un formato bastante específicamente orientado a 3D.
Mi problema es, sin embargo, que cuando especificas tu modelo en términos de geometría de curva sintética y lo realizas como pilas de plásticos curvos, parece un poco contradictorio pasar por ambos usando triángulos. También introduce facetas desagradables, que a su vez conduce a la lentitud punitiva de openSCAD cuando se eleva el parámetro facet-by-arc a niveles agradables.
Al Williams dice:
De hecho, utilizo OpenSCAD a veces para producir proyecciones 2D para DXF, que utilicé con malos propósitos no relacionados con la impresión 3D.
fossel dice:
SolidPython es mi favorito;)
https://youtu.be/G3_wUxaHBM8Aleksei Prokopov dice:
Prefiero .NET / C #
Incluso hice algunos modelos experimentales con él.
darronb dice:
Bueno, creo que entendiste mal el concepto de "CAD paramétrico". Este video parece un vértice OpenGL anticuado y un conducto de imágenes faciales. Incluso cosas como definir un cubo por ancho, alto, profundidad no son realmente CAD paramétricas por sí mismas. La palabra paramétrico en CAD Paramétrico es en el sentido de "ecuaciones paramétricas". El poder del CAD paramétrico proviene en parte de cosas como las dimensiones, que son límites que ayudan al sistema CAD a resolver ecuaciones paramétricas para determinar dónde están todos los vértices. Si no tiene un solucionador de ecuaciones paramétricas y probablemente una plataforma matemática precisa arbitraria, no es una verdadera plataforma CAD paramétrica, solo algún otro motor CAD o de imágenes más simple.
Aleksei Prokopov dice:
en video es solo una demostración mínima factible.
Y sé lo que es un kad paramétrico, y este es un código C completamente funcional, por lo que puede usar la energía de .NET como Math o cargar JSON y poner el resultado como dimensión.
Redhatter (VK4MSL) dice:
Hay un viejo refrán que dice que una imagen vale más que mil palabras. Si alguna vez ha intentado construir muebles o un juguete con una de esas instrucciones que solo contienen imágenes, puede no estará de acuerdo.
Oh, valen 1000 palabras, pero no especifican OMS 1000. Ahí radica tu problema, cada persona elegirá diferentes 1000 palabras para describir esa imagen, la mayoría de las cuales se superponen, pero las diferencias pueden ser significativas y decisivas en el caso de las instrucciones visuales.
Al Williams dice:
Bueno, una imagen vale 1000 palabras. 1200 canadienses.
neon22 dice:
Si Canadian se implementó en Python, podría reducirlo a 100 palabras.
CJB dice:
Últimamente, he estado trabajando en un proyecto que utiliza el marco XText de Eclipse para crear un IDE completo para OpenScad. XText usa antlr bajo el capó, por lo que el valor del proyecto es usar un analizador para el lenguaje OpenScad. Ya es algo así (eSCAD de Patrick Lie - http://www.patricklie.com/projects/escad/), pero parece el esqueleto de un proyecto XText real.
Dicha herramienta podría usarse de manera muy similar a OOML, pero en Java, porque con un analizador ahora puede importar código openSCAD arbitrario y, en teoría, puede rehacerlo o generar el suyo propio.
¿Alguien está interesado en esto? No está claro si continuaré desarrollándolo, pero si hay interés, consideraría abrirlo.
Traumflug dice:
¿Algo como OpenSCAD para proyectos complejos? Una persona que dice eso aparentemente nunca hizo formas realmente complejas. Tan pronto como las superficies de forma libre entren en escena: ¡buena suerte! Modificación de una parte del elenco con cientos de costillas y todo filmado: ¡buena suerte también!
darren dice:
Modificar una pieza con cientos de nervaduras / filetes sería una tarea sencilla, suponiendo que haya escrito un código simple y extensible.
Las superficies sin forma serían un truco más difícil ... a menos que pueda redefinir esas superficies de forma libre como funciones explícitas, entonces estará bien. Una vez más, una mejor programación es la clave.
Morgulbrut dice:
Problema aquí. En este momento no hay, y me refiero a NO, un programa de código abierto que esté incluso en la línea de partida cuando se trata de competir con cualquier CAD profesional, ya sea Inventor, CATIA o SolidWork, desafortunadamente. Quizás una de las razones por las que cuestan tanto es que se necesita mucha mano de obra para desarrollarse.
Inventor es como la mayoría de las herramientas automatizadas de hoy, de uso gratuito para fines no comerciales. No comercial son ingresos inferiores a $ 100,000 con esta herramienta por año, afaik.
Dassault proporciona una licencia de SolidWork con Fablab. Así que crea tu propio Fablab;).
Por cierto: como también fabrican armas, no veo ningún problema ético en programas de "robo", pero eso es lo que me importa y no te recomiendo que lo hagas;).darren dice:
He escuchado esta queja antes, pero no he visto una lista de características / funciones que un paquete necesita para estar preparado profesionalmente. ¿Qué características específicas que faltan son críticas para usted?
roberto dice:
¡No puedo esperar para descargar proyectos de otra persona y tener que realizar c ++ arbitrario en mi computadora!
Elliot Williams dice:
Felicitaciones de La-Tecnologia al primer virus modelo 3D.
Jeff dice:
Me quedaré con un inventor de Autodesk, la facilidad de uso y las habilidades son mucho mejores: /
Luggawatt dice:
También hay openjscad, blockscad, los principales scripts onshape y todo el Python del mundo con FreeCAD.
idea genial dice:
irit http://www.cs.technion.ac.il/~irit/
existe para siempre y es increíblemente rico y poderoso. también ahora tiene un intérprete de Python.Bo dice:
Hola al
Estoy tratando de que su ejemplo de ooml se ejecute en Eclipse en Linux Mint, pero aparece el siguiente mensaje de error, que no puedo interpretar.
¿Puede usted o alguno de sus seguidores darme un consejo sobre lo que está mal y qué hacer al respecto?
He estado bloqueado durante unos días.Gracias de antemano Bo
10:39:44 **** Incrementar la construcción de la configuración de depuración para el proyecto AOOMLPathFinder_030918_1005 ****
hacer todo
Archivo de construcción: ../src/components/Cube.cpp
Llamando: compilador GCC C ++
g ++ -O0 -g3 -Wall -c -fmessage-length = 0 -std = c ++ 17 -MMD -MP -MF ”src / components / Cube.d” -MT ”src / components / Cube.d” -o "Src / components / Cube.o" "../src/components/Cube.cpp"
En un archivo incluido por ../src/components/Cube.cpp:9:0:
/home/bo/ooml2.0/ooml2.0/src/components/Cube.h:44:33: error fatal: core / AbstractObject.h: No existe tal archivo o directorio
la compilación ha terminado.
src / components / subdir.mk: 18: la receta para el destino 'src / components / Cube.o' falló
hacer: *** [src/components/Cube.o] Error 110:39:44 Construcción terminada (duró 72 ms)
bluelightning32 dice:
Ya aprendí openjscad porque el lenguaje de programación openscad es asombroso. Desafortunadamente, tuve que salir de openjscad debido a errores redondos en la función de intersección que no solucionarán.
Me interesaría más ejemplos de ooml. Desafortunadamente, no veo mucha actividad en el proyecto y la página de github ha desactivado el rastreador de problemas. Así que no sé si otras personas tienen problemas con eso.
Hice algunos ejemplos sobre cómo generar archivos stl con C ++ y vtk. El único problema que he tenido hasta ahora es que vtkbool solo se unirá si los objetos se cruzan.
https://github.com/bluelightning32/vtk_print_examples
Subrahmanya Chakravarthi Oruganti dice:
Hola
¿Puedo realizar operaciones CSG con esta biblioteca?