Sunteți pe pagina 1din 10

ANEXA 1

AutoCAD IMPEX!

IMPORT/EXPORT VIA "DXF"


1.Introducere
Dup cum tim, AutoCAD poate fi folosit cu succes pentru crearea de desene. Totui, n unele
aplicaii, alte programe trebuie s examineze desenele create de AutoCAD sau s le genereze pentru a
fi apoi vizualizate, modificate sau reproduse pe plotter cu AutoCAD.
De exemplu, dac ai fcut un desen de arhitectura cu AutoCAD folosind componente de
biblioteca pentru a reprezenta ferestre, ui, etc. putei dori s procesai fiierul de desen pentru a face o
lista a tuturor elementelor folosite n desen sau chiar calculele privind pierderile de cldura bazate pe
aria, tipuli numrul de ferestre folosite.
O alt aplicaie posibil este aceea in care folosii AutoCAD-ul pentru a crea structuri care
apoi sunt introduse intr-un computer mai puternic pentru o analiz structural a elementelor
componente. Putei calcula solicitarea la care sunt supuse, precumi deplasrile, transmind apoi
informaiile napoi n AutoCAD care va afia structurile deformate.
ntruct "baza de date" coninut de orice desen fcut cu AutoCAD-ul este stocat intr-un
format foarte compact, este greu pentru programele utilizatorului s o citeasca direct. n plus, diferite
implementri ale AutoCAD-ului pe diferite calculatoare pot folosi formate interne diferite pentru
"baza de date", create pentru a obine performane maxime pe calculatorul pe care se lucreaz.
Toate prelucrrile de acest gen se numesc import/export de desene .
Pentru a asigura transportul ntre diferite implementri ale AutoCAD-ului pe diferite
calculatoare, sau intre AutoCADi alte programe, a fost definit formatul standard de fiier numit
"Drawing Interchange", pe scurt "DXF". Toate implementrile AutoCAD-ului accepta acest formati
sunt capabile s-l transforme n i din formatul intern de fiier "desen" (drawing). Aa cum se va
vedea acest fiier este un fiier ASCII, perfect citibil si de ctre utilizator. El poate fi puri simplu
editat, modificat, totul dovedindu-se de mare efect cnd desenul este reluat cu AutoCAD.

1.1 Comanda DXFOUT- crearea unui fiier DXF


Se poate crea un fiier DXF dintr-un desen existent folosind comanda DXFOUT. Formatul
comenzii este :
Command : dxfout
1

File name <nume_implicit>: ( nume sau RETURN )


Numele implicit pentru fiierul ce se va scrie pe disc este acelai cu al desenului curent, dar cu
extensia ".DXF". Dac se specifica un nume explicit al fiierului nu se include extensia, se
subntelege ".DXF". Dac deja exista un fiier cu acelasi nume el va fiters fara avertisment.

1.2 Comanda DXFIN - incrcarea unui fiier DXF


Un fiier de desen interschimbabil poate fi transformat, invers, intr-un desen AutoCAD prin
comanda DXFIN. Mai nti se intr in AutoCAD folosind optiunea 1 din Main Menu (Create a new
drawing). Apoi se d comanda :
Command: dxfin
File name <nume implicit>: (nume sau RETURN)
Se scrie numele fiierului DXF care va fi ncrcat; numele implicit este cel al fiierului
proaspt deschis. Comanda DXFIN poate fi folosit doar pentru un desen proaspt creat, nainte ca
vreun element s fie creat. Mai mult, desenul este descrcat dac au fost detectate erori. Dac toate
datele introduse sunt valide se execut automat "ZOOM ALL" pentru a se seta limitele desenului.

2. Formatul DXF
Acest paragraf descrie formatul unui fiier "DXF" n detaliu. El conine o mare cantitate de
informaii tehnice care trebuie numai dac se creaza propriile programe pentru procesarea fiierelor
"DXF" .

2.1 Structura generala a fiierelor


