- Side 1: Introduktion
- Side 2: Lister og deres elementer
- Side 3: Oprettelse af en variabel
- Side 4: Brug det i AutoCAD
Oprettelse af en variabel
Lad os sige, at vi gerne vil gøre det hele lidt nemmere for os selv, så vi ikke hele tiden skal skrive hele udtrykket (list ”Hund” ”Kat” ”Kanin” ”Hest” ”Ko”), hver gang vi vil tilgå den liste. Derfor gemmer vi listen som en variabel i AutoCAD-dokumentets hukommelse, og til det formål har vi funktionen setq, som sætter værdien af et eller flere symboler til en eller flere associerede værdier.
Setq har signaturen …
- setq = funktionens navn
- sym = det symbol/variabelnavn, vi ønsker at oprette
- expr = det udtryk/expression, vi ønsker at gemme i variablen. Det kan være et heltal, et reelt tal, en tekststreng, en liste, en fil, et objektnavn (entity name), T (True) eller ingenting (nil)
Vi vil som sagt gerne gemme listen (”Hund” ”Kat” ”Kanin” ”Hest” ”Ko”) i en variabel. Lad os kalde listen PATTEDYR.
Det symbol (variabel), vi gerne vil bruge, har altså navnet PATTDYR, og det udtryk, vi gerne vil gemme, er listen (”Hund” ”Kat” ”Kanin” ”Hest” ”Ko”). Det ser sådan her ud:
Hvis vi skriver det på AutoCADs kommandolinje, får vi resultatet
(“Hund” “Kat” “Kanin” “Hest” “Ko”), og vi vil efterfølgende kunne kalde denne liste frem ved at skrive !PATTEDYR på kommandolinjen.
Det ser sådan her ud:

Hvis vi også havde en anden liste (“And” “Gås” “Spurv” “Ørn” “Krage”), kunne vi faktisk i samme funktion gemme denne liste under navnet FUGLE.
Det samlede udtryk ville se således ud …
(setq
PATTEDYR (list “Hund” “Kat” “Kanin” “Hest” “Ko”)
FUGLE (list “And” “Gås” “Spurv” “Ørn” “Krage”)
)
Faktisk er det ligegyldigt, om vi skriver variabelnavne med stort eller småt eller en blanding. F.eks. er !PATTEDYR og !pattedyr det samme.
AutoLISP er ikke følsom overfor store og små bogstaver. Jeg har bare valgt at skrive variabelnavnet med stort, så det adskiller sig for AutoLISP-funktionerne. Du kan gøre det, som det passer dig bedst.
Da nu listen er gemt i variablen PATTEDYR, kan vi nu nemt tilgå den.
F.eks. vil (nth 3 PATTEDYR) være fuldstændig det samme som (nth 3 (list “Hund” “Kat” “Kanin” ”Hest” “Ko”)). Begge funktioner vil returnere værdien ”Hest”.
På samme måde vil (car PATTEDYR) give fuldstændig samme resultat som (car (list “Hund” “Kat” “Kanin” “Hest” “Ko”)). Begge funktioner vil returnere værdien ”Hund”.
I næste lektion vil vi bruge det i AutoCAD …