Objektno programiranje – AutoLISP
Mašinski fakultet Mostar, juni 2013.
OBJEKTNO PROGRAMIRANJE - AutoLISP
OBJECT ORIENTED PROGRAMMING - AutoLISP
Amir Hajdarević
Mašinski fakultet Mostar
Ključne riječi:
AutoCAD, AutoLISP, programiranje.
SAŽETAK:
Objektno programiranje bazira se na logoco ljudskog uma. Neki smatraju da je ono počelo 1967. sa člankom
Dahl-a u knjizi „Strukturirano programiranje“. Objektni programer počinje sa softverskim modeliranjem. Prvo
se ustanovi domen problema kome pripada naš problem i pravi se njegov model. Ključni dio objektnog
programiranja je da u podacima ne stoje samo osobine entiteta već i operacije nad tim entitetom. AutoLISP je
poseban dio LISP programskog jezika, koji se isporučuje unutar programskog paketa za projektovanje
AutoCAD. AutoLISP omogućava korisnicima AutoCAD-a da pišu i kreiraju makroe i funkcije u višem
programskom jeziku. Kroz ovaj rad urađen je primjer objektnog programiranja zupčanika u AutoLISP-u.
Keywords:
AutoCAD, AutoLISP, programming.
ABSTRACT:
Object oriented programming is based on logo human mind. Some believe that it began in 1967. with Dahl
article in his book "Structured programming". Object programmer starts with software modeling. First, we
determine the domain of the problem which belongs to our problem and make to his model. A key part of object
oriented programming is that the data are not only characteristics of the entities, but also the operation of this
entity. AutoLISP is a special part of the LISP programming language, which comes within the software package
for the design of AutoCAD. AutoLISP enables AutoCAD users to write and create macros and functions in a
higher programming language. In this seminar work was prepared as an example of object-oriented
programming gear in AutoLISP.
1. UVOD
Osnovni problem strukturiranog programiranja je to što se bavi samo dekompozicijom alogoritama, te
su se kroz historiju programerske struke pojavljivala tri problema: problem kompatibilnosti, problem
kontinuiteta i problem mogućnosti višestruke upotrebe ( reusability ). Zbog navedenih problema
moralo je doći do izmjena u metodologiji i to u obliku objektne metodologije i objektnog
programiranja. Objektni programer počinje sa softverskim modeliranjem. Nakon što se ustanovi
domen problema kome pripada naš problem, pravi se njegov model. Problem sata koji uvijek radi je
karakteristika objektnog programiranja i samo ono nudi rješenje tog problema. Programer uočava
entitete i povezuje ih u klase entiteta i tek onda ih softverski modelira. Npr. u problemu
Ax
= b
uočavamo tri entiteta: A, b, x. Ključni dio objektnog programiranja je da u podacima ne stoje samo
osobine entiteta već i operacije nad tim entitetom. Kada se završi rad sa jednom klasom počinje rad na
drugoj klasi i tek kada ovo sve završi programer se vraća na početni problem. Klasa objekta
predstavlja model klase entiteta koji obuhvata objekte sa istom strukturom i ponašanjem. Opisno
rečeno, ono sto je objekat za klasu, to je promjenljiva za tip podataka. Objektno programiranje je
podešeno tako da više nikada ove klase nećemo pisati već ih možemo uvjek koristiti. Kod objektnog
programiranja objekti međusobno vrše interakciju. Dio klase naziva se objekat ili instanca klase.
Amir Hajdarević, - Objektno programiranje - AutoLISP
2
Mašinski fakultet Mostar, juni 2013.
2. TEMELJI OBJEKTNOG PROGRAMIRANJA
Objektna metodologija kao i svaka druga metodologija stoji na određenim principima tj. ima određene
osnove. Ona se zasniva na nekoliko osnovnih principa koji su bili poznati čak i prije objektnog
programiranja u određenom obliku, samo što tada nisu igrali bitnu ulogu u izradi softvera. Osnovni
elementi objektnog
programiranja su:
-
Apstrakcija, to je veoma opšti postupak, na kome je zasnovana naša logika, poznat i hiljadama
godina prije nastanka objektne metodologije i predstavlja izdvajanje odnosno uočavanje
bitnog i zanemarivanje nebitnog. Postoji i u strukturnom programiranju gdje svaki obučen
programer vidi potprograme kao apstraktne elemente.
-
Skrivanje informacija, je odavno jedan od ključnih principa objektnog programiranja. On
podrazumjeva da klijentu ne treba da budu poznati detalji realizacije programa jer on može
tada da zloupotrebi naš kod u neke svrhe da bi, kada izađe novija verzija, nastao veliki
problem.
-
Inkapsulacija je tehnika kojom se pri realizaciji objedinjavaju deskriptivne i dinamičke
osobine modela entiteta ( u našem slučaju objekata ) poštujući pri tome princip skrivanja
informacija.
-
Modularnost
je tehnika razlaganja složenog softverskog sistema u domenu implementacije na
jednostavnije elemente koje imaju unutrašnju logku.
-
Polimorfizam
je osobina, ili pak mogućnost da se softverska komponenta ponaša zavisno od
konteksta ili okolnosti. Tako se polimorfno mogu ponašati objekti, promjenljive pa i funkcije.
-
Veze između klasa su u okviru problema gdje postoji više klasa veoma bitna komponenta jer
egzistira veliki broj međuzavisnih klasa. Vezama se ostvaruje uređenje apstrakcija. Najveću
važnost ima nasleđivanje tj. izvođenje klase iz klase.
-
Nasljeđivanje predstavlja prenošenje osobina jedne klase na drugu uz mogućnost dopune i
modifikacije bez izmjene izvornog koda prve klase. Ono omogućuje npr. da osnovnoj funkciji
tastera, koja je ista za sve, dodamo i novu, nama potrebnu, funkciju bez mjenjanja njegovog
koda.
2.1. Objekat i klasa
Postoji mnogo definicija i klasa i objekata ali jedno što im je zajedničko jeste da kažu da su klasa i
objekat u stvari pojmovi. Pojam je po svojoj prirodi misao o bitnim karakteristikama predmeta kojih
mi u realnosti prepoznajemo. To je ono što mi u stvari modeliramo. Najbitniji pojmovi u
programiranju jesu pojam za stvar, proces, osobinu i na kraju pojam za odnos. Također veoma bitna
stvar jesu i odnosi među pojmovima. Pojam može biti individualni ili opšti pojam. Logika se bavi
opštim, bitnim osobinama problema, ali mi sa stanovišta programiranja ih možemo posmatrati
konkretnije jer ih vezujemo samo za pitanje problema. Od problema do problema mi posmatramo
druge karakteristike koje su nam u tom trenutku relevantne. Tako se svi autori slažu da su najbitnije
osobine objekta: indentitet, stanje i ponašanje. U objektnom sistemu svaki objekat je jedinstven.
Identitet
predstavlja osobinu objekta da se izdvaja od ostalih objekata i po kome je on prepoznatljiv.
Ako uzmemo problem dvije matrice vidjet cemo koliko je bitan pojam identiteta. Imamo dve matrice:
Postavlja se pitanje da li su ovo dvije ekvivalentne matrice ili je ovo samo prva matrica prepisana.
Zbog ovakvih situacija bitno je da se objekti ( u ovom slučaju matrice ) označe nekim imenom tj da im
se dodjeli neki identitet. Za razliku od objektnog, procedurno programiranje nije zasnovano na
stanjima već na vrijednostima koje se primjenjuju. Stanje
je dio prošlosti i sadašnjosti objekta
neophodan za određivanje njegovog budućeg ponašanja. Dakle objekat
je softverski model
individualnog pojma za stvar ili proces zasnovan na stanjima i koji sadrži osobine relevantne za
domen problema.

