ldraw/lsynth
Laurens Valk d2ea55395a
lsynth: Document how to recreate examples.
2020-09-20 21:49:27 +02:00
..
examples lsynth: Import examples. 2020-09-20 20:28:15 +02:00
src lsynth: Move makefile one level up. 2020-09-20 20:44:53 +02:00
README.md lsynth: Document how to recreate examples. 2020-09-20 21:49:27 +02:00
lsynth.mpd lsynth: Add lsynth.mpd dependency. 2020-09-20 20:46:13 +02:00
makefile lsynth: Move makefile one level up. 2020-09-20 20:44:53 +02:00

README.md

LSynth

LDraw CAD system compatible flexible part synthesizer. This program reads your LDraw file, searching for unofficial META commands (structured comments), that specify things you want synthesized.

What does it do?

LSynth has two primary forms of synthesis. The first kind of synthesis creates hose like things including: rubbed, rubber, pneumatic, and flex system hoses, as well as electric and fiber optic cables, flex system cables, flexible axles, string, and minifig chain.

It also creates things that travel around circular lego parts. Things like: rubber band, rubber belt, technic chain, technic plastic tread, technic rubber tread.

The files tube.c, tube.h, curve.c and curve.h perform hose synthesis. The files band.c and band.h perform band synthesis.

This lsynthcp.c file contains the main entry/exit points for the program. It opens and scans the LDraw file provided, identifies synthesis synthesis specifications and hands them off to the appropriate synthesis methodology.

Obtaining LSynth binaries

You may be able to obtain pre-built binaries from here. Place the executable in this directory.

To build it from source instead, just run:

make

Usage

lsynthcp [-v] [-h] [-m] [-l] [-p] <src> <dst>

  • -v: prints lsynthcp version
  • -h: prints this help message
  • -m: prints out the LSynth portion of the MLcad.ini for using this program
  • -l: format the output as an official ldraw part
  • -p: prints out the full path name of the this executable

See Willy Tscager's tutorial page for using LSynth within MLCAD.

To create a flexible part, you put specifications for the part directly into your LDraw file, where the part is needed.

Example usage to recreate one of the provided example files:

./lsynthcp examples/ELECTRIC_NXT_CABLE-Constraints.ldr examples/result.ldr