Un fiier desen interschimbabil este un fiier de text ASCII cu extensia "DXF"i un format
special de text. Formatul general al unui fiier "DXF" este urmtorul:
1. Seciunea de antet (HEADER): n aceast seciune a fiierului "DXF" se gsesc informaiile
generale despre desen. Fiecare parametru are un nume variabili o valoare asociat.
2. Seciunea de tabele (TABLE): Aceast seciune conine definiii ale elementelor cu nume:
Tabelul cu tipurile de linii(LTYPE)
Tabelul cu LAYERE-le
Tabelul cu STYLE-urile
Tabelul cu VIEW-urile
3. Seciunea de blocuri (BLOCKS): Aceast seciune conine elementele de definire a blocurilor
care descriu fiecare bloc n parte din desen.
4. Seciunea de entiti (ENTITY): Aceast seciune conine elementele desenului, incluznd orice
referina la blocuri.
5. Sfritul fiierului.
2

Un fiier "DXF" este format dintr-o mulime de grupuri, fiecare ocupnd cte doua linii n
fiier. Prima linie a unui grup este codul grupului, care este un numr ntreg nenegativ n formatul
FORTRAN "13" (ceea ce nseamn c este aliniat la dreaptai umplut cu blancuri -la stnga- ntr-un
cmp de trei caractere). A doua linie a grupului este valoarea grupului, ntr-un format care depinde de
tipul grupului specificat de codul asociat.
Iniializrile specifice ale codului grupului depind de elementul care este descris n fiier.
Totui, tipul de valoare pe care o furnizeaz acest grup deriv din codul grupului n modul urmtor:
Gama de coduri

Valoarea

0- 9

ir de caractere

10 - 59

Numr real

60 -79

Numr intreg

Astfel, un program poate citi uor valoarea ce urmeaz unui cod de grup, fr a cunoate
utilizarea specific a acestui grup ntr-un articol din fiier. Valorile din fiierul "DXF" nu sunt afectate
de aplicarea comenzii "UNITS": coordonatele sunt reprezentate ca numere zecimale (sau n
formattiinific, dac sunt foarte mici), iar unghiurile sunt reprezentate ntotdeauna n grade zecimale
cu orientare trigonometric.
Variabilele, intrrile n tabeli entitile sunt descrise de un grup care introduce articolul,
dnd tipuli/sau numele su, urmat de mai multe grupuri care furnizeaz valorile asociate articolului.
In plus, pentru separatori de fiier sunt folosite grupuri speciale cum ar fi indicatorii de nceputi
sfarit al seciunilor, tabelelor si fiierului insui.
Entitile, intrrile n tabeli separatorii de fiier sunt introdui ntotdeauna cu un cod de grup
0 care este urmat de un nume ce descrie articolul.

2.2 Coduri de grup


Codurile de grup sunt folosite att pentru a indica tipul de valoare a grupului cti pentru a
explica utilizarea generala a grupului. Funcia specific a codului de grup depinde de variabila actuala,
articolul de tabel, sau de descrierea entitii. Acest paragraf indic folosirea generala a grupurilor,
notndu-se cu "(fix)" tot ceea ce rmne invariabil .
C0 - Identific inceputul unei entiti, intrarea n tabela, sau separatorul de fiier. Valoarea text
ce urmeaza indic tipul obiectului.
C1 - Valoarea text primar pentru o entitate.
3

C2 - Un nume: eticheta de atribute, numele blocului, etc.


