Cookie Consent

luni, iulie 20

Design Review 2010 – DWF, DWG, PDF etc

design_review_2010_web Design Review 2010 este un soft Autodesk gratuit si reprezinta o alternativa oferita celor care au nevoie sa deshida/corecteze/printeze proiecte create in AutoCAD fara a cumpara programul. Alaturi de DWG TrueView 2010, Design Review 2010 este gandit ca un program care sa ajute colaborarea intre cei implicati intr-un proiect (beneficiar, proiectant, executant, consultanti tehnici etc) chiar daca acestia nu detin licente AutoCAD.
Sa vedem pe scurt: cui foloseste? cum arata? si ce face? 
Design Review 2010 este de fapt cea mai recenta versiune a vechiului DWF Viewer. Asa cum spune si numele initial este un soft pentru deschis DWF-uri. In afara de deshis se mai pot adauga diferite note si printa respectivele planuri.
DWF (DesignWebFormat) este un fel de concurenta a PDFului. Un format in care se pot publica desenele ACAD si care poate fi deshis si manipulat fara a avea AutoCAD instalat. DWF-urile pot fi 2D si/sau 3D si contin un minim de informatii necesar intelegerii desenului.
Teoretic lucrurile ar functiona cam asa: proiectantul care are licenta AutoCAD face o propunere de proiect pe care o salveaza ca DWF si o trimite clientului sa o vada. Clientul care nu are AutoCAD (si nici copii care sa pirateze) descarca gratuit de la AutoDesk noul DR(DesignReview) 2010  si cu el deschide DWF-ul primit de la proiectant. Folosind instrumentele de adnotare ale programului face cateva modificari si note pe plan dupa care il trimite inapoi. La fel se intampla apoi de fiecare data cand planul respectiv trebuie sa ajunga la cineva care nu are AutoCAD dar care trebuie sa intervina sau sa corecteze diferite elemente ale proiectului. Chiar si cand vine vorba de printare daca cei implicati aleg sa printeze la un centru de copiere fara licenta AutoCAD ei pot face asta folosind noul DR2010.
Buuuun, asta e teoria! Ce se intampla in realitate? Greu de spus, in Romania cred ca cu totul altceva pentru ca se pirateaza la greu si pentru ca PDF-ul e muuult mai popular decat DWF-ul asa ca daca vrei sa-i trimiti cuiva, care nu are AutoCAD, un plan pentru revizuire foarte probabil o sa trimiti un PDF si o sa trimita inapoi PDF-ul mazgalit si apoi scanat.
Dar sa revenim la subiect si anume: Design Review 2010.
dr2010home_webInterfata: Ultima versiune DR introduce o combinatie intre  interfata tip Ribbon si ToolPalettes alaturandu-se astfel celorlalte produse lansate de Autodesk in ultimii doi ani. E foarte bine venita pentru ca ofera acces usor la aproape toate instrumentele programului, de altfel nu prea multe. Dezavantaje: poate ajunge sa ocupe 2/3 din ecran si la prima vedere pare cam confuza combinatia intre ribbon, toolbars si toolpalets inghesuite toate pe ecran.
Formate: Asa cum am spus formatul pentru care a fost facut este DWF dar incepand cu aceasta versiune DR poate deshide si PDF si DWG (DWG doar cu TrueView instalat si nu deshide chiar DWG ci face o conversie a acestuia in DWF)
Printare: DR ofera cam toate facilitatile de printare uzuale si chiar una in plus avand o optiune de printare a desenului pe mai multe pagini mai mici. Practic daca vreau sa printez un A1 pe opt foi A4 DR face toata aranjarea fara a mai fi nevoie sa fac eu layout-uri separate sau alte artificii.
dr2010mm_web Adnotare: Odata deschis desenul in DR poti sa mazgalesti peste el cum vrei… sageti, norisori, texte, linii, mesaje si orice iti trece prin cap. Dezavantaje: cred ca e mult mai simplu cu markerul pe hartie. Avantaje: pe hartie nu ai UNDO si DELETE
dr2010tools_web 2D/3D: DR se descurca la fel de bine cu DWF-uri 2D si 3D. Are toate instrumentele de navigare necesare, poate interpreta “saved VIEWS”, poate face sectiuni si are diferite tipuri de vizualizare a modelului (shaded, whireframe etc).
Diverse: DR recunoaste: layere, proprietati ale obiectelor, dimensiuni (are propriile instrumente de masurare inclusiv pentru suprafete), sheet sets, layouts
DR poate deshide PDFuri si le poate combina intr-un singur document.
DR poate deschide DWG si DXF daca e instalat impreuna cu DWG True View. In realitate converteste respectivele fisiere in DWF-uri si deschide rezultatul… dar tot e ceva.
Si cu asta gata. Pentru cineva care a folosit foarte rar  formatul DWF cred ca m-am descurcat destul de bine :)
In sectiunea de Download avem un link direct catre pagina AutoDesk de unde se descarca gratuit Design Review 2010.
Citeste articolul...

