26
Univerzitet u Tuzli Mašinski fakultet Odsjek: Proizvodno mašinstvo Tuzla, 08.01.2016 godine SEMINARSKI RAD Predmet: CAD/CAM SISTEMI Tema: Auto Lisp Student: Mustafić Zaim

AutoCAD-AutoLisp programiranje

Embed Size (px)

DESCRIPTION

programiranje

Citation preview

Univerzitet u TuzliMašinski fakultetOdsjek: Proizvodno mašinstvoTuzla, 08.01.2016 godine

SEMINARSKI RAD

Predmet: CAD/CAM SISTEMI

Tema:

Auto Lisp

Student: Mustafić Zaim

Br. indeksa: II-463/11 Prof: Dr.sc. Emir Šarić, van.prof

SADRŽAJ:

UVOD:.....................................................................................................................................................3

CAD/CAM...............................................................................................................................................4

CAD (Computer Aided Design)............................................................................................................4

CAM (Computer Aided Manufacturing)..............................................................................................4

AutoCAD.................................................................................................................................................5

AutoLISP.................................................................................................................................................6

PROGRAMIRANJE CNC STROJEVA...........................................................................................................8

Premještanje nulte tačke....................................................................................................................9

Primjer primjene AutoLISP-a................................................................................................................12

LITERATURA:.........................................................................................................................................21

2

UVOD:

AutoLISP je programski jezik nastao od rane verzije programskog jezika XLISP, (integriranog u svaki AutoCAD od verzije 2.18 nadalje) koji omogućuje manpilaciju naredbama AutoCAD-a i njihovo povezivanje u nizove funkcija. Naredbe se pokreću putem komandne linije u AutoCAD-ovom sučelju. 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 struke koje isključivo koriste AutoCAD kao glavni alat za izradu grafičkih prikaza.

Još jedna prednost korištenja AutoCAD-a je mogućnost izrade vlastitih izbornika i alatnih traka te povezivanje aktivnih polja sa naredbama pogramiranima u AutoLISP-u. To nam omogućuje visoki stupanj prilagodbe korisničkog sučelja vlastitim potrebama.

3

CAD/CAMRazvoj proizvoda pomoću CAD/CAM sistema ubrzava razvoj, analizu, redizajniranje modela i donošenje odluka o pravim rješenjima koja predstavljaju optimalna rješenja koja zadovoljavaju zahtjeve uz minimalnu cijenu i maksimalnu kvalitetu. Projektiranje proizvoda predstavlja kritičnu aktivnost proizvodnog procesa jer se procjenjuje da je njen udio 70-80% od cijene razvoja i proizvodnje.

CAD (Computer Aided Design)

Computer-Aided Design (CAD) je program koji koristi kompjutersku grafiku za razvoj, analizu i izmjene tokom postupka oblikovanja proizvoda. Prema definiciji CAD aplikacija (alat), bilo koja aplikacija koja sadrži računarsku grafiku i aplikacija prilagođena inženjerskim funkcijama u procesu dizajna je klasificirana kao CAD aplikacija. To ustvari znači da CAD aplikacije mogu biti raznolike, varirajući od geometrijskih alata za manipulaciju oblicima do alata za vizualizaciju rezultata koje analiziramo.

Kako je osnova svih aktivnosti u proizvodnji definiranje geometrije, upravo to bi bila osnovna zadaća CAD alata.

Osnovna konfiguracija CAD sustava:Konfiguracija CAD sastoji se od triju osnovnih cjelina: Ulaza(eng.input) – tastatura i/ili miš, grafička ploča(engl. Graphics tablet), digitalizator(eng. Digitizer) Obrade – PC računar, operacijski sustav OS i pripadni CAD programski paket Izlaza(eng. Output) – crtač(engl. plotter), pisač(engl. printer)

CAM (Computer Aided Manufacturing)

Prema definiciji, CAM je računarom podržana priprema za proizvodnju i obuhvaća prevođenje projektnih informacija u tehnološke informacije i proizvodnju sa različitim razinama automatizacije. To se ostvaruje različitim tipovima NC (Numerical   Control), odnosno CNC (Computer   Numerical   Control) strojevima kao što su CNC glodalice, CNC bušilice i mnogi drugi slični strojevi.