C3-5 - Alte valori text sau nume.
C6 - Numele tipului de linie (fix).
C7 - Numele stilului de text (fix).
C8 - Numele LAYER-ului (fix).
C9 - Identificatorul numelui de variabil (folosit doar n partea de antet a fiierului "DXF")
C10 - Coordonata primar x (punctul de pornire al unei linii sau entiti de text, centrul unui
cerc, etc.).
C11-18 - Alte coordonate x.
C20 - Coordonata primara y. Valorile 2x corespund ntotdeauna valorilor unui x i le succed
imediat in fiier (prin 1x,2x, etc. intelegei un numr de doua cifre n care prima cifr este 1,2,...).
C21-28 - Alte coordonate y.
C30-38 - Rezervat pentru coordonatele z.
C40-48 - Valorile reale (nlimea textului, factorii de scar, etc.).
C49 - Valoare repetat - mai multe grupuri de tipul 49 pot aprea intr-o entitate pentru mai
multe tabelele de lungimi (cum ar fi lungimile ntrerupte din tabelul LTYPE). Un grup de tipul 7x
apare ntotdeauna nainte de primul grup de tipul 49 pentru a specifica lungimea tabelului.
C50-58 - Unghiuri.
C62 - Numarul culorii (fix).
C66 - Indicatorul pentru entitile urmtoare (fix).
C70-78 - Valori intregi, cum ar fi: contorii de repetare, biii indicatori (FLAGs) sau modurile.
Fiierul "DXF" este subdivizat n patru seciuni. Pentru a delimita aceste seciuni, sunt utilizate
grupurile separatoare de fiier. n continuare, iat un exemplu de fiier "DXF" vid, care are doar
indicatorii de seciunii capetele de tabel.
0(nceput seciune antet)
SECTION
2
HEADER
<< Aici vin articolele variabile de antet >>
0
ENDSEC (Sfrit seciune antet)
0(nceput seciune tabele)
SECTION
2
TABLES
0
TABLE
2
LTYPE
4

70
(Numr maxim articole tabel cu tipuri de linie)
<<Aici vin articolele de tabel cu tipuri de linie>>
0
ENDTAB
0
TABLE
2
LAYER
70
(Numr maxim articole tabel LAYER)
<< Aici vin articole tabel LAYER>>
0
ENDTAB
0
TABLE
2
STYLE
70
(Numr maxim aticole tabel stiluri de text )
<<Aici vin articole tabel stiluri de text >>
0
ENDTAB
0
TABLE
2
VIEW
70
(Numr maxim articole tabel view)
<< Aici vin articole tabel view>>
0
ENDTAB
0
ENDSEC(Sfrit seciune tabele)
0(nceput seciune blocuri)
SECTION
2
BLOCKS
<<Aici vin entitile de definire a blocurilor >>
0
ENDSEC(Sfrit seciune blocuri )
0(nceput seciune entiti )
SECTION
2
ENTITIES
<<Aici vin entitile de desen>>
0
ENDSEC(Sfrit seciune entiti)
0
EOF(Sfrit fiier).
5

2.3 Seciunea Antet (Header)


Seciunea HEADER a fiierului "DXF" conine setrile de variabile asociate desenului. Aceste
variabile sunt setate prin diferite comenzii reprezint tipul de informaii afiate prin comanda
STATUS. Fiecare variabil este specificat in seciunea de antet printr-un grup 9, care i d numele
numele urmat de grupuri care i dau valoare.

2.4 Sectiunea de tabele


Seciunea de tabele a fiierului DXF conine patru tabele care la rndul lor conin un numr
variabil de intrri de tabel. ntotdeauna tabelele apar n ordinea dat de fiierul model de mai sus.
Fiecare tabel din seciunea TABLES este introdus cu un grup 0, purtnd eticheta "TABLE". Aceasta
este urmat de un grup 2 care numete tabelul (" LTYPE", "LAYER", "STYLE", sau "VIEW"),i un
grup 70 care specifica numarul maxim de intrri de tabela care pot urma. Tabelele dintr-un desen pot
conine articoleterse, ns acestea nu sunt scrise n fiierul DXF. Astfel, numrul actual de articole
care urmeaz dup nceputul de tabel poate fi mai mic dect numrul dat in grupul 70, aa c nu
folosii numrarea in grupul 70 ca index de citire in tabel. Lucrurile sunt concepute aa pentru ca
programul care va citi fiierul DXF s poat aloca un tablou care s conin toate articolele ce vor
urma n tabel.
Dup aceste capete de tabel urmeaz intrrile de tabele. Fiecare articol de tabel este format
dintr-un grup 0 care identific tipul articolului (la fel ca numele tabelului, "LTYPE" sau "LAYER"),
un grup 2 care d numele intrrii de tabeli un grup 70 care specific indicatorii referitori la intrarea
de tabel (definii pentru fiecare tabel mai jos), precumi grupuri adiionale care dau valoarea intrrii
de tabela. Sfritul fiecrei tabele este indicat de un grup 0 cu valoarea "ENDTAB" .
In continuare se dau grupurile folosite pentru fiecare tip de articol din tabela. Toate grupurile
sunt prezente pentru fiecare articol de tabel.
LTYPE:
C3 (descrierea n cuvinte a tipului liniei)
C72 (codul de aliniere)
C73 (numrul articolelor cu linii intrerupte )
C40 (totalul lungimilor de pattern)
C49 (lungimea liniei ntrerupte 1)
C49 (lungimea liniei ntrerupte 2).a.m.d.
LAYER:
C40 (nlimea fixat a textului; 0 dac nu este fixat)
C50 (unghiul de nclinare)
6