marți, iulie 14

Buna practica in AutoCAD

Afara ba sunt 35 de grade si umezeala ca la tropice, ba ploua cu nemiluita cu tunete si fulgere. E aproape imposibil sa treci peste zi fara cofeina si cheful de munca lipseste cu desavarsire. Moment bun sa mai scriu ceva pe blog. Oarecum ironic subiectul este "Buna practica in AutoCAD" (asta doar pentru ca aveam pregatita postarea de mai demult si o sa termin repede ca sa ma intorc la stat degeaba).
Buna practica in lucrul cu AutoCAD e un concept destul de tulbure. In mare cam toti utilizatorii care au trecut de la incepator la mediu sunt convinsi ca sunt deja avansati si buna practica se confunda cu modul lor de lucru. De aici reticenta la standarde (cu exceptia celor auto-impuse) si convingerea ca altfel nu se poate sau nu e bine.
Daca te regasesti in categoria de mai sus postarea aceasta nu este pentru tine pentru ca stiu ca tu deja lucrezi perfect. Daca insa nu esti convins ca lucrezi perfect si in general esti curios sa vezi si cum fac altii iata mai jos cateva directii de "buna practica" pe care le-am invatat/citit/descoperit in anii de lucru:
Nimic nu e obligatoriu ci mai degraba, sub deviza:
Ar fi bine sa...
  • incepem orice desen nou in mod metric adica cu acadiso.dwt (pentru RO – aici detalii)
  • folosim cote asociative
  • modificam stilul de cotare din "Use overall scale of:" (Modifiy Dimension Style - Fit) aceasta scaleaza proportional toate elementele cotei fara a mai fi nevoie sa le modificam noi pe fiecare in parte
  • folosim un stil de text separat pentru cote cu Height=0 in Text Style pentru ca asa cota va folosi inaltimea de text din proprietatile cotei nu din stilul de text
  • folosim dim prefix, dim suffix si formulele <>, \P si \X pentru a adauga text inainte dupa sau sub textul initial al cotei (vezi aici detalii)
  • nu explodam cotele
  • nu modificam dimensiunea aratata de cote din Properties – TextOverride
  • folosim SingleLineText - TEXT (DTEXT) pentru texte pe o linie si MultiLineText - MTEXT pentru texte pe mai multe linii
  • folsim superscript si unicode pentru diferite simboluri in text, numere la putere, fractii, grade etc. (nu combinatii de linii, cercuri, text, numere mici si mari etc.)
  • folosim doar daca e absolut necesar alt tip de Justify la TEXT decat cel prestabilit (Left)
  • folosim doar daca e absolut necesar alt Width factor la TEXT decat cel prestabilit (1)
  • folosim inaltimi de text numere naturale si daca se poate cat mai aproape de standarde
  • folosim pe cat posibil fonturi native autocad *.shx (macar pana inainte de plotare)
  • nu explodam texte MTEXT
  • folosim in 99.9% din cazuri hasuri asociative
  • nu explodam hasuri mai ales daca sunt pe suprafete mari
  • cream blockuri pe Layerul 0 din obiecte cu Color-ByBlock si Linetype-ByBlock
  • folosim pe cat posibil polylinii in loc de linii
  • desenam pe cat posibil cu Color-ByLayer si Linetype-ByLayer (mai bine mai multe layere decat mai putine)
  • desenam 1:1 in milimetri sau 1:1 in metri (metri pentru planurile de mari dimensiuni - urbanism, edilitare, drumuri, cadastru etc)
  • plotam din layout - paper space (uite aici o metoda simpla si rapida)
  • desenam in layout - paper space elementele ce tin doar de plotare (ex: cartus, chenar)
Recomandari generale:
  • pastrarea unui stil consistent si unitar de reprezentare in desene (STANDARDIZARE) – arata mai bine, se verifica mai usor, se castiga timp
  • salvarea DWG-urilor ca versiune mai veche (ex:2004)
    daca nu contin elemente aparute in versiunile noi (ex:dynamic blocks) – pentru ca nu se stie unde o sa ajunga si cand ai nevoie sa-l deshizi pe alt calculator
Cam atat mi-am adus aminte acum. Cele de mai sus nu sunt inventia mea ci mi-au fost si mie sugerate/impuse/ recomandate de sefi/clienti, si/sau le-am citit la randul meu in carti/forumuri/bloguri/standarde. Despre o parte din ele am mai scris pe blog si despre o parte voi scrie de acum incolo asa ca daca cele de mai sus ti se par pertinente si nu ai inteles mai nimic din fraza pe care o citesti chiar acum urmareste in continuare agoracad.blogspot.com
Multumesc si toropeala placuta :)
Citeste articolul...

marți, iunie 16

Variabile de sistem in AutoCAD

Acest articol reprezinta o introducere in subiect si raspunde urmatoarelor intrebari:

