HBM004: Curso LDraw, 4ª Entrega


 

Curso LDraw, 4ª Entrega

LDraw

Mantener las piezas no oficiales separadas de las oficiales

 

Por Jetro

Gráficos por Jetro

En una anterior entrega de este tutorial expliqué cómo encontrar e incorporar piezas que no están disponibles de forma oficial. Existe una manera de evitar mezclar las piezas y seguir teniéndolas disponibles en MLCad, pero requiere hacer algunos pequeños ajustes, además de la
inclusión de las piezas no oficiales dentro del fichero MPD (lo cual es recomendable de todas maneras si se emplean piezas no oficiales).

Esta solución pasa por editar el archivo MLCad.ini que se encuentra en la carpeta de instalación de MLCad (en una instalación típica la ruta será C:\LDraw\Apps\MLCad\MLCad.ini). Se trata de un archivo de texto plano que cuenta con una sección de ayuda muy amplia. Casi al final de este archivo se encuentran las siguientes líneas:

[SCAN_ORDER]
1 = SHOW
Parts
2 = HIDE
Parts\s
3 = HIDE
P
4 = HIDE
P\48

Estas líneas indican dónde MLCad debe buscar las piezas (dentro de la carpeta de instalación LDraw en las carpetas Parts, Parts\s, P y P\48). Si descargamos el archivo completo de piezas no
oficiales y lo extraemos a la capeta C:\LDraw\Unofficial, para hacerlas visibles a MLCad habría que añadir las siguientes líneas de código:

5 = SHOW Unofficial\Parts
6 = HIDE
Unofficial\Parts\s
7 = HIDE
Unofficial\P
8 = HIDE
Unofficial\P\48

La próxima vez que abras MLCad las piezas contenidas en la carpeta Unofficial estarán disponibles. Sin embargo, solamente estarán disponibles para MLCad! Esto significa que si quieres renderizar el fichero con otra herramienta (como por ejemplo LDView) tendrás que incluir las piezas no oficiales dentro del archivo MPD de la construcción. Esto se puede hacer usando una herramienta como MPDWizard[1] como se describió en la segunda entrega del tutorial[2].

LSynth: piezas flexibles

En la anterior entrega vimos como generar una correa sencilla con el generador de cintas que  incorpora MLCad. Sin embargo esta herramienta no sirve para hacer configuraciones más complejas de cintas ni para generar otros tipos de elementos flexibles. Para esta tarea existe la herramienta LSynth, creada por Kevin Clague. Es posible usar esta herramienta de forma directa, pero es más sencillo utilizarlo a través de la interfaz de MLCad.
Si has instalado el paquete completo de herramientas LDraw con el instalador disponible en Ldraw.org[3] lo más seguro es que MLCad esté correctamente configurado para LSynth. De lo contrario puede que sea necesario indicarle a MLCad dónde se encuentra LSynth en el archivo MLCad.ini . Bajo el encabezado [LSYNTH] deberás indicar la localización de LSynth. Por defecto sería de la siguiente manera:

%PATH =C:\LDraw\Apps\LSynth

LSynth te permite sintetizar un total de 11 tipos de piezas distintos que se pueden organizar por la
manera de sintetizarlos en dos grupos:

1) Los de tipo tubo o cable

Estas piezas se sintetizan partiendo de unas piezas que delimitan su localización en el archivo LDraw.
Se trata principalmente de la pieza LS00.DAT “~LSynth Constraint Part” [Fig. 1]. Esta pieza sirve
para indicar donde nace y termina cualquiera de estos elementos así como los puntos por los que
debe pasar. Además, la cresta que se observa en el costado de la pieza es útil en el caso de los cables para indicar la dirección del ancho de los mismos.

 

LDraw

 

Este grupo incluye los siguientes tipos [4]:

ELECTRIC_CABLE                          Cable electric

FIBER_OPTIC_CABLE                    Cable fino de fibra óptica

FLEX_CABLE                                   Cable del sistema flex

FLEX_SYSTEM_HOSE                    Tubo del sistema flex

FLEXIBLE_AXLE                              Eje flexible

PNEUMATIC_HOSE                         Tubo neumático

RIBBED HOSE                                  Tubo estriado

Básicamente se sintetizan todos por igual, pero en el caso del FIBER_OPTIC_CABLE existe una pieza que dibuja el inicio de este cable (LS30.DAT – Technic Fiber Optic Cable – large end) como también sucede con los extremos de los FLEXIBLE_AXLE (LS40.DAT – Technic Axle Flexible – end piece).

2) Las cintas, orugas y cadenas cerradas

Este grupo de piezas se define con ayuda de los elementos alrededor de los cuales la cinta, oruga o cadena debe articularse. Se pueden usar por tanto todo tipo de engranajes y poleas. CHAIN (gears) Cadenas estrechas 

PLASTIC TREAD (gear)                     Orugas de plástico = cadenas anchas

RUBBER_BAND (pulleys)                  Cintas

RUBBER TREAD (sprockets)             Orugas de goma

 

Existen tres tipos de piezas para marcar el camino para estas cintas etc.:

•Engranajes [Fig. 2] (73071, 6573, 4019, 6542, 3648, 60C01, 3650A, 3649 y 2855)

•Ruedas de espiga [Fig. 3] (32007)

•Poleas [Fig. 4] (3736, 4185, 2983, 4265A, 4265B, 4265C, 3713, 2736 y 50)

En el caso de los engranajes hay que tener especial cuidado con la selección de las piezas que se usan como guías ya que no todas las piezas homólogas funcionan con LSynth (de los varios modelos de Crown Gear solo funciona uno – 4265A – pero no el 4265B) Algo similar pasa con los Technic Bush ½ (Sirven el 4265A, B y C, pero no el 6577 o el 32123).

 

