Documente Academic
Documente Profesional
Documente Cultură
Curs Autocad 21
Curs Autocad 21
220
; al patrulea cerc CIRCLE -50,0 100
Exemplul se ncheie pe rndul al zecelea. Un fiier script se lanseaz n lucru prin comanda SCRIPT. Fiierele script sunt utile n realizarea unor prezentri constituite din succesiuni de slide-uri create n AutoCAD, precum i n crearea obiectelor 3dmesh n care vertex-urile sunt precizate explicit, punct cu punct. ntr-o prezentare de slide-uri, pentru a asigura staionarea unui slide pe ecran un anumit timp, se folosete comanda DELAY, specificnd durata n milisecunde a ntrzierii dorite. Valoarea poate fi un numr natural ntre 1 i 32767. Imaginile utilizate n prezentrile de acest tip, slide-urile, sunt create prin comanda MSLIDE anterior rulrii script-ului, i trebuie s se gseasc n directorul curent de lucru, sau pe o cale de cutare prespecificat. Repetarea automat a execuiei unui fiier script este asigurat de folosirea comenzii RSCRIPT pe ultima linie a fiierului. Ieirea din ciclu se realizeaz tastnd <Esc>. Pentru a crea fiiere script corecte, este necesar o foarte bun cunoatere a mediului AutoCAD i mult experien. Iat un exemplu de fiier script utilizat la prezentarea unei secvene de slide-uri:
; incepe prezentarea si se incarca SLIDE1 VSLIDE SLIDE1 ; se preincarca SLIDE2 VSLIDE *SLIDE2 ; se vizioneaza SLIDE1 timp de 2 secunde DELAY 2000 ; se afiseaza SLIDE2 VSLIDE ; se preincarca SLIDE3 VSLIDE *SLIDE3 ; se vizioneaza SLIDE2 timp de 2 secunde DELAY 2000 ; se vizioneaza SLIDE3 timp de 3 secunde VSLIDE DELAY 3000 ; se repeta ciclul
Lia DOLGA
221
RSCRIPT
222
Figura 19.1 Fereastra de lucru pentru Visual LISP Aplicaiile AutoLISP interacioneaz cu AutoCAD n moduri multiple. Funciile AutoLISP pot solicita date de intrare, pot accessa comenzi interne AutoCAD, pot crea i manipula obiecte n desen, att de natur grafic (cercuri, linii, polilinii, hauri, cilindri, texte, etc.), ct i de natur negrafic (layer-e, tipuri de linii, stiluri de scriere, etc.). Prin intermediul unor programe AutoLISP, utilizatorul i poate defini propriile comenzi AutoCAD. Odat definite, acestea pot fi utilizate simplu, similar cu orice comand intern. Scrierea programelor AutoLISP necesit mult experien i cunoaterea avansat a mediului AutoCAD. Exemplul de mai jos prezint definirea unei comenzi AutoCAD noi, denumit ROZETA, care deseneaz rozeta din 4 cercuri cu centrul n punctul specificat. Lia DOLGA AutoCAD 2000 n douzeci de pai
223
(defun C:ROZETA(/ c c1 c2 c3 c4 r ecou) ; se salveaz starea curenta a variabilei de sistem CMDECHO (setq ecou (getvar CMDECHO)) ; se inlatura ecoul comenzilor pe linia de comanda (setvar CMDECHO 0) ; se specifica pozitia centrului (initget 1) (setq c (getpoint /nSpecificati centrul rozetei:)) ;se specifica raza unui element (initget 7) (setq r (getdist c /nSpecificati raza elementului:)) ;se calculeaz poziia celor 4 centre (setq c1 (list (car c) (+ (cadr c) r))) (setq c2 (list (+ (car c) r) (cadr c))) (setq c3 (list (car c) (- (cadr c) r))) (setq c4 (list (- (car c) r) (cadr c))) ; se deseneaz cele 4 cercuri (command CIRCLE c1 r) (command CIRCLE c2 r) (command CIRCLE c3 r) (command CIRCLE c4 r) ;se restabileste ecoul comenzilor pe linia de comanda (setvar CMDECHO ecou) )
ncrcarea n desen a unor aplicaii scrise n AutoLISP se realizeaz fie prin comanda APPLOAD, fie prin funcia AutoLISP (load nume_aplicatie). Comanda APPLOAD deschide caseta de dialog din fig. 19.2, denumit Load/Unload Application. Din caset, se poate selecta fiierul dorit, dup care, prin butonul Load, se ncarc efectiv acel fiier n memorie. Rubrica din stnga-jos anun ncrcarea efectuat. Rubrica Startup Suite permite alegerea aplicaiilor care se ncarc automat n memorie la nceperea sesiunii de lucru. Un fiier lisp ncrcat n memorie poate fi descrcat prin aceeai comand i caset de dialog. Descrcarea din memorie duce la gospodrirea mai eficient a resurselor de lucru. Scrierea expresiilor AutoLISP direct pe linia de comand este admis, dar execuia este volatil, nefiind repetabil, dect n urma unei noi scrieri.
224
225 AutoCAD include un mediu de dezvoltare interactiv a aplicaiilor, VBA IDE (VBA Interactive Development Environment), cu cteva caracteristici care l individualizeaz fa de mediile similare create pentru alte pachete soft. Cu ajutorul VBA IDE, se pot crea proiecte VBA, care sunt colecii de module de cod, module de clas i formulare electronice destinate toate ndeplinirii unei anumite funcii. Aceast funcie are de obicei un caracter complex. Un proiect VBA poate fi stocat n interiorul desenului, ca embedded project, caz n care se salveaz odat cu acesta, sau n afara unui desen, ca un fiier independent, global project. n prima variant, proiectul n cauz este utilizabil numai n interiorul desenului-gazd i se ncarc automat la deschiderea desenului. Un singur proiect VBA poate fi fixat n desen la un moment dat. n varianta a doua, proiectul este disponibil spre utilizare n orice desen, dar trebuie ncrcat n mod explicit. Un proiect global poate fi partajat cu ali utilizatori. Utilitarul VBA Manager gestioneaz unitar toate proiectele VBA disponibile (fig. 19.2). Utilitarul permite ncrcarea., descrcarea, salvarea, crearea unor proiecte, fixarea i respectiv extragerea proiectelor VBA din desen. Utilitarul este lansabil prin comanda VBAMAN sau din meniul pull-down Tools, linia Macro. Comenzile VBALOAD i VBAUNLOAD ncarc/descarc din memorie proiecte VBA.
226
Figura 19.2 Utilitarul VBA Manager Intervenia n desen a elementelor dintr-un proiect VBA se concretizeaz prin macrocomenzi. Lansarea unei macrocomenzi se realizeaz prin VBARUN, activabil i din meniul pull-down Tools. Caseta de dialog Macros (fig. 19.3), deschis de comanda VBARUN ofer lista macrocomenzilor accesibile n momentul lucrului. Casetele Macros i VBA Manager sunt apelabile reciproc, pentru a asigura gestionarea rapid a proiectelor i a macrocomenzilor. Pentru crearea, corectarea, modificarea proiectelor VBA, se utilizeaz VBA IDE, mediul de lucru menionat anterior. Acesta se poate lansa fie din VBA Manager (butonul Visual Basic Editor), fie din meniul pull-down Tools, linia Macro, sau prin comanda VBAIDE.
Lia DOLGA
227
Figura 19.3 Caseta de dialog Macros destinat managementului macrocomenzilor n fig. 19.4 i n fragmentul de program de mai jos, se prezint un exemplu de creare a unei aplicaii printr-un proiect VBA, aplicaie n care se deseneaz rozeta din patru cercuri exemplificat anterior n AutoLISP i ntr-un fiier script.
Private Sub d_cmd_Click() 'Declaram variabilele in care se stocheaza 'coordonatele centrelor cercurilor Dim center(0 To 2) As Double Dim c1(0 To 2) As Double Dim c2(0 To 2) As Double Dim c3(0 To 2) As Double Dim c4(0 To 2) As Double Dim radius As Double 'Citim coordonatele rozetei din casutele text center(0) = CDbl(UserForm1.TextBox1.Text) center(1) = CDbl(UserForm1.TextBox2.Text) center(2) = 0
228
radius = CDbl(UserForm1.TextBox3.Text) 'Calculam coordonatele cercului 1 c1(0) = center(0) c1(1) = center(1) + radius c1(2) = 0 Set circleObj1 = ThisDrawing.ModelSpace.AddCircle(c1, 'Calculam coordonatele cercului 2 c2(0) = center(0) - radius c2(1) = center(1) c2(2) = 0 Set circleObj2 = ThisDrawing.ModelSpace.AddCircle(c2, 'Calculam coordonatele cercului 3 c3(0) = center(0) c3(1) = center(1) - radius c3(2) = 0 Set circleObj3 = ThisDrawing.ModelSpace.AddCircle(c3, 'Calculam coordonatele cercului 4 c4(0) = center(0) + radius c4(1) = center(1) c4(2) = 0 Set circleObj4 = ThisDrawing.ModelSpace.AddCircle(c4, 'Regeneram viewport-ul activ ThisDrawing.Regen acActiveViewport ZoomAll MsgBox "Rozeta a fost creata!!!", , "Rozeta" End Sub Private Sub exit_cmd_Click() End End Sub Private Sub UserForm_Initialize() UserForm1.Left = 3 * ThisDrawing.Width / 4 UserForm1.top = ThisDrawing.Height / 2 End Sub
radius)
radius)
radius)
radius)
Lia DOLGA
229 Figura 19.4 Caseta de dialog creat n VBA, pentru parametrizarea rozetei din 4 cercuri