2 votos

Aplicación de dibujo vectorial con guión (a la Satimage Smile)

He utilizado La sonrisa de Satimage para hacer diagramas vectoriales (para ilustraciones técnicas, patrones de corte láser, etc.) a través de AppleScript aumentado con comandos de dibujo. Es como lo contrario de PaintCode que convierte los dibujos en código. (Soy matemático, no artista, así que quiero/necesito describir imágenes con fórmulas y ecuaciones).

Lamentablemente, MacOS Mojave rompió la funcionalidad de OSAX, haciendo que Smile sea completamente inutilizable. Además, la interfaz de usuario de Smile, tan rudimentaria, puede ser bastante frustrante. Es hora de buscar una alternativa.

El "código" no tiene por qué ser AppleScript. He visto un par de aplicaciones de código abierto (normalmente Qt) para editar TikZ, un lenguaje gráfico programático. Sin embargo, éstas están orientadas a ajustar el código TikZ para importarlo en documentos LaTeX y demás; yo estoy buscando algo más parecido a un editor de documentos autónomo, capaz de exportar a PDF o EPS directamente. (Pero si hay un realmente bueno editor TikZ similar al de Mac, lo consideraría).


[*] Al parecer, existe una solución de AppleScript que utiliza un una aplicación auxiliar de SatimageOSAX pero no he conseguido que funcione con Smile. Además, es sólo un parche, condenado a romperse eventualmente.

0 votos

Recomiendo echar un vistazo a Python y Matplotlib ( matpltotlib.org ) - ambos están instalados por defecto en Mojave y son muy fáciles de usar - como matemático puedes hacerlo rápidamente - puedes usarlo para gráficos 2D/3D, las imágenes soportadas son PNG/EPS/JPG/SVG, etc. Una nota sobre el formato .eps - tiene un fallo de seguridad y Apple convierte instantáneamente dichas imágenes en .pdf cuando se abren en Vista Previa.

0 votos

@Yoan: Voy a echar un vistazo. (No he usado Python antes, pero he visto el obligatorio XKCD Así que estoy convenientemente intrigado). Dicho esto, aunque no soy del todo reacio a las travesuras de la línea de comandos para instalar cosas, por algo uso un ordenador basado en GUI. :) La página de Matplotlib menciona tres distribuciones de terceros que "simplemente funcionan": Anaconda , Canopy y Estado Activo . ¿Alguna opinión sobre esto?

1 votos

Sí, Anaconda, seguro. Tiene varias aplicaciones, Spider es un IDE con editor de texto y depurador de ipython, todo lo que necesitas para hacerlo en una GUI. La versión de Python en Mohave es 2.7.10, pero Anaconda tiene la última, 3.7.0. Recomiendo instalarlo en tu ruta $HOME, es muy útil como tal, especialmente si usas Emacs (soporta Latex, Python, org-mode, etc). Python 2.7 es utilizado por Apple para mantener/instalar software en su ordenador, por lo que es conveniente no interferir con él, al menos al principio.

2voto

Steve Evans Puntos 155

MetaPost

Un lenguaje de dibujo de código abierto y completo, con abundante apoyo y documentación es MetaPost .

El sistema MetaPost (de John Hobby) implementa un lenguaje de dibujo de imágenes muy parecido al de MetaFont; la diferencia es que MetaPost produce archivos gráficos vectoriales en lugar de mapas de bits con codificación de longitud de ejecución; los formatos de salida disponibles son PostScript y SVG.

MetaPost es capaz de crear imágenes y formas complejas :

Example image created with MetaPost

beginfig(11)
    pair A, B, C;
    A:=(0,0); B:=(1cm,0); C:=(0,1cm);
    draw A--B;
    draw B--C dashed evenly;
    draw C--A dashed withdots;

endfig;

Complex image drawn with MetaPost