Usar LSynth

Para usar LSynth dentro de un archivo ldr o mpd hace falta insertar una serie de comandos que LSynth pueda reconocer e interpretar para hacer la pieza según lo especificado. Un bloque mínimo de comandos LSynth tiene la siguiente forma:

0 SYNTH BEGIN tipo color

guía

guía

0 SYNTH END

En el campo "tipo" hay que indicar qué tipo de pieza flexible se quiere sintetizar (CHAIN, ELECTRIC_CABLE,…).

El campo "color" marca el color que tendrá la pieza sintetizada. El número del color corresponde con los números de colores que usa LDraw. En MLCad se pueden ver de manera sencilla en la barra de colores al pinchar en Mas y colocando el puntero sobre el color. Para editar un comando LSynth basta con hacer un doble clic encima del mismo.

 

LDraw

Los campos "guía" corresponden con las piezas que marcan el contorno de la pieza flexible además de la orientación de su sección. Además, en este apartado luego se pueden introducir comandos para controlar de manera más precisa el desarrollo de la pieza flexible del tipo cinta etc.

Para sintetizar un cable o tubo, basta con introducir los comandos de LSynth en el archivo LDraw. En MLCad esto se puede hacer a través de la barra de experto o yendo a “Extras > LSynth > Añadir comando”. Del menú desplegable que sale en la ventana emergente hay que seleccionar el tipo de pieza que se desea sintetizar, después de lo cual se insertarán tres líneas de código en el archivo. Aparte de las ya mencionadas líneas SYNTH BEGIN y SYNTH END se insertará una línea SYNTH SHOW. Se supone que las piezas que se inserten después del comando SHOW quedarán visibles después de ejecutar la sintetización, pero parece que este comportamiento no funciona. Para poder visualizar las piezas delimitadoras después de la ejecutar LSynth habrá que ir a “Extras > LSynth > Mostrar todo” o al icono correspondiente en la barra de extras.

Después de insertar las guías necesarias entre SYNTH BEGIN y SYNTH END, teniendo mucho cuidado de que en la lista aparezcan exactamente en el orden correcto, solo queda ejecutar LSynth (a través de la opción en el menú correspondiente o del icono). MLCad preguntará si deseas guardar los cambios efectuados en el archivo si has hecho alguna modificación desde la última vez que lo guardaste y a continuación se ejecutará LSynth. Como LSynth en realidad es un programa de línea de comando verás brevemente una ventana negra con la ejecución del programa, después de lo cual la pieza flexible aparecerá en tu archivo. Si por alguna razón la pieza no sale como querías puedes volver a abrir el fichero en el que estas trabajando sin guardar primero los cambios o eliminar todo lo que aparece entre las líneas SYNTH SYNTHESIZED BEGIN y SYNTH SYNTHESIZED END, ambas inclusive.

En el caso de las cintas, orugas y cadenas cerradas puede hacer falta insertar comandos adicionales para conseguir la forma deseada. Por defecto LSynth conectará las guías (engranajes, poleas etc) en sentido contrario al reloj e intentando que todos los elementos queden dentro de la cinta. En el caso de conectar dos poleas el resultado por defecto será el que se muestra en la figura 5. Pero si queremos conseguir lo que se muestra en la figura 6 habrá que informar LSynth de esa variación. Para ello contamos con tres comandos: CROSS, OUTSIDE y INSIDE que vienen a significar cruce, fuera y dentro.

 

LDraw

Para conseguir el resultado de la figura 6 habrá que colocar primero la polea de la izquierda, luego indicar que la cinta tiene que cruzar, colocar la polea de la derecha y volver a indicar un cruce: el comando CROSS siempre se utiliza de dos en dos. Se puede conseguir el mismo resultado usando los comandos OUTSIDE e INSIDE conjuntamente. Estos también siempre deben aparecer de dos en dos. La secuencia de elementos sería: polea, OUTSIDE, polea, INSIDE.

Cuando hay más de dos poleas las cosas se pueden complicar un poco más, pero la lógica es la misma. Para conseguir el resultado que se muestra en la figura 7 hará falta colocar las líneas de la siguiente manera: polea verde, polea roja, OUTSIDE, polea azul, INSIDE. De la misma manera que la cinta es una estructura sin comienzo ni fin, esta secuencia se puede comenzar con cualquiera de los comandos que integra siempre y cuando el orden de las líneas no cambie.

Con esto en mente, ¿sabrías hacer la secuencia para conseguir reproducir la figura 8?[5]

 

Bibliografía:

LEGO Software Power Tools, capítulo 7 "LSynth: A Bendable Part Synthesizer" por Kevin Clague, editado por Syngress, en el cual el autor de la herramienta da amplias explicaciones sobre su uso.

"Setup and tutorial for running LSynth through MLCad" http://www.holly-wood.it/lsynth/tutorialen. html

Ldraw.org

 

Notas:

[1] http://www.pobursky.com/print.php?sid=33

[2] Después de crear el fichero MPD con MPDWizard tal vez quieras abrirlo nuevamente con MLCad para cambiar el orden de los modelos para que las piezas y sub-piezas aparezcan al final de la lista

[3] http://www.ldraw.org/Article126.html

[4] Existe un octavo tipo de pieza en las definiciones de LSynth llamado RIGID_HOSE, pero parece que no es posible utilizarlo para sintetizar piezas flexibles.

[5] Rojo, CROSS, negro, CROSS, verde, OUTSIDE, azul, INSIDE. ■