Ce sunt variabilele de system in AutoCAD?
Ce fac variabilele de system in AutoCAD?
Cum se folosesc variabilele de system in AutoCAD?
Pentru diferite variabile de sistem explicate urmareste seria de articole "Sapte variabile pe saptamana" care apare in fiecare miercuri (incepand de saptamana viitoare).
Ce sunt variabilele de sistem in AutoCAD?
Variabilele de sistem sunt locul in care AutoCAD pune, ca sa tina minte, diferite valori. Ele se prezinta sub forma unui nume (ex: LTSCALE, DWGNAME, GRIPS) care are atribuite valori (ex: LTSCALE=50, DWGNAME="plan.dwg", GRIPS=1).
In functie de acces variabilele de system sunt de doua feluri:
read-only - adica le putem vedea dar nu le putem schimba (ex:ACADVER care ne arata ce versiune de AutoCAD folosim)
read-write - adica le putem vedea si le putem schimba valoarea (ex:ORTOMODE care controleaza daca modul ORTO e pornit sau oprit). In articol vom vorbi doar despre cele pe care le putem modifica.
Ce fac variabilele de sistem in AutoCAD?
Variabilele de sistem reprezinta, alaturi de ferestrele de dialog si meniuri, principalele moduri de interactiune cu programul. Ele controleaza:
- mediul de lucru
- modul in care actioneaza anumite comenzi
- modul de afisare
- multe multe altele
In AutoCAD, in functie de versiune, sunt cateva sute de variabile de sistem, evident imposibil de memorat/invatat. Ce conteaza este ca ele exista si se pot retine cele de uz curent. Practic ne putem gandi la ele ca la comenzi, evident nu stii toate comenzile din AutoCAD dar le stii/inveti pe cele de care ai nevoie.
De fapt, fara sa stim, umblam cu variabile de sistem de fiecare data cand lucram in AutoCAD doar ca nu le accesam direct ci prin intermediul meniurilor, ferestrelor sau raspunsurilor din linia de comanda.
Ex: - cand alegem din Dimension Style - Primary Units - Precision - 0.00 ca sa avem doua zecimale la cote nu facem altceva decat sa setam variabila de sistem DIMDEC la valoarea 2 
      - cand introducem distanta de OFFSET la 50 nu facem altceva decat sa setam variabila OFFSETDIST la valoarea 50
In multe cazuri e mai simplu sa obtinem rezultatul dorit folosind ferestrele de dialog sau comenzile in forma in care sunt dar exista situatii in care controlul anumitor parametri folosind direct variabila de sistem e mai usor sau chiar e singura varianta. Pentru aceste cazuri trebuie sa stim:
Cum se folosesc variabilele de sistem in AutoCAD?
Asa cum am aratat mai sus multe din actiunile noastre in AutoCAD au ca rezultat schimbarea valorilor unor variabile fie ca vrem fie ca nu.
Dar cum schimbam valorea unei variabile, direct, fara a folosi o fereastra de dialog sau un meniu?
Cel mai simplu este sa tastam numele variabilei in linia de comanda (command line) urmat Enter apoi noua valoare si iar Enter.
Ex: Daca tastam SAVETIME urmat de Enter, pentru a modifica variabila cu acelasi nume, rezultatul va arata asa:
Enter new value for SAVETIME <10>:
unde SAVETIME e numele variabilei pe care vrem sa o schimbam, iar intre <> avem valoarea curenta (in cazul de fata 10). Tot ce ramane e sa tastez noua valoare si apoi Enter. Variabila din exeplu – SAVETIME - controleaza intervalul de timp la care se face auto-save (salvare automata) iar numarul(valoarea) reprezita minute.
Concluzie:
numele variabilei - Enter
valoarea noua – Enter
si gata am schimbat o variabila de sistem
Bine de stiut:
  • cu variabilele nu e chiar de joaca, e recomandat sa umblam la ele doar cand stim exact ce facem
  • in functie de locul in care sunt memorate variabilele de sistem in AutoCAD se impart in: 
      - variabile stocate permanent in registrii (odata setate raman valabile pentru toate desenele pana la o noua setare) 
      - variabile stocate permanent in DWG (sunt stocate in fiecare DWG si au in fiecare desen valorile atribuite in desenul respectiv) 
      - variabile stocate temporar ( variabile pe care, indiferent daca au fost sau nu modificate in timpul sesiuni de lucru, programul le va reseta  la inceperea fiecarei sesiuni noi atribuindu-le valorile prestabilite <default>
    ex: FILEDIA cu valoarea 1)
  • in functie de parametrul pe care il controleaza fiecare variabila de sistem AutoCAD poate avea doar anumite valori sau tipuri de valori, pentru a folosi o variabila trebuie sa stim foarte bine cum se numeste, ce valori poate lua, ce inseamna fiecare valoare
  • variabilele de system AutoCAD se pot schimba si cu comanda SETVAR sau cu comanda din ExpressTools SYSVDLG.
    Avantajul la SYSVDLG este ca deschide o fereastra frumoasa de dialog cu toate variabilele si pentru fiecare variabila ne arata valoarea curenta, valoarea initiala si valoarea noua pe care o atribuim precum si explicatii despre ce face respectiva variabla de sistem , unde e salvata, ce tip de date retine si ce efect au valorile atribuite (vezi imaginea mai jos)
  • in AutoLisp variabilele se manipuleaza cu ajutorul functiilor getvar respectiv setvar