Kako je CAM oblik proizvodnje koja koristi računare, da bi sama proizvodnja bila što jednostavnija, postoji uska integracija sa CAD-om koja je u realnosti ostvarena postojanjem CAD baze podataka iz koje onda CNC strojevi uzimaju geometrijske predloške za proizvodnju proizvoda koji se nadopunjuju unosima operatera strojeva.

4

AutoCAD

AutoCAD je jedan od najpoznatijih CAD (projektiranje potpomognuto računalom) proizvoda tvrtke Autodesk iz široke palete softverskih alata i pomagala za različita ekspertna područja. Osnovna namjena računalnog programa AutoCAD je dvodimenzionalno ili trodimenzionalno digitalno modeliranje prostora. Novije verzije nude i mogućnosti realističnog prikaza izrađenih 3D modela (rendering). Najčešće korišteni formati kojima AutoCAD upravlja su njegov vlastiti format .dwg, te format .dxf, koji je zbog iznimno velikog utjecaja CAD programa i velikog broja korisnika,postao standardni format za razmjenu za sve CAD tehnologije.

Slika 1. Sučelje AutoCAD-a

Sučelje AutoCAD-a sastoji se od nekoliko područja. Na gornjem dijelu nalaze se padajući izbornici. Osim već ugrađenih izbornika tu možemo dodavati i svoje izbornike, kao i uklanjati već postojeće. U redu ispod izbornika nalaze se alatne trake. Alatne trake sastoje se od ikona. Klikom na njih pokrećemo neku od funkcija AutoCAD-a, bilo predefiniranu, bilo vlastitu (programiranu u AutoLISP-u). Alatne trake mogu se nalaziti smještene u gornjem, lijevom, desnom i donjem dijelu sučelja, gdje su fiksirane. Mogu se i nalaziti u ''plutajućem'' stanju u prostoru za crtanje. Prostor za crtanje nalazi se u sredini sučelja i okružen je izbornicima, alatnim trakama i komandnom linijom. Na dnu sučelja nalazi se komandna linija u koju upisujemo naredbe preko kojih pokrećemo funkcije AutoCAD-a. Putem komandne linije dobivamo povratnu informaciju o onome što se događa na prostoru za crtanje, kao i ostale informacije o funkcijama koje koristimo.

5

AutoLISP

AutoLISP je inačica programskog jezika LISP koja dolazi u paketu sa svakom inačicom AutoCAD-a od verzije 2.18. Usprkos rastućoj popularnosti novih programskih jezika (npr. VBA i .NET) AutoLISP je još uvijek glavni programski jezik AutoCAD-a. Od verzije AutoCAD 2000, AutoLISP je zamijenjen programskim jezikom Visual LISP, koji uz nadogradnje sadrži i kompletni AutoLISP programski jezik sa svim njegovim funkcijama.

Slika 2. Sučelje AutoLISP-a

Funkcija ili program isprogramiran u AutoLISP-u sve svoje operacije izvršava unutar jedne dwg-datoteke. Ovo može biti problem kod rješavanja nekih zadataka koji zahtjevaju primjerice kopiranje nekog sadržaja iz jedne u drugu dwg-datoteku, ali za zadatak koji je riješen ovim diplomskim radom pokazao se kao sasvim dovoljan.Visual LISP Editor se iz sučelja AutoCAD-a pokreće preko naredbe TOOLS > AutoLISP > Visual LISP Editor  ili upisivanjem naredbe ''vlisp''  u komandnu liniju. Nakon toga nam se u novom okviru otvara Visual Lisp Editor.AutoLISP kao i gotovo svaki programski jezik radi s osnovnim tipovima podataka, a to su:- INTEGER: cijeli brojevi od vrijednosti - 2147 do + 2147483,- REAL: realni brojevi, brojevi s decimalnom tačkom do 14 decimalnih mjesta,- STRING: skupina znakova, pišu se unutar navodnika, jedan string ograničen je na 132 znaka,- LIST: lista znakova ili brojeva, piše se unutar zagrada, omogućuju jednostavno spremanje skupine sličnih ili povezanih podataka,- SYMBOL: oznaka koja se sastoji od bilo slova, brojeva ili interpunkcijskih znakova, ne može se sastojati samo od brojeva,- FILE DESCRIPTOR: oznake koje se dodaju datotekama kako bi bile jednoznačno označene prilikom pozivanja od strane AutoCAD-a ili AutoLISP-a,- ENTITY NAMES: skupina brojeva, primarni ključ nekog objekta AutoCAD-a preko kojega AutoLISP može pozvati podatke tog objekta iz baze podataka, primjerice njegove koordinate ako se radi o tački,