C71 (indicatorii de generare a textului)


C42 (ultima nlime folosit)
C3 (fonturile de text sau numele fiierului de forme).
Un articol de tabela STYLE este folositi pentru a reine cerinele LOAD ale fiierului de forme. n
acest caz bitul 1 este setat n indicatorii grupului 70i doar grupul 3 este semnificativ (toate celelate
grupuri sunt de ieire).
VIEW 40 (nlimea vertical a imaginii), 10i 20 (punctul central al imaginii).

2.5 Seciunea de blocuri


Seciunea BLOCKS a fiierului DXF conine toate definitiile de blocuri. Aceast seciune
conine entitile care formeaz blocurile folosite in desen. Formatul entitilor din aceast seciune
este identic cu acela din seciunea ENTITIES descris mai jos. Toate entitile din seciunea BLOCKS
apar ntre entitile BLOCKi ENDBLK. Entitile BLOCKi ENDBLK apar numai n seciunea
BLOCKS. Definiiile de blocuri nu sunt niciodat imbricate (adic nici o entitate BLOCK sau
ENDBLK nu apare nuntrul altei perechi BLOCK-ENDBLK).

2.6 Seciunea de entitati


Articolele entitate apar att n seciunea de blocuri cti n cea de entiti ale fiierului DXF.
Apariia entitilor n cele dou seciuni este identic. Mai jos se d formularul fiecrei entiti pe
masur ce acestea apar in fiier. Unele grupuri care definesc o entitate apar ntotdeauna, iar altele sunt
opionalei apar doar dac difera de valorile lor implicite. Grupurile care apar totdeauna sunt date prin
numrul lor de grupi funcia indeplinit n timp ce grupurile opionale sunt indicate prin "- opional
X" care succede descrierea grupului n care, dac grupul este omis, X este valoarea implicita.
n logica programelor care citesc fiiere DXF nu trebuie s se considere aprioric c grupurile
care descriu o entitate apar in ordinea prezentat aici. Sfritul grupurilor care compun o entitate este
indicat de urmtorul grup 0, de nceputul unei noi entiti, sau de indicarea sfritului seciunii .
De reinut c un fiier DXF este o reprezentare complet a informaiilor coninute n deseni c
pe masur ce AutoCAD-ul se dezvolta, noi grupuri vor fi adugate entitilor pentru a le adapta
noilor caracteristici.
Fiecare entitate incepe cu un grup 0 care identific tipul entitii. Numele folosite pentru
entiti sunt date n tabelul care urmeaz. Toate entitile contin un grup 8 care d numele layer-ului n
care se afl entitatea. Celelalte grupuri care compun un articol entitate sunt urmtoarele:
CLINE 10i 20 (punct de nceput), 11i 21 (punct de sfrit).
CPOINT 10i 20
7

CCIRCLE 10i 20 (centru), 40 (raza)


