LISP (LISt Processing) je programski jezik koji se koristi u CAD softverima (najčešće u 2D CAD softverima) za automatizaciju zadataka, kreiranje prilagođenih komandi i proširivanje funkcionalnosti. U CAD svetu, najčešće se koristi AutoLISP (AutoCAD varijanta) ili Diesel (jednostavniji skript jezik).
Zašto koristimo LISP u CAD-u?
- Automatizacija ponavljajućih zadataka (npr. generisanje dimenzija, masovne izmene crteža)
- Pravljenje prilagođenih alatki i funkcija
- Interakcija sa korisnikom kroz dijaloge
- Rad sa tabelama i spoljnim datotekama
DraftSight Professional i Enterprise verzije podržavaju AutoLISP, što omogućava automizaciju, prilagođavanje i proširenje funkcionalnosti.
DraftSight Professional podržava većinu AutoLISP skripti a omogućene API integracije u DraftSight Enterprise paketima dozvoljavaju vam da prilagodite i sve raspoložive LISP svom softveru i procesima rada.

Šta sve možete postići sa LISP-om u DraftSight softveru?
Napomena: Primeri koda ispod su dati samo kao prikaz jednostavnosti rada sa LISP-om u DraftSight softveru. Svakako kod morate definisati i proveravati prema svojim podacima i zahtevima.
1. Automatizacija ponavljajućih zadataka
- Masovna izmena crteža (promena slojeva, boja, tipova linija)
- Generisanje standardnih elemenata (šrafure, blokovi, tabelarni prikazi)
- Batch obrada DWG fajlova (automatsko otvaranje, izmena, čuvanje)
Primer LISP koda za promenu sloja svih linija:
lisp
(defun c:PromeniSloj (/ ent)
(setq ent (ssget)) ; Odaberi objekte
(command "._CHPROP" ent "" "_LA" "NoviSloj" "") ; Promeni sloj
(princ)
)
(Pokreće se sa PROMENISLOJ u komandnoj liniji)
2. Kreiranje prilagođenih komandi
- User-defined funkcije (npr. brzo crtanje specifičnih geometrija)
- Modifikacija postojećih komandi (dodavanje provera, logike)
Primer: LISP za automatsko crtanje pravougaonika sa unapred definisanim dimenzijama
lisp
(defun c:DrawRect (/ pt1 pt2)
(setq pt1 (getpoint "\nOdaberi početnu tačku: "))
(setq pt2 (list (+ (car pt1) 100) (+ (cadr pt1) 50))) ; Dimenzije 100x50
(command "._RECTANGLE" pt1 pt2)
(princ)
)
(Pokreće se sa DRAWRECT)
3. Interakcija sa korisnikom (dijalozi, provere)
- Input provere (npr. da li je uneta validna vrednost)
- Simple GUI dijalog koristeći DCL (Dialog Control Language)
Primer: Dijalog za unos dimenzija
lisp
(defun c:UnosDimenzija (/ visina sirina)
(setq sirina (getreal "\nUnesi širinu: "))
(setq visina (getreal "\nUnesi visinu: "))
(alert (strcat "Kreiranje pravougaonika " (rtos sirina) "x" (rtos visina)))
;... dalja logika
)
4. Rad sa tekstom i tabelama
- Automatsko popunjavanje tabela (npr. iz Excel-a ili CSV)
- Formatiranje teksta (promena fontova, visina, stilova)
Primer: Masovna promena visine teksta
lisp
(defun c:PromeniVisinuTeksta (/ ss novaVisina)
(setq ss (ssget '((0 . "TEXT")))) ; Odaberi sve tekstualne objekte
(setq novaVisina (getreal "\nUnesi novu visinu teksta: "))
(command "._CHPROP" ss "" "_H" novaVisina "") ; Promeni visinu
(princ)
)
5. Proširenje DraftSight-a API-jem (Enterprise verzija)
- Integracija sa .NET (DraftSight API) za kompleksnije aplikacije
- Povezivanje sa bazama podataka ili web servisima
Zaključak
Ako koristite DraftSight Professional/Enterprise, LISP može da vam ubrza rad sa:
✔ Automatskim izmenama
✔ Prilagođenim alatkama
✔ Batch obradom fajlova
Kako koristiti DraftSight i AutoLISP za automatizaciju ponavljajućih zadataka u vašem 2D CAD softveru za projektovanje