Skåne Sjælland Linux User Group - http://www.sslug.dk Forside   Tilmelding   Postarkiv   Sitemap   Kalender   Søg
 

SSLUGJulekalender for nørder

6. december 2006

Nu har vi en del af vores værktøjskasse på plads, og det er på tide at vi kommer i gang med at bygge lidt med LEGO.

Jeg lod mig inspirere af den mørkerød klods 51739 (se billedet) der mindede mig lidt om en nissepiges kjole og byggede en lille nissepige (som min niece besluttede var en nisserobot).

Jeg skriver byggevejledninger i LDraw-formatet som LDGLite (som vi installerede den 1. december) så oversætter til billeder. Som byggevejledningsforfatter, så er de to vigtigste linjetyper i formatet indsæt klods og næste trin.

Indsæt klods

 1 320      0     0     0  -1 0 0  0 0 1   0 1 0       51739.dat

Her indsætter vi en mørkerød (farve nummer 320) klods 51739 på positionen (0, 0, 0). De ni tal, -1 0 0 0 0 1 0 1 0, er en matrix der angiver hvordan klodsen skal vende.

Hvis man vil bygge en lille mur af røde 2×4-klodser kan det klares med disse linjer:

 1 320    -80     0     0  1 0 0   0 1 0   0 0 1       3001.dat
 1 320      0     0     0  1 0 0   0 1 0   0 0 1       3001.dat
 1 320     80     0     0  1 0 0   0 1 0   0 0 1       3001.dat
 1 320    -40   -24     0  1 0 0   0 1 0   0 0 1       3001.dat
 1 320     40   -24     0  1 0 0   0 1 0   0 0 1       3001.dat

Akserne er lidt anderledes end hvad jeg er vant til fra matematik:

  1. Mod venstre.
  2. Nedad.
  3. Bagud.

Næste trin

Slutningen på et trin i en byggevejledning markeres med linjen:

0 STEP

Interaktiv byggevejledning

Filen nissepige.ldr indeholder den komplette byggevejledning til nissepigen ovenfor. Du kan få filen vist som en interaktiv byggevejledning med kommandoen LDRAWDIR=/usr/share/ldraw ldglite nissepige.ldr. Man kommer videre til næste trin med mellemrumstasten, og modellen kan vendes og drejes ved at man trækker musen rundt i vinduet.

For at slippe for at skrive LDRAWDIR=/usr/share/ldraw hver gang du kører LDGLite, er det nok en fordel at lægge linjen export LDRAWDIR=/usr/share/ldraw ind i /etc/profile.d/ldraw.sh eller /etc/profile.

Filnavne og datatyper

Konventionen blandt brugere af LDraw-formatet er at lade filerne slutte på .ldr eller .ldraw. Filer med specifikationen af klodser slutter på .dat, men har i øvrigt samme format.

MIME-betegnelsen for LDraw-formatet er application/x-ldraw.

Ud over det enkle LDraw-format findes der også Multi-Part-DAT-formatet (MPD), der kan bruges til at samle flere LDraw-filer i én fil. MPD-filer slutter på .mpd og har MIME-betegnelsen application/x-multi-part-ldraw.

Det kan være smart at kode disse oplysninger ind i mailcap(5), så ens webserver, filhåndtering, m.m. har lettere ved at holde styr på LDraw-filer.

Visning under redigering

Hvis vi vil rette i modellen, og samtidig følge med i hvordan den ser ud, kan man starte LDGLite med kommandolinjetilvalgene -p -mc:

ldglite -p -mc nissepige.ldr

-p betyder at modellen bliver gentegnet hver gang filen ændrer sig (altså hver gang du gemmer filen i din editor). -mc betyder at du får vist hele modellen, og ikke de enkelte trin et for et.

Hvis du nu prøver at ændre på koordinaterne i filen, eller indsætter nogle nye klodser, skulle LDGLites vindue gerne opdateres lige så snart du gemmer den ændrede fil.

Billedgenerering

Når vi mener byggevejledningen er færdig, kan vi generere billeder svarende til de enkelte trin med kommandolinjetilvalgene -ms -i5:

ldglite -ms -i5 nissepige.ldr

LDGLite lægger de genererede billeder i kataloget /usr/share/ldraw/bitmap/, så vi kan se billederne af nissepigen med kommandoen:

display /usr/share/bitmap/nissepige*.ppm

LDGLite som 3D-tegneprogram

Hvis man er mindre nørdet, eller bare mindre rutineret i matrixregning, så kan man overveje at bruge LDGLite i redigeringsmodus. Man starter LDGLite i redigeringsmodus med kommandoen ldglite -le. For at komme til menuen skal man taste escape.

Næste del af historien kommer så snart Strandnissen får tid til at skrive den.


 
Forside   Tilmelding   Postarkiv   Sitemap   Kalender   Søg

 
 
Henvendelse vedrørende websiderne til <www_admin>. Senest ændret Sunday, 07-Jan-2007 19:15:55 CET
Denne side vedligeholdes af Strandnissen .