CARC 10i 20 (centru), 40 (raza), 50 (unghi de nceput), 51 (unghi de sfrit).
CTRACE Patru puncte care definesc colurile TRACE-ului: 10i 20, 11i 21, 12i 22, 13i 23.
CSOLID Patru puncte care definesc colurile SOLID-ului: 10i 20, 11i 21, 12i 22, 13i 23.
Dac solidul are trei laturi, coordonatele specificate de grupurile 12i 22 i de 13i 23 vor fi aceleai
(grupurille 12i 13 sunt aceleai, grupurile 22i 23 sunt aceleai)
CREPEAT Fr grupuri
CENDREP 70( numrul coloanelor ), 71 ( numrul sirurilor ), 40 (coloane n spaiu), 41
(iruri n spaiu ).
CTEXT 10i 20 (punct de inserie), 40 (nlime), 1 (textul n sine), 50 (unghi de rotaie opional 0), 41 (factorul relativ al scrii X -opional 1), 51 (unghi de inclinare - opional 0), 7 (numele
tipului de text - opional "STANDARD"), 71 (indicatori de generare - optional 0), 72 (tipul alinierii opional 0), 11i 21 (punct de aliniament - opional, apare doar dac grupul 72 existi este nenul).
CSHAPE 10 si 20 (punct de inserie), 40 (mrime), 2 (numele formei), 50 (unghiul de rotatie opional 0), 41 (factorul relativ al scrii X -opional 1), 51 (unghiul de inclinare).
CBLOCK 2 (numele blocului), 70 (indicatorii tipului de bloc), 10i 20 (punctul de baza al
blocului ). Apare doar n seciunea BLOCKS.
CENDBLK Nici un grup. Apare doar n seciunea BLOCKS.
CINSERT 66 (indicatorul "Urmeaz atributele " - opional 0), 2 (numele blocului), 10i 20
(punctul de inserie ), 41 (factorul scrii X -opional 1), 42 (factorul scrii Y - opional 1), 50
(unghiul de rotaie - opional 0).
CATTDEF 10i 20 (nceput de text), 40 (inlimea textului), 1 (valoarea implicit), 3
(nceputului liniei), 2 (sfritul liniei), 70 (indicatori de atribut), 73 (lungimea cmpului - opional 0),
41 (factor relativ al scrii X),50 (rotaia textului - opional 0), 51 (unghiul oblic - opional 0), 7
(numele tipului de text - opional "STANDARD"), 71 (generarea indicatorilor de text - opional 0), 72
(tipul justificrii textului - opional 0), 11i 21 (punct de aliniament - opional, apare numai dac
grupul 72 existi este nenul).
CATTRIB 10i 20 (nceput de text), 40 (nlimea textului), 1 (valoarea implicit), 2 (sfritul
atributului), 70 (indicatori de atribut), 73 (lungimea cmpului -opional 0), 50 (rotaia textului optional 0), 7 (numele tipului de text - opional "STANDARD"), 71 (generarea indicatorilor de text opional 0), 72 (tipul justificrii textului - opional 0), 11i 21 (punct de aliniament - opional, apare
numai dac grupul 72 existi este nenul).
CSEQEND Nici un cmp. Aceast entitate marcheaz sfritul entitilor atribut care urmeaz
unei entiti INSERT care are atribute (indicate de grupul 66 prezenti nenul n entitatea INSERT).
8

2.7 Definiiile indicatorilor de entiti