6

- SELECTION SET: skupine objekata definirane preko AutoLISP-a radi lakšeg izvođenja nekih operacija (primjerice selections set ''linije'' u koji spremamo sve linije koje se nalaze iscrtane u aktivnoj dwg-datoteci),- SURBS i EXTERNAL SURBS: predefinirani potprogrami AutoLISP-a, primjerice ''princ'' koji daje naredbu AutoCAD-u da ispiše neku poruku u komandnu liniju.- CONSTANTS: konstante, nepromjenjive vrijednosti, primjerice PI

7

PROGRAMIRANJE CNC STROJEVA

Proces izrade dijelova na CNC sastoji se od slijedećih aktivnosti:1. razrada tehnologije i utvrđivanje redoslijeda zahvata, alata i režima rada2. priprema alata3. programiranje4. priprema stroja5. izrada prvog komada u seriji6. serijska proizvodnja

Postoji nekoliko tačaka rada koje su karakteristične za CNC mašine. Prije svega to su: referentna tačka R, nulta tačka mašine M, nulta tačka radnog predmeta W i startna tačka alata B.Obradak se postavlja na radni sto i pri tome radni sto ima definisanu svoju nultu tačku. Radni sto se može kretati ili mirovati. Softverski se definišu i koji se alat koristi. Alati su definisani pomoću sifri T00, T01, T02...Programiranje rada CNC mašina se vrši pomoću g koda,tj ručno unošenje naredbi pomoću računara u mašinu.

Slika 3. Referentne tačke CNC glodalice

Slika 4. Referentne tačke CNC struga

8

Premještanje nulte tačke

Kod EMCO struga nulta tačka( M ) leži u osi rotacije stezne glave (amerikanera). Kako ova tačka nije pogodna kao početna tačka rada, koordinatni sistem je moguće promijeniti i postaviti ga na drugu povoljniju tačku u radnom prostoru NC stroja.

Kada se odredi novi koordinatni sistem W na čelu izratka pozivom naredbe G54 upravljačka jedinica će automatski unijeti vrijednosti koordinata tačke W, te se nulta tačka promijeni iz pozicije M (nulta tačke mašine ) u W (nulta tačka izratka).Prva naredba u programiranju je upravo funkcija pomaka nulte tačke kojom se dakle premješta koordinatni sistem u povoljniju poziciju.U praksi se obično kod struga prvi pomak vrši funkcijom G54(G55-G57) na čelo amerikanera (A) a zatim drugim funkcijama G58-G59 ili funkcijom TRANS(ATRANS) na čelo obrađene površine izratka. Time se lako određuje položaj točke W mjerenjem dužine izratka.

Slika 5. Premještanje nulte tačke (strug)

9

Kod glodalica pomak nulte tačke vrši se direktno pomoću G54 na izradak ili češće pomoću dvije funkcije. Prvi pomak je na čelo nepomične čeljusti škripca (tačka A) a drugi pomak je na izradak (G58… ili TRANS…).

Slika 6. Premještanje nulte tačke (glodalo)

U nastavku se nalazi spisak osnovnih G funkcija potrebnih za programiranje:

KOD OPIS

G00 Brzi hod

G01 Radni hod pravolinijsko kretanje

G02 Radni hod u smijeru kazaljke na satu (CW)

G03 Radni hod u suprotnom smijeru od kazaljke na satu (CCW)

G17 Odabir XY ravni za funkcije G02, G03

G18 Odabir XZ ravni za funkcije G02, G03

G19 Odabir YZ ravni za funkcije G02, G03

G40 Isključenje korekcije radijusa alata

G41 Korekcija radijusa alata (lijeva)

G42 Korektura radijusa alta (desna)

G43 Kompenzacija dužine alata (pozitivna)

10

G44 Kompenzacija dužine alata (negativna)

G49 Poništavanje kompenzacije dužine alata G43/G44

G52 Postavljanje koordinatnog sistema

G53 Opoziv koordinatnog tekućeg sistema

G54 – G59 Nulte tačke poredane od broja 1 do broja 6.

G74 Urezivanje navoja

G80 Poništavanje ciklusa 8x

G81 Ciklus bušenja