Amir Hajdarević, - Objektno programiranje - AutoLISP
4
Mašinski fakultet Mostar, juni 2013.
3.1. AutoLISP
Kao jedan od najboljih i najčešće korištenih alata za objektno programiranje pokazao se Autodesk-ov
softverski CAD (Computer Aided Design) alat AutoCAD. Prednost AutoCAD-a je mogućnost izrade
vlastitih aplikacija uz pomoć ugrađenog uređivača (editora) AutoLISP / Visual LISP. Uz već ugrađene
funkcije AutoCAD-a, uz pomoć Visual LISP editora moguće je programirati funkcije prilagođene
vlastitim potrebama. Ovdje vidimo prednost ovog programskog jezika za nauke koje isključivo koriste
AutoCAD kao glavni alat za izradu grafičkih prikaza. AutoLISP omogućava korisnicima AutoCAD-a
da pišu i kreiraju makroe i funkcije u višem programskom jeziku, što je izuzetno povoljno za grafičke
aplikacije. LISP je lagan za učenje i korištenje i veoma je fleksibilan. Usprkos rastućoj popularnosti
novih programskih jezika (npr. VBA i .NET), AutoLISP je još uvijek glavni programski jezik
AutoCAD-a. LISP je predstavnik aplikativnih ili funkcijskih programskih jezika. U okviru njega ne
postoje komande, već se sve svodi na izračunavanje raznih funkcija. AutoLISP podržava nekoliko
vrsta podataka, i to: liste, simbole, tekstualne stringove, realne i integer brojeve, opise fajlova,
AutoCAD-ove nazive fajlova, AutoCAD-ove selekcione setove, kao i odgovarajuće funkcije koje
omogućavaju bazično programiranje za dvodimenzionalne i trodimenzionalne grafičke aplikacije.
Neke rutine se automatski učitavaju kada se izaberu (markiraju) iz standardnih menija AutoCAD-a, a
ostale rutine koje su potrebne korisniku moraju da se učitaju pomoću komande APPLOAD. Do ove
komande se dolazi putem
Manage > Load aplication
i kao rezultat toga se pojavljuje okvir za dijalog,
koji je prikazan na slici 2.
Slika 2: Dodavanje objekta pomoću AutoLISP-a
Mnogi od AutoLISP programa koriste funkciju DEFUN da kreiraju neku funkciju. Posle učitavanja
fajla pomoću komande APPLOAD, ta nova funkcija može da se pozove kao i svaka druga AutoCAD-
ova komanda, kucajući njen naziv u komandnoj liniji. Na primer, ako je korisnik kreirao funkciju pod
nazivom gear (koristeći u njenoj sintaksi i funkciju DEFUN), onda se ta funkcija poziva, nakon
učitavanja, sa:
Command: gear
Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.
Slični dokumenti