Articolele entiti listate mai sus folosesc felurite valori "indicatoare" ("flag"-uri). Acestea
sunt coduri ntregi (grupuri 6x sau 7x) care codifica nformaiile privitoare la entitate. Urmtoarele
paragrafe descriu semnificaia grupurilor indicatoare folosite in entiti. n acest context, termenul cu
"bit coded" arat c indicatorul conine diferite valori adevrat/fals, codificat ca sum a valorii de bii
date. Toi biii care nu sunt definii n seciunea urmtoare trebuie ignoraii setai pe 0 atunci cnd se
construiete un fiier DXF.
Indicatorul "Urmeaz atribute"
Este un grup 66, opional, folosit doar ntr-o entitate INSERT. Dac valoarea care urmeaz
este 1, entitile atribuite (ATTRIB) vor trebui s urmeze entitii INSERT.
Indicatori de atribut
Este un grup 70 care apare n entitile ATTDEFi ATTRIB. Acesta este un cmp codificat, n
care 1 arat c atributul este invizibil (nu este afiat), 2 arat c atributul este constanti 4 arat c la
introducerea acestui atribut este necesar o verificare .
Indicatorii generrii de text
Acesta este un grup 71 opional, care apare n entitile TEXT, ATTDEFi ATTRIB. Codurile
sunt urmtoarele: 2 indic "oglindirea" textului n direcia X, 4 indic generarea textului de sus n jos.
Tipul de aliniere a textului
Acesta este un grup 72, opional, care apare n entitile TEXT, ATTDEFi ATTRIB. Valoarea
lui (necodificat) indic tipul de aliniere a textului folosit n entitatea respectiv: 0- aliniere stnga, 1centrat, 2- aliniere dreapta, 3- specific text "aligned". Dac acest grup are o valoare diferit de zero,
grupurile 11i 21 vor aprea n entitatei vor specifica punctul de aliniere a textului (centru, punctul
cel mai din dreapta sau al doilea punct al subopiunii "aligned").
Indicatorii tipului de bloc
Acesta este un grup 70 care apare n entitile BLKDEF. Codurile lui sunt urmtoarele: 1 arat
c este un bloc "anonim" generat prin haurare sau alte operaii interne, 2 arat c blocul respectiv
posed atribute.

3. Scrierea programelor de interfa DXF


Scrierea unui program care comunic cu AutoCAD prin mecanismul DXF pare adesea mult
mai dificil dect este n realitate. Fiierul DXF conine o cantitate copleitoare de informaii, aa
nct examinarea lui manual poate fi considerat pe drept cuvnt migaloasi ineficient. Fiierele de
acest gen au fost, ins, astfel concepute, nct procesarea lor s fie foarte comod prin program. La
9

urma urmelor, programul l faci o singur dati, dac e bine pus la punct, poate fi folosit oricnd cu
mare succes. Cu alte cuvinte, investiia de timpi munc merit s fie fcut doar dac se creaz un
program care s preia munca utilizatorului la modificarea fiierelor DXF. Formatul acestora din urm
a fost conceput n aa fel, nct s poat fi ignorate informaiile neinteresante, putnd fi citite cu
uurin, n schimb, cele utile.
Scrierea unui program care creaz un fiier DXF este relativ dificil, deoarece trebuie
asigurat coerena desenului, astfel nct AutoCAD s-l gseasca acceptabil. AutoCAD permite
omiterea multor articole dintr-un fiier DXF, obinnd totui un desen utilizabil. Poate fi omis
ntreaga seciune HEADER dac nu avei de pus vreo variabil specific. Orice tabel din seciunea
TABLES poate fi omis dac nu avei de fcut vreo nscriere de text. Dac nu este necesar se poate
renuna la ntreaga seciune TABLES. Dac definii tipuri de linii n tabelul LTYPE, acesta trebuie s
apar naintea tabelului LAYER. Dac n desen nu sunt folosite definiiile de blocuri, seciunea
BLOCKS poate fi omis. Dac ea totui exist, trebuie s apar naintea seciunii ENTITIES. n
interiorul seciunii ENTITIES se poate referi la nume de layer-e chiar dac nu au fost definite n
tabelul LAYER. Asemena layer-e vor fi create automat cu culoarea 7 (white)i tipul de linie
CONTINUOUS. La sfritul fiierului trebuie pus articolul EOF.
Comanda DXFIN este relativ nerestrictiv, dac se respect formatul articolelor de date. Atta
timp ct un articol formatat corespunztor, apare pe linia pe care urmeaz s apar data, DXFIN o va
accepta (bineneles, articoleleir nu vor trebui s aib spaii anterioare, cu excepia cazului n care
acestea sunt destinate s aparinirului).
In cazul unei erori de ncrcare a fiierului DXF, folosind DXFIN, AutoCAD raporteaz
eroarea printr-un mesaj indicnd natura erorii gsitei ultima linie procesat n fiierul DXF nainte ca
eroarea sa fie depistat. Aceasta poate s nu fie linia pe care a survenit eroarea, n special n cazurile
n care eroarea provine din omiterea unor grupuri neopionale .

10

S-ar putea să vă placă și