LISP-intro – del 2

Forside » AutoLisp-vejledninger » LISP-intro » LISP-intro – del 2

Lad os sige, at vi gerne vil lave en funktion, som ændrer alle bogstaver i en tekst til STORE BOGSTAVER (upper case). Funktionen skal kunne kaldes af en bruger på AutoCADs kommandolinje, og kommandoen skal være umiddelbart tilgængelig for brugeren.

Vi tager det et skridt ad gangen og starter med at åbne Visual LISP interfacet. (AutoCAD-kommandoen er VLIDE).

Derefter vælger vi File->New, hvormed vi får åbnet et nyt programvindue, hvor vi kan skrive vores kode:

Vi gemmer med det samme programvinduet som en LISP-fil med navnet UpperCase-1.

Vi vil nu bede brugeren om at udpege en tekst, og til det formål har vi funktionen entsel:

(entsel [msg])

Funktionen entsel taget ét valgfrit argument [msg], som er en meddelelse til brugeren.
Funktionen returnerer en liste med to elementer
– Det valgte objekts entity name
– Det punkt, hvor objektet blev udpeget
Hvis brugeren klikker på et tomt område eller afbryder funktionen, returneres nil (= ingenting).

I praksis ser det sådan her ud:

(entsel “\nUdpeg en tekst: “)

Prøv at skrive funktionen ind i programvinduet.

Marker derefter din lisp-kode og klik på ikonet Load selection.

Herefter skifter AutoCAD fokus til brugervinduet, hvor brugeren bliver bedt om at udpege en tekst …

Når brugeren har udpeget teksten, returnerer AutoCAD til Visual LISP-interfacet, hvor vi i console-vinduet kan se, at funktionen har returneret en liste af to elementer
– Det valgte objekts Entity name = <Entity name: 216b8447190>
– Det udpegede punkt = listen (5907.15 -270.171 0.0)

Bemærk, at hvis brugeren har afbrudt funktionen eller klikket et tomt sted, får vi naturligvis ikke det ønskede resultat. Det ser vi indtil videre bort fra.

Og hvad kan vi så bruge det til? Det ser vi på på næste side.