G82 Ciklus bušenja sa određenim vremenom čekanja na dnu rupe

G83 Ciklus dubokog bušenja sa vađenjem strugotine

G84 Ciklus urezivanja navoja (desni navoj)

G90 Programiranje u apsolutnom koordinatnom sistemu

G91 Programiranje u relativnom koordinatnom sistemu

G98 Povratak alata u početnu tačku u kojoj je alat bio prije upotrebe ciklusa

SPISAK M (POMOĆNIH) FUNKCIJA ZA GLODALICU

KOD OPIS

M0 Program stop

M1 Opcioni program stop

M2 Kraj programa

M3 Vreteno u smjeru kazaljke

M4 Vreteno u smjeru suprotnom od kazaljke na satu

M5 Stop vretena

M6 Izmjena ili odabir alata

M8 Rashladna tečnost uključena

M9 Rashladna tečnost isključena

M19 Orijentacija vretena

M30 Kraj programa

M97 Pozivanje lokalnog podprograma

M98 Pozivanje eksternog podprograma

M99 Povratak iz podprograma

11

Primjer primjene AutoLISP-a

Na sljedećoj slici je prikazan primjer čiju konturu ćemo programirat pomoću AutoLISP-a :

Slika 7. Primjer konture

Prije svega nacrtat ćemo konturu u AutoCAD-u prema zadatim koordinatama:

Slika 8. Izgled nacrtane konture u AutoCAD-u

12

Nakon što smo nacrtali konturu učitavamo program pomoću kojeg ćemo dobit CNC kod konture.

Program izgleda ovako:

(defun C:LW_CNC ()

(setq os (getvar "osmode"))

(setvar "OSMODE" 0) ;;; OSNAP 0-iskljucen 1-endpoint

;;;................... REŽIMI OBRADE........................................................

(SETQ ad 2.0 ;;; DUBINA

Feed 125.0 ;;; POSMAK mm/min

s 3000) ;;; BRZINA o/min

;;;................... OTVARANJE FAJLA ZA ZAPIS ............................................

(setq PUT_file (getfiled "Open DXF" "c:\\ DXF" "CNC" 1))

(setq CNC (open PUT_file "W"))

;;;....................REZIMI I ALAT........................................................

(write-line "%PRIPREMAK X100 Y100 Z10" CNC)

(write-line "G54" CNC)

(write-line "G58 X0 Y0 Z20" CNC)

(write-line "T01 D01" CNC)

(write-line (strcat "G97 S" (itoa (fix s))) CNC)

(write-line (strcat "G94 F" (itoa (fix Feed))) CNC)

(write-line "M03" CNC)

;;;.....................GEOMETRIJSKI PODACI.................................................

(setq l (entget (car (entsel "Selektuj Polyline:")))) ;;; Pridružena DXF lista za LwPolyline

(while (/= (caar l) 70) (setq l (cdr l))) ;;; isijeca prvi član liste do koda 70

(setq inchis (cdar l)) ;;; očitava vrijednost iza koda 0 ili 1

13

(if (= inchis 1) (setq inchis T) (setq inchis nil)) ;;; T zatvorena poly , "nil" otvorena

(while (/= (caar l) 10) (setq l (cdr l))) ;;; isijeca elemente liste do koda 10 .

(setq p1 (cdr (nth 0 l))

x1 (car p1)

y1 (cadr p1)

bulge (cdr (nth 3 l))

Pend p1

xprimul x1

yprimul y1)

;;; Pamti prvu taèku (posljednja za zatvorenu LW)

;;;...................RADNI ZAHVATI...........................................................

(write-line (strcat "G0 X" (rtos xprimul) " Y" (rtos yprimul)) CNC)

(write-line (strcat "G01 Z-" (rtos ad)) CNC) ;;; Zauzimanje Dubine "ad" u radnom hodu G1

(repeat 5 (setq l (cdr l))) ;;; isijeca listu do sljedeće tačke Nove verzije 5 umjesto 4

(while (> (length l) 1) ;;; petlja radi od posljednjeg elementa kod 210

(setq p2 (cdr (nth 0 l)) ;;; sljedeća tačka u listi dok ima liste

bulge1 (cdr (nth 3 l)) ;;; očitava Bulge i pamti ga kao bulge1

x2 (car p2)

y2 (cadr p2)

)

;;;.......................................................................................................

(setq u (* 4 (atan bulge))

ugrad (/ (* u 180) pi))

14

;;; Iz bulge izračunava pripadajući Ugao koji obuhvata

(if (/= bulge 0) ;;; ako je tačno do tačke 2 dolazi se arc-om ->progn

(progn

(command "ARC" p1 "E" p2 "A" ugrad)

(if (> bulge 0) (setq g "G03 ") (setq g "G02 "));;; odreðivanje interpolacije G2 ili G3 po predznaku

(setq x1 (car p1)

y1 (cadr p1)

x2 (car p2)

y2 (cadr p2)

d (sqrt (+ (* (- x1 x2) (- x1 x2)) (* (- y1 y2) (- y1 y2))))

r (sqrt (/ (* d d) 2 (- 1 (cos u)))))

;;; Izračunava radijus ARC segmenta

(if (> (abs ugrad) 180) (setq r (- r)))

(write-line (strcat g "X" (rtos x2) " Y" (rtos y2) " R" (rtos r)) CNC) ;;;Mijenja predznak R-a na bazi veličine ugla

);end progn

;;;; U SUPROTNOM DO SLJEDEćE TAčKE DOLAZI SE LINIJOM !!!

(progn

(command "LINE" p1 p2 "")

(write-line (strcat "G01 X" (rtos x2) " Y" (rtos y2)) CNC)

); end progn

); endif ;;; Zatvaranje IF petlje

;;;**********************************************************************************************************

15

(repeat 5 (setq l (cdr l))) ;;; Isijeca obraðeni segment od 4 člana u listi 10,40,41,42

(setq p1 p2 ;;; obraðenu tacku p2 proglasava tackom p1

bulge bulge1) ;;; varijablu bulge setuje na vrijednost bulge1

);End while ;;; sve dok ima tacaka *** izostavljeno

;;; ukoliko se radi o zatvorenoj konturi (inchis = T) u DXF zapisu dodana je zadnja tačka koja je koincidentna sa početnom

(if inchis

(progn

(setq u (* 4 (atan bulge))

ugrad (/ (* u 180) pi))

(if (/= bulge 0) ;; ako je T do posljednje tačke dolazi se arc-om

(progn

(command "ARC" p1 "E" Pend "A" ugrad)

(if (> bulge 0) (setq g "G03 ") (setq g "G02 ")) ;;; određivanje interpolacije

(setq x1 (car p1)

y1 (cadr p1)

xe (car Pend)

ye (cadr Pend)

d (sqrt (+ (* (- x1 xe) (- x1 xe)) (* (- y1 ye) (- y1 ye))))

r (sqrt (/ (* d d) 2 (- 1 (cos u))))

); setq

(if (> (abs ugrad) 180) (setq r (- r)))

(write-line (strcat g "X" (rtos xe) " Y" (rtos ye) " R" (rtos r)) CNC)

); end progn - thrue

16

(Progn ;; ako nije T do posljednje taèke dolazi se linijom

(command "LINE" p1 Pend "")

(write-line (strcat "G01 X" (rtos xe) " Y" (rtos ye)) CNC)

); end progn else

); end if /= bulge

); end progn

); end if inchis

;;; zatvaranje konture inchis T

;;;*******************ZAVRSNA SEKVENCA cnc PROGRAMA*******************************************

(write-line "G00 Z20" CNC)

(write-line "M05" CNC)

(write-line "M30" CNC)

;;Close CNC fAJL

(setq CNC (close CNC))

(setvar "OSMODE" os)

); End fun

(setvar "cmdecho" 0)

(princ "CADCAM_CNC učitan - ukucati LW_CNC za generisanje CNC koda")

(setvar "cmdecho" 1)

(princ)

17

Program učitavamo na ovaj način :

Slika 9. Učitavanje programa

Kada smo učitali program, u komandu traku upisujemo naredbu LW_CNC i selektujemo konturu.

Slika 10. Komandna traka

18

Selektovanjem vanjske konture dobijamo CNC kod:

Slika 11. CNC kod za vanjsku konturu

19

Selektovanjem unutrašnje konture dobijamo CNC kod:

Slika 12. CNC kod za unutrašnju konturu

20

LITERATURA:

https://bs.wikipedia.org/wiki/CNC_ma%C5%A1ina

Programiranje CNC tokarilice i glodalice – Zdravko Blažević

AutoLISP programiranje – Dragan Cvetković

21