beginfig(117)
  u:=2cm;
  pair A, B, C, D, E;
  path p, q, r;

  A = u*up;
  p := (-.2)[ A, A rotated 72 ] -- (1.2)[ A, A rotated 72 ];
  for i=0 upto 5:
    draw p rotated 72i;
  endfor;
  B := 1/2[ A, A rotated 72 ];
  C := .8*B;

  p := B --- C .. (C rotated (2*72)){right};
  % On allonge le chemin p
  p := ( (point 0 of p) - 4mm*unitvector(direction 0 of p))
       --
       (point 0 of p)
       & p &
       (point 2 of p)
       --
       ( (point 2 of p) + 4mm*unitvector(direction 2 of p));

  E = p intersectionpoint (p rotated 72);
  q := p cutbefore fullcircle scaled -2mm shifted E;
  r := p cutafter fullcircle scaled  2mm shifted E;

  for i=0 upto 4:
    draw q rotated 72i;
    draw r rotated 72i;
    draw A rotated 72i withpen pencircle scaled 4bp;
    draw B rotated 72i withpen pencircle scaled 4bp;
    draw C rotated 72i withpen pencircle scaled 4bp;
  endfor;
endfig;

Puede instalar MetaPost como parte de BasicTex .

Sketch

Dirigido más a los diseñadores que a los ingenieros, Sketch ofrece una interfaz programable y soporte de AppleScript.

Nota al margen

Como curiosidad, Apple distribuyó en su día una aplicación de dibujo vectorial de muestra también llamada Sketch. Uno de los propósitos de Sketch era demostrar cómo incorporar AppleScript en una aplicación.

1 votos

Fascinante. ¡MetaPost ha estado ahí en la ventana emergente de "programa de composición" de TeXShop todos estos años! La perspectiva de aclimatarse a otro paradigma de scripting personalizado es un poco desagradable, pero MP parece muy adecuado para el tipo de figuras que suelo hacer (mucha simetría). Experimentaré durante un tiempo. Mientras tanto, dejaré la pregunta abierta para ver si hay más alternativas.

0 votos

Por cierto: ¿Sabes si hay una manera de conseguir que TeXShop muestre la imagen MP renderizada automáticamente? Volver al Finder para abrir el archivo .ps generado ya es tedioso... ¡y sólo he tenido que hacerlo dos veces! :) (Hmmmm ... Me pregunto si puedo configurar una acción de carpeta "carpeta vigilada" para abrir los archivos .ps recién detectados en Vista Previa).

0 votos

Supongo que un enfoque de carpeta vigilada funcionaría. Tal vez valga la pena preguntar una nueva pregunta para atraer más respuestas. Si puede compartir su intento inicial de un flujo de trabajo de la carpeta de vigilancia o script, probablemente atraerá a otras personas dispuestas a ayudar a perfeccionarlo o a solucionar cualquier problema.

1voto

Steve Evans Puntos 155

Código abierto - Diseño asistido por ordenador

Otra posibilidad para sus proyectos de corte por láser es una aplicación completa de diseño asistido por ordenador (CAD). Hay algunas opciones de código abierto (gratuitas y mantenidas por la comunidad), así como muchas opciones comerciales.

  1. LibreCAD

    LibreCAD es una aplicación CAD gratuita de código abierto para Windows, Apple y Linux. El soporte y la documentación son gratuitos gracias a nuestra amplia y dedicada comunidad de usuarios, colaboradores y desarrolladores.

  2. QCAD - CAD 2D

    QCAD es una aplicación gratuita y de código abierto para el dibujo asistido por ordenador (CAD) en dos dimensiones (2D). Con QCAD puede crear dibujos técnicos como planos de edificios, interiores, piezas mecánicas o esquemas y diagramas.

  3. FreeCAD

    FreeCAD es un modelador 3D paramétrico de código abierto hecho principalmente para diseñar objetos de la vida real de cualquier tamaño. El modelado paramétrico te permite modificar fácilmente tu diseño volviendo al historial del modelo y cambiando sus parámetros.

1voto

benwiggy Puntos 8

No olvides que el propio PostScript es un lenguaje de programación, con comandos claros para crear objetos vectoriales.

Hay muchos recursos para programar en PostScript, sobre todo en el sitio web de Adobe.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X