Si layer-ul ...tusti

De Nae BITOAICA

Printre diferentele notabile dintre versiunea de DOS si cea de Windows a AutoCAD-ului 12 este si interfata, cea din Windows mult mai atragatoare, dar si cu posibilitati mai mari de predefinire a unor comenzi (butonase…). Avantajul mare al versiunii de DOS ramân performantele ce le ofera la o dotare hardware mai "subtire" (în speta memoria RAM). Daca la versiunea de Windows, 8Mb RAM sunt punctul de plecare, la cea de DOS, cu 4Mb RAM se pot face lucruri surprinzatoare. Si de aceea vin în sprijinul acestora din urma cu o facilitate pe care numai cine a lucrat (serios, nu joaca) o poate aprecia: posibilitatea trecerii rapide dintr-un layer în altul, cu minim de manevre, deci de efort. Pentru aceasta va propun o rezolvare eleganta: o caseta de dialog în care sa se faca schimbarea între layer-e.

Instalare

1. În directorul C:\LSP (despre care am vorbit în numarul1 al revistei - pag. 53) copiati fisierele getlay.lsp si getlay.dcl

2. În menu-ul AutoCAD-ului acad.mnu introduceti urmatoarea linie la început, în sectiunea ***BUTTONS:

***BUTTONS3 ^P(if (= (member ‘c:ch_layer (atoms-family 0)) nil)(load "getlay"))(princ);^Pch_layer;

Aici eu v-am propus instalarea comenzii pe BUTTONS3, dumneavoastra o puteti activa cum va este mai usor: pe o comanda prescurtata (în acad.pgp), într-unul din menu-urile desfasurabile standard (acad.mnu -> ***POP), sau în menu-ul cursor (acad.mnu -> ***POP0). Cum v-am propus eu este însa cel mai direct. Intrati în AutoCAD si tinând apasat butonul <CTRL> + butonul <enter> de pe mouse, veti activa comanda ch_layer. Creati noi layer-e, înghetati unele din ele. Activati din nou comanda ch_layer si veti observa ca doar layer-ele dezghetate sunt prezentate. Un dublu-clic pe numele unuia din layer-e va va duce automat în el.

Cum functioneaza

Urmariti sectiunile din sursa lisp.

  1. Prima parte a programului o reprezinta functia GETLCO care realizeaza o lista din layer-ele disponibile (cele care sunt Freeze nu vor fi adaugate la lista LLIST). Lista formata din numele layer-elor este apoi sortata cu ajutorul unei functii ADS disponibila în AutoLISP si anume acad_strlsort. Deci functia GETLCO returneaza o lista ordonata alfabetic a numelor layer-elor care nu sunt Freeze din desenul curent.
  2. Functia LAYLI are ca argument pozitia din lista selectata de utilizator (din DCL) si returneaza elementul corespunzator din lista layer-elor (practic numele layer-ului).
  3. Cu ajutorul functiei LAEDIT se testeaza daca numele layer-ului (dat ca argument) se regaseste în lista LLIST.
  4. SIOK este o functie care permite terminarea dialogului în cazul în care s-a produs o eroare.
  5. Functia principala este GETLAY. Ea realizeaza practic legatura cu menu-ul DCL. Este testata existenta fisierului GETLAY.DCL, apoi este preluat numele layer-ului curent din variabila CLAYER pentru a fi afisat în prima linie a menu-ului DCL. Este creata lista layer-elor disponibile pentru a fi afisata în fereastra de dialog. Sunt definite apoi actiunile pentru fiecare dintre butoanele DCL-ului. Functia întoarce numele layer-ului selectat.
  6. Noua comanda CH_LAYER preia valoarea returnata de functia GETLAY si nu face altceva decât sa dea comanda Layer cu optiunea Set.

getlay.dcl
getlay.lsp


(C) Copyright Computer Press Agora