systemvariables
Citeste articolul...

vineri, mai 22

Introducere in programarea AutoLISP

In prima postare despre AutoLISP (Introducere in AutoLISP) am vorbit despre cum putem folosi programe AutoLISP in AutoCAD fara a sti mai nimic despre programare.
Articolul de astazi vorbeste despre programarea si notiunile de baza AutoLISP. De aceasta data am apelat la cineva mai in masura sa scrie un astfel de articol si anume Robert Green care mi-a permis sa traduc si public pe blog o postare excelenta a sa despre introducerea in programarea AutoLISP.
Articolul original in limba engleza poate fi gasit aici. Pentru a afla mai multe despre Robert Green puteti vizita site-ul sau http://www.cad-manager.com/ sau ii puteti citi articolele publicate in fiecare saptamana la Cadalyst.
To Robert Green: If you somehow read this, thank you again.
Note: Following article is Property of Robert Green and CAD-Manager.com
quotes_web

Notiuni de baza in AutoLisp

AutoLisp este cel mai vechi limbaj de programare in AutoCAD si vei fi uimit de cate instrumente de programare gasesti pe Internet. Cu ceva cunostinte de Autolisp poti integra rutinele deja existente in propriile programe castigand astfel un control superior asupra AutoCAD-ului.
Primul lucru care trebuie stiut este ca AutoLisp are doua fisiere cheie si o functie importanta care excuta diferite actiuni la pornirea AutoCAD-ului. Cele doua fisiere se numesc: ACAD.LSP si ACADDOC.LSP iar functia este S::STARTUP, acestea sunt descrise mai jos:
ACAD.LSP - Acest fisier se incarca la pornirea AutoCAD-ului. Toate programele/rutinele pe care le puneti in acest fisier se vor incarca automat de fiecare data cand se lanseaza programul AutoCAD. Fisierul ACAD.LSP se afla in mod normal in directorul SUPPORT al instalarii AutoCAD.
ACADDOC.LSP - acest fisier se incarca de fiecare data cand se creeaza un desen nou in AutoCAD 2000, 2000i, 2002. Orice programe sau rutine adaugate in acest fisier se vor incarca automat la inceperea fiecarui desen. A se retine ca ACAD.LSP se incarca doar la crearea primului desen si ACADDOC.LSP se va incarca la crearea urmatoarelor desene in sesiunea respectiva de lucru. In AutoCAD R14 nu este nevoie de fisierul ACADDOC.LSP deoarece ACAD R14 nu permitea deschiderea mai multor desene in aceeasi sesiune de lucru. Fisierul ACADDOC.LSP se afla si el, in mod normal, in directorul SUPPORT al instalarii AutoCAD.
functia S::STARTUP - aceasta functie se foloseste de obicei in fisierul ACADDOC.LSP (sau ACAD.LSP pentru R14) si nu face altceva decat sa ruleze comenzi pe care vrei sa le folosesti la inceperea oricarui desen nou. Aceasta functie este ideala pentru setarea variabilelor de sistem cum ar fi DIMSCALE, parametri VIEWRES, layerul curent la inceperea desenului etc. Puterea functiei S::STARTUP sta in faptul ca ruleaza automat si iti da posibilitatea sa controlezi mediul de lucru in care incepi desenele noi.


Exemple

Ce crezi ca se va intampla daca creezi un fisier ACADDOC.LSP, in directoul SUPPORT, si pui in el urmatorul text?
(defun s::startup ()
(alert “Salut!”)
(princ)
)
Ei bine cu DEFUN nu facem altceva decat sa DEfinim o FUNctie (de aici si numele) care se numeste S:STARTUP si despre care stim deja ca va rula de fiecare data cand incepem/deschidem un desen in AUTOCAD. Continutul functiei e reprezentat de o fereastra de notificare (ALERT box) in care va scrie "Salut!" urmata de PRINC care e recomandat sa fie ultima linie a oricarui program AutoLisp.
Salveaza noul fisier ACADDOC.LSP, verifica sintaxa ca sa fii sigur ca nu s-au strecurat greseli si porneste AutoCAD. Intelegi rezultatul si cum a aparut?
Sa avansam putin cu exemplul incercand:
(defun s::startup ()
(setvar “textsize” 0.125)
(setvar “dimtxt” 0.125)
(princ)
)
In acest exemplu setam marimea textului (textsize) si marimea textului de la cote (dimtext) la o valoare prestabilita de 0.125 (sau 1/8" daca preferati) de fiecare data cand deschidem sau incepem un desen. Motivul pentru care am folosit valori zecimale este ca nu intotdeauna desenele vor fi in sistem de coordonate arhitectural sau fractional asa ca valoarea zecimala este cel mai comun mod de a introduce date. <n.t.: articolul se adreseaza preponderent cititorilor din tari cu sistem Imperial (USA, UK, Australia) si de aceea autorul explica introducerea datelor ca numere zecimale. Pe noi nu ne deranjeaza deloc pentru ca oricum folosim sistemul zecimal>
Sa continuam exemplul si sa spunem ca, de fapt, am vrea ca TEXTSIZE (marimea textului) sa fie 0.125 din valoarea DIMSCALE care exista deja in desen. Pentru a face asta ne va trebui o comanda noua numita GETVAR care ne permite sa obtinem valorile deja existente ale variabilelor (in loc sa le dam o noua valoare) si o functie de inmultire (semnul obisnuit *) ambele folosite in aceeasi secventa cod. Cu putina imaginatie va iesi urmatorul program:
(defun s::startup ()
(setvar “textsize” (* 0.125 (getvar “dimscale”)))
(setvar “dimtxt” 0.125)
(princ)
)
De retinut ca secventa de cod care atribuie o noua valoare pentru marimea textului interogheaza valoare curenta a DIMSCALE pe care o inmulteste cu 0.125 si apoi atribuie rezultatul variabilei TEXTSIZE. Ordinea in care executa operatiile aflate intre paranteze este de la interior spre interior. De asemenea de tinut minte ca fiecare paranteza deschisa trebuie apoi inchisa.


Fisiere si functii LSP

Pe masura ce incepi sa-ti scrii propriile programe devine logic sa salvezi codul in fisiere separate care pot fi editate individual. Aceste fisiere au intotdeauna extensia .LSP si se  editeaza in Notepad/WordPad sau in editorul VisualLisp. Fisierel LSP pot fi salvate oriunde dar cel mai simplu si sigur e sa le salvezi tot in directorul SUPPORT. Astfel poti fi sigur ca AutoCAD va stii sa le gaseasca cand vei dori sa le folosesti.
In fisierele LSP create poti pastra rutine simple de programare pe care le poti folosi de cate ori ai nevoie. O anumita functie, functia C: , iti permite sa adaugi comenzi celor deja existente in AutoCAD. Adaugand comenzi noi sau functii C:,  setului de comenzi deja existent, utilizatorii le vor considera pur si simplu ca o comanda noua pe care o pot folosii. Doar tu vei stii ca de fapt ei folosesc un program facut de tine.
Pe masura ce creezi propriile functii si le salvezi ca fisiere LSP va trebui sa le incarci in AutoCAD pentru a te asigra ca pot fi folosite. Odata verificata integritatea codului functiile pot fi adaugate in ACAD.LSP depre care am vorbit.


Un exemplu concret.

Imi plac scurtaturile comenzilor din taste precum L pentru line sau E pentru erase. Acum ceva timp am vrut sa creez o comanda numita FZ care imi va face de fiecare data fillet cu raza zero (pentru colturi nerotunjite) dar fara sa lase zero ca valoare setata pentru raza de fillet la urmatoarele utilizari ale comenzii. <n.t.: in versiunile mai noi Fillet cu Shift apasat are acum acest efect>
Prin urmare programul scris de mine ar trebui sa faca urmatoarele:
  • sa tina minte ultima raza de fillet (stocata in variabila de sistem FILLETRAD)
  • sa seteze noua raza de fillet la zero
  • sa ruleze comanda FILLET si sa ma lase sa selectez obiectele
  • sa seteze raza de fillet inapoi la cat era inainte
Am codat aceasta functie in felul urmator:
(defun c:fz () ; line 1
(setq old_radius (getvar “filletrad”)) ; line 2
(setvar “filletrad” 0) ; line 3
(command “.fillet” pause pause) ; line 4
(setvar “filletrad” old_radius) ; line 5
) ; line 6

Explicatia exemplului

In exemplul de mai sus am adaugat comentarii la sfarsitul liniilor de cod pentru a-i da fiecarei linii cate un numar. Veti observa ca fiecare comentariu e precedat de semnul punct si virgula al caurui efect este ca interpretorul AutoLISP ignora tot ce se afla dupa el. Aceasta posibilitate de a comenta iti da posibiltatea sa pastrezi diferite note despre program salvate chiar in cod.
Acum sa vedem ce face fiecare linie din program:
  1. Defineste o functie(comanda) numita FZ folosind instructiunea DEFUN
  2. Stocheaza valoarea curenta a razei de fillet atribuind-o unei variabile numita OLD_RADIUS folosind instructiunile SETQ si GETVAR <n.t.: GETVAR pentru a afla valoarea si SETQ pentru a o atribui>
  3. Seteaza raza de fillet  la 0 folosind instructiunea SETVAR
  4. Apeleaza comanda FILLET si apoi are doua PAUSE (pauza) pentru a astepta input de la utilizator sub forma selectiei a doua linii. De retinut ca comezile AutoCAD se scriu intre ghilimele iar instructiunea PAUSE nu.
  5. Seteaza raza de fillet inapoi la valoarea initiala folosind valoarea variabilei OLD_RADIUS si instructiunea SETVAR.
  6. Ultima paranteza inchide instructiunea DEFUN inceputa in linia 1


Sa testam

Acum puteti crea un fisier numit FZ.LSP care contine codul programului de mai sus si sa il salvati in directorul SUPPORT al AutoCAD-ului. Asigurati-va ca nu sunt greseli inainte de a salva fisierul.
Acum deschideti AutoCAD-ul si tastati urmatoarele in CommandLine:
(load “fz.lsp”)
Odata ce programul s-a incarcat veti primi confirmarea in CommandLine sub forma textului C:FZ care este numele functiei.
Puteti testa functia tastand FZ in command line. Inainte de a incerca noua comanda FZ folositi comanda fillet de cateva ori, setand alta raza decat 0, pentru a va asigura ca ultima valoare retinuta de AutoCAD este diferita de zero. Acum ar trebui sa puteti folosi comanda FILLET pentru a face operatiunea cu raza de fillet normala si comanda FZ pentru fillet cu raza zero.
N-a fost asa greu nu?
Daca vrei poti acum adauga instructiunea de incarcare (load "fz.lsp") in functia S::STARTUP (despre care am vorbit mai devreme) si noua comanda FZ se va incarca automat de cate ori e deschis programul AutoCAD. Incarcand comanda din S:STARTUP  utilizatorii vor avea o noua comanda fara sa stie de unde vine de fapt.


Comenzile cu "-"

Anumite comenzi AutoCAD vor avea nevoie de "-" (cratima) in fata lor pentru a fi apelate in AutoLisp pentru ca in mod normal respectivele comenzi functioneaza cu ferestre de dialog. Comanda Layer este un prim exemplu pe care il puteti verifica foarte simplu tastand -LAYER in command line. Acum tastati LAYER simplu si rezultatul va fi cu totul altul, nu?
Deoarece comenzile AutoCAD trec prin interpretorul AutoLISP ca input tastat comanda pentru layere va fi totdeauna apelata cu -LAYER dupa cum urmeaza:
(command “-layer”) in loc de (command “layer”)
Daca nu ma credeti, puteti incerca in command line si vedeti care merge. Alte comenzi des folosite care folosesc "-" ca prefix sunt -STYLE pentru stilurile de text si -PLOT pentru a apela comanda de plotare prin AutoLISP. Aceste comenzi pot fi examinate mai departe prin simpla tastare in command line si apoi notarea succesiunii de input-uri pe care le solicita si optiunile disponibile.
Aproape in toate cazurile in care comenzi AutoCAD sunt folosite in AutoLisp, va trebui sa stiti foarte bine secventa de parametri si optiuni pe care comanda respectiva le solicita respectiv ofera in command line. Daca ai mai folosit comezile respective in versiunea linie de comanda atunci stii ce ai de facut, daca nu atunci vei avea de explorat de acum incolo. Un mod simplu de a documenta comezile este copierea textelor aparute in command line folosind fereastra de text care se apeleaza cu F2 si copy/paste in Notepad.


Erori

Cand uiti sa inchizi paranteze, uiti ghlimelele sau alte parti cheie ale codului din fisierul tau LSP, vei avea probleme. Incearca sa incarci urmatoarele exemple de programe si vezi ce se intampla.
(defun c:fz ()
(setq old_radius (getvar “filletrad))
(setvar “filletrad” 0)
(command “.fillet” pause pause)
(setvar “filletrad” old_radius)
)
Eroarea este aici lipsa unor ghilimele " dupa FILLETRAD in linia a doua. Ar trebui sa vedeti interpretorul AutoLisp intreband de ele.
(defun c:fz ()
(setq old_radius (getvar “filletrad”))
(setvar “filletrad” 0)
(command “.fillet” pause pause)
(setvar “filletrad” old_radius)
Eroarea este aici o paranteza ) lipsa la sfarsitul programului pentru a inchide instructiunea DEFUN. Ar trebui ca interpretorul AutoLisp sa intrebe de ea.
(defun c:fz ()
(setq old_radius (getvar “filletrad”))
(setvar “filletrad” 0)
(command “.filllet” pause pause)
(setvar “filletrad” old_radius)
)
Eroarea aici este un L in plus in cuvantul FILLLET. Veti observa ca functia va rula dar se va opri cand va ajunge la comanda fillet.


Introducerea de date si seturi de selectie

In primele doua parti ale introducerii in programarea AutoLisp am discutat despre cum stocam valori folosind variabile, despre cum manipulam variabilele de sistem si despre cum folosim instructiunea COMMAND pentru a trimite comenzi catre AutoCAD. Acestea sunt elementele de baza pentru a scrie programe simple dar pentru programe mai flexibile va trebui sa puteti sa:
  • cereti utilizatorilor sa introduca date (numere, texte, puncte)
  • cereti utilizatorilor sa introduca seturi de date (folosind seturi de selectie)
  • filtrati baza de date a AutoCAD-ului pentru a obtine doar anumite tipuri de obiecte
  • lucrati cu anumite puncte din obiecte (capete de linie, centru cercurilor, etc)
Comezile pe care le vom folosi pentru a obtine aceste rezultate sunt:
  • GETREAL (pentru a obtine(GET) de la utilizator un numar REAL)
  • GETINT (pentru a obtine de la utilizator un numar INTreg)
  • GETSTRING (pentru a obtine de la utilizator un anumit text)
  • GETPOINT (pentru a obtine de la utilizator un punct)
  • SSGET (pentru a obtinede la utilizator un set de selectie)
  • SSGET cu optiunea “X” (pentru a filtra baza de date de anumite obiecte)
  • CAR, CADR and CADDR (pentru a desparti punctele in valori X, Y and Z)
Ca si pana acum voi folosi programe mici pentru a ilustra conceptele si apoi voi creste gradual nivelul de complexitate pentru a intelege si exemple mai avansate.


Obtinerea de valori de la utilizator

Obtinerea de valori de la utilizator este destul de directa in AutoLISP dupa cum se poate vedea in exemplele ce urmeaza:
(setq var1 (getreal “\nIntroduceti un numar REAL: “))
(setq var2 (getint “\nIntroduceti un numar INTREG: “))
(setq var3 (getstring “\nIntroduceti un text “))
Incercati copy/paste cu aceste exemple in AutoCAD command line pentru a rula interactiv instructiunile si veti vedea imediat ce se intampla. De remarcat ca folosind instructiunea GETINIT nu puteti intoduce un numar real sau text. De asemenea se poate observa ca in command line apare un text care il informeaza pe utilizator ce informatie este asteptata de la el.
Nota: Caracterul \n este in cod doar pentru ca textul pentru utilizator sa apaa pe o noua linie in command prompt si nu in continuarea liniei anterioare!
Rezultatul acestor instructiuni este atribuirea valorilor introduse de utilizator variabilelor VAR1 VAR2 sau VAR3, valori care pot fi apoi folosite in alte programe. Iata un exemplu de programe pe care il puteti rula interactiv si care solicita de la utilizator o valoare, o stocheaza intr-o variabila si apoi o foloseste.
(setq dimtxt_height (getreal “\nInaltimea textului de cotare: “))
(setvar “dimtxt” dimtxt_height)
Desi este un exemplu foarte simplu acesta ilustreaza perfect conceptul. Se ia o valoare de la user si se foloseste apoi in program in loc de valori fixe introduse direct in cod (vezi exemplul al doilea de sus daca nu stii ce face intructiunea SETVAR).

Solicitarea si lucrul cu punctele

In timp ce obtinerea de puncte de la utilizator este foarte simpla folosing urmatoarea secventa:
(setq point1 (getreal “\nSelectati locatia punctului: “))
Lucrul cu punctele nu e asa usor deoarece punctul e definit de fapt de trei valori care trebuie separate. Punctele sunt in realitate o lista de coordonate X Y si Z puse la un loc care pot fi descompuse folosind instructiunile CAR, CADR si CADDR dupa cum urmeaza:
(setq point1_x (car point1))
(setq point1_y (cadr point1))
(setq point1_z (caddr point1))
Observati ca o variabila intermediara numita POINT1 a retinut punctul in timp ce variabilele POINT1_X, POINT1_Y si POINT1_Z retin valorile coordonatelo x, y si z.
Aceasta abordare a punctelor cu CAR, CADR, CADDR necesita in egala masura memorarea corecta a secventelor cat si obisnuirea cu sistemul, dar veti vedea ca va veti acomoda cu acest gen de folosire a punctelor mai repede decat credeti.


Lucrul cu seturi

Un alt aspect al programarii in AutoCAD este faptul ca AutoCAD lucreaza cu seturi de obiecte (asa numitele seturi de selectie). Utilizatorii folosesc seturi de selectie cu comenzi ca MOVE, COPY, ROTATE, ERASE, etc. Regula e ca de cate ori o comanda iti cere sa selectezi obiecte(Select objects:) inseamna ca respectiva comanda foloseste un set de selectie.
Pentru a solicita seturi de selectie  cu ajutorul programelor va trebui sa folositi comanda SSGET. In forma ei cea mai simpla functioneaza asa:
(setq set1 (ssget))
sau:
(setq set2 (ssget “\nSelectati obiectele: “))
singura diferenta fiind textul adresat utilizatorului in varianta a doua.
Setul de selectie rezultat va fi pastrat in variabile (SET1 sau SET2 in exemplele de mai sus) care pot fi apoi folosite impreuna cu o functie tip COMMAND. Iata un program simplu ca exemplu:
(setq erase_set (ssget “\nSelectati obiectele de sters: “))
(command “.erase” erase_set “”)
Acest exemplu ilustreaza cum se obtine de la utilizator un set de selectie care e apoi stocat si procesat cu doar doua linii de cod.
Nota: Ultima pereche de ghilimele "" este echivalentul unui ENTER care trebuie apasat in mod normal pentru a incheia comanda ERASE in AutoCAD.

Mai mult despre seturi

Sa zicem ca ai vrea sa faci un program care sa stearga automat toate textele dintr-un desen. Va trebui sa folosesti comanda SSGET dar nu pentru a obtine obiectele de la utilizator ci pentru a le obtine prin filtrarea obiectelor tip TEXT din desen. Exemplul de cod de mai jos arata destul de incurcat dar va trebui sa ma credeti pe cuvant ca in Autolisp standard nu exista o metoda mai buna:
(setq text_set (ssget “x” (list (cons 0 “TEXT”))))
  • Parametrul "x" marcheaza folosirea unui filtru
  • Parametrul "0" este indicatorul tipului de obiect (entity type flag)
  • Parametrul "TEXT" este tipul de obiecte pe care il selectezi
Un alt exemplu in care vei selecta doar textul aflat pe layerul ADNOTARI va arata asa:
(setq text_set (ssget “x” (list (cons 0 “TEXT”) (cons 8 “ADNOTARI”))))
Recunosc ca sintaxa nu e chiar cea mai prietenoasa dar va veti obisnui cu ea. Acum combinam una din secventele de mai sus cu comanda ERASE si vom avea un program care sterge automat un anumit tip de entitati din desen:
(setq text_set (ssget “x” (list (cons 0 “TEXT”))))
(command “.erase” text_set “”)
Putem merge mai departe si adaugam si obiectele MTEXT pe langa cele TEXT prin simpla folosie a inca unei functii SSGET si modificarea comenzii ERASE dupa cum urmeaza:
(setq text_set (ssget “x” (list (cons 0 “TEXT”))))
(setq mtext_set (ssget “x” (list (cons 0 “MTEXT”))))
(command “.erase” text_set mtext_set “”)
Dupa cum se poate vedea, in acest exemplu, am castigat control serios asupra AutoCAD-ului folosind doar cateva linii de cod. Pentru mai multe informatii despre cum sa filtrati seturi complexe de selectie puteti cauta functia SSGET in sectiunea "Developer's Help" a Help-ului din AutoCAD - veti gasi acolo destule exemple de sintaxa.quotes_web

Acesta a fost articolul lui Robert Green despre primii pasi in AutoLISP. Tradus de Theodor L. pentru agoracad.blogspot
Codare placuta!
Citeste articolul...

miercuri, mai 20

DWG TrueView 2010 – bun si gratis

DWG TrueView 2010 este solutia gratuita de la AutoDesk pentru deschiderea, printarea si conversia intre versiuni a desenelor DWG salvate nativ de AutoCAD si fratii lui specializati (Architecture, Mechanical, Electrical, Map etc).
DWG TrueView 2010 are la origini doua trueview2010softuri publicate de AutoDesk prin 2005 - DWGTrueConvert si DWGTrueView. Intre timp cele doua s-au unit (cred ca anul trecut) si au format un produs nou care include ambele functiuni majore (vizualizare si conversie).
Dar sa vedem mai exact ce stie sa faca:
  • deschide orice DWG inclusiv cele create cu ACAD2010
  • printeaza DWG-uri (inclusiv Layouturi)
  • exporta PDF si DWF
  • ofera cateva posibilitati de interactiune cu desenele
  • coverteste desenele format DWG intre diferitele generatii
Interfata este tip “ribbon” si ofera acces direct la aproape toate instrumentele (care oricum nu sunt foarte multe).
DWGTrueView_ribbon01
DWGTrueView_ribbon02
Navigarea, layerele, masurarea si OSNAP-ul functioneaza ca in AutoCAD.
Scopul softului este sa usureze cooperarea intre toate partile implicate intr-un proiect fara a avea neaparat AutoCAD instalat si/sau fara a avea tot timpul ultima versiune.
Avantaje:
  • este gratuit
  • este produs de AutoDesk deci posibiliatea erorilor in citirea si conversia DWG-urilor este teoretic mai mica
  • face conversia intre orice versiuni de DWG (ex: poti sa ai instalat ACAD 2006 si sa deschizi oricand un desen salvat cu ACAD 2008)
  • vede si poate printa Layout-urile din desen cu setarile salvate (nu mai e nevoie de AutoCAD pentru a printa DWG-uri)
  • publica PDF si DWF
  • pot fi facute masutratori precise in desen cu instrumentele Measure si OSNAP activat (distanta, unghi, raza, suprafata, volum)
In sectiunea noastra de Download este un link direct catre pagina Autodesk de unde se poate descarca.
Citeste articolul...