viernes, 24 de febrero de 2023

Repositorio de modelos de TENTE 3D integrado con otras herramientas online

TENTE 3D es el conjunto de herramientas que nos permiten hacer nuestros propios modelos de TENTE en nuestro ordenador de manera completamente gratuita gracias al formato abierto LDraw y a la librería de piezas de TENTE que impulsaron varios aficionados a este juego de construcción, sobre todo Jasolo, que también gestiona la información sobre despieces.

Desde hace unos años tengo disponible una colección de miles de modelos ya creados para disfrutar con las herramientas LDraw, como por ejemplo el visor LDView y el editor MLCad, que incluye tanto modelos customs como modelos oficiales.


Estos últimos meses hemos normalizado la carpeta de modelos oficiales para coordinarnos con el visor/editor online TNT y la base de datos refstente, creadas por Yombo y Abeldb respectivamente y así conseguir que puedan estar integradas todas las patas del TENTE 3D.

Todos estos modelos están en la carpeta oficiales, dentro de la cual hay una subcarpeta por referencia que incluye todos los modelos disponibles hasta este momento.

Respecto a la carpeta de customs, la he renombrado a inventados y e incluido todos los modelos míos dentro de la subcarpeta cpcbegin, con la idea de que si alguien quiere que sus modelos se incluyan en su propia subcarpeta nos de su permiso y nos facilite los archivos ldraw a incluir, lo más sencillo es que los añada en la sección de "issues" del repositorio o en el grupo de Telegram de TENTE 3D.

También puedes ayudar haciendo los modelos oficiales y alternativos de las referencias que aún no tienen todos los archivos LDraw.



miércoles, 15 de febrero de 2023

8bitdiskmenu con soporte para ratón en Amstrad CPC

8bitdiskmenu es el menú que hice en Locomotive Basic para hacer menús del contenido de mis disquetes de Amstrad CPC en mi juventud y que después de limpiar un poco el código puse disponible para la comunidad cepecera en GitlLab.

Recientemente los chicos del podcast de Cepeceros pusieron una compilación de juegos clásicos para CPC que se podían jugar con Multiplay, el adaptador de ratones de Amiga, emulado en la última versión de Retro Virtual Machine, la 2.1.

Para mi comodidad le añadí el archivo DISC.BAS de 8bitdiskmenu, pero pensé que ya que ellos habían adaptado los juegos para uso con ratón también debería estar adaptado el menú, aunque fuera poder simular los cursores arriba y abajo para seleccionar y clic con el botón derecho o izquierdo para lanzar el juego.

Me fije en como funcionaba su programa TEST.BAS que incluyen en la compilación de juegos adaptados, su listado no puede ser más simple y claro:

10 CLS
20 FOR x=0 TO 5
30 LOCATE 1,1+x:PRINT HEX$(&F990+x);": ";HEX$(INP(&F990+x),2)
40 NEXT
50 GOTO 20

Este programa va mostrando valores distintos según movamos el ratón, la rueda o hagamos clic con el botón derecho o izquierdo:

  • INP(&F990) detecta los clic de ratón: &10 para el botón derecho y &20 para el izquierdo.
  • INP(&F992) detecta el movimiento de la rueda del ratón: &F8 para arriba y &7 para abajo.
    INP(&F992) también detecta el movimiento del eje X del ratón: &F8 para izquierda y &7 para izquierda.
  • INP(&F993) detecta el movimiento del propio ratón en la mesa en el eje Y: &F8 para arriba y &7 para abajo.

Una vez conocidos los valores solo he tenido que añadir en mi menú unas líneas en el WHILE que esta leyendo continuamente las teclas que pulsamos para que si pasamos los valores que se capturan con el ratón crea que hemos pulsado la tecla que hace la misma función.

...
180 WHILE a$=""
190 a$=INKEY$
200 IF (INP(&F990)=&10 OR INP(&F990)=&20) THEN a$="X"
210 IF INP(&F993)=&F8 OR INP(&F992)=&F8 THEN a$=CHR$(240)
220 IF INP(&F993)=&7 OR INP(&F992)=&7 THEN a$=CHR$(241)
230 WEND
...

Lo bueno es que la inclusión de este nuevo código no afecta en nada al funcionamiento de los menús cuando no está presente la emulación de Multiplay, así que lo incluyo como mejora en el código.

martes, 7 de febrero de 2023

Pasar un archivo PDF a markdown (.md)

La idea es pasar el texto, no nos interesa el formato ni las imágenes incrustadas.


Para hacer esto debemos tener en cuenta algunas cosas:

  • El archivo PDF debe tener texto real, no una simple digitalización que no es más que una imagen.
  • El formato PDF permite hacer muchas más cosas que el formato markdown. 

Vamos a pasarlo primero a HTML, ya sabemos y asumimos que no te va a quedar igual y va a requerir ajustes manuales.

Para pasarlo a HTML:

pdftohtml -i archivo.pdf archivo.html

Para pasarlo a md:

pandoc archivo.html -o archivo.md

Lógicamente debemos tener instalados tanto pdftohtml como pandoc para que funcione este truco.