Sunteți pe pagina 1din 7

Dumitru Dragomir TCCN Sem.

1 C4 1
Curs Nr.4

Cap.2. Interfaarea aplicaiilor
2.1. Generaliti
Prin interfaarea aplicaiilor se nelege realizarea conexiunilor de comunicare ntre
aplicaiile executate pe calculator.
n sens larg, aceasta poate nsemna de la simplul transfer de date ntre aplicaii diferite,
pn la executarea automatizat a unui lan complex de lucrri la care particip aplicaii diverse.
Interfaarea aplicaiilor este n sine o aplicaie, de la cel mai simplu nivel al unor manevre
efectuate de operator i pn la programe de comand i control a mai multor aplicaii.
Din punct de vedere ingineresc nevoia de construire i utilizare a interfarilor apare
prin natura complex a activitilor de proiectare din inginerie, activiti care nu sunt
ntotdeauna acoperite de facilitile oferite de programele folosite n proiectare. Mai exact, din
totalitatea facilitilor necesare atingerii unui obiectiv de proiectare, unele sunt coninute de
un program, altele de altul, etc. Pentru a putea parcurge ntreg lanul de lucrri necesar,
proiectantul trebuie s lucreze cu diferite programe, ntr-o succesiune ca aceea din figura 1:


Fig. 1.

unde:
M
1
, , M
n
sunt module de aplicaie sau aplicaii de sine stttoare;
F
1
, , F
n-1
sunt fiiere de date.
n aceast schem un modul M
i
produce fiierul de date F
i
care servete ca fiier de
date de intrare pentru modulul M
i+1
, etc.
Preluarea datelor dintr-un fiier F
i
se poate face direct dac modulul M
i+1
le accept n
formatul n care au fost produse. n cazul nepotrivirii formatului datele trebuie convertite n
alt format. n acest caz M
i+1
trebuie s fie un program de conversie, F
i+1
fiind datele
convertite, iar programul (modulul) beneficiar al datelor convertite va fi M
i+2
.
Schema din figura 1 poate fi denumit structur liniar.
Din cele mai diverse motive, aplicaiile inginereti complexe sunt adesea iterative,
corespondena cu sarcinile de proiectare impuse fiind testat de ctre un modul de validare
care poate decide reluarea lanului de lucrri cu datele de intrare modificate n conformitate cu
deciziile rezultate dintr-o analiz de validare coninut de modulul ultim M
n
, ca n figura 2,
constituind o structur de lucru zis inelar.


Fig. 2.

n ce privete mecanismele de implementare a interfarii ele sunt dintre cele mai
diverse, de la limbajele de comand simple (de tip script vezi cazul fiierelor script din
AutoCAD, pn la module de program scrise n limbaje mai evoluate, cel mai adesea Visual
Basic n care sunt incluse i comenzi de activare de programe externe.

Dumitru Dragomir TCCN Sem. 1 C4 2

Fig. 3.

n acest caz putem vorbi de o structur subordonat (supervizat) inelar n care, un
modul supervizor S lanseaz n lucru programe sau secvene de programe externe S
j
n funcie
de nevoile survenite n cadul supervizorului S.
n fine, toate dintre cele trei tipuri de structuri ilustrate n figurile 1, 2 i 3 pot fi
combinate sau pot fi ncuibate pe un anumit numr de nivele pentru a realiza sarcina dorit.
Pentru a stabili modul de implementare a interfarii trebuie, n prealabil, s fie luate
n considerare urmtoarele:
- sarcina (sau complexul de sarcini) de realizat;
- fluxul operaiilor de realizat;
- programele implicate pe fluxul de operaii;
- punctele de cuplare ale fluxului (locurile din flux unde se termin aplicabilitatea unui
program i ncepe aplicabilitatea altuia);
- zonele moarte ale fluxului (poriunile din flux neacoperite de nici un program i
pentru care trebuie create programe specifice);
- incompatibilitile de format, adic nepotrivirile ntre natura i sintaxa datelor de
ieire produse de un modul aplicativ i a datelor de intrare n modulul urmtor, loc din flux
unde trebuie intervenit folosind convertoare de format, dac acestea exist, sau trebuie creat
un convertor de format dac nu exist unul adecvat.
n urmtoarele capitole vom prezenta cteva modaliti de interfaare ale unora dintre
cele mai folosite programe de proiectare.
Vom realiza aceast prezentare prin exemple concrete, pe cazuri ct mai simple i, n
acelai timp, ct mai reprezentative.
Acolo unde va fi necesar, dat fiind caracterul puternic interdisciplinar al acestui
demers, vom face aprofundrile minimale necesare.

2.2. Interfaarea direct prin fiiere de date
Aceasta este calea de interfaare cea mai simpl i const din utilizarea comenzilor de
tip File/Export i File/Import acolo unde ele exist n programele de pe fluxul de proiectare.
Problema este rezolvat de ctre realizatorii programelor de proiectare i nu necesit
nici o discuie n acest capitol.

2.3. Interfaarea prin fiiere de comenzi
2.3.1. Interfaare EXCEL AutoCAD folosind fiier SCRIPT
Programul AutoCAD folosete de foarte mult vreme o tehnic simpl aa numit a
fiierelor SCRIPT sau fiier de comenzi scrise. Aceast tehnic dateaz din vremea anilor 80
i nceputul deceniului 1990 cnd sistemul de operare era sistemul DOS (Disc Operating
System), iar dispozitivul mouse era nc o raritate. La acea vreme, comenzile AutoCAD-ului
erau introduse manual prin scriere n linia de comand sau prin selectare din meniu folosind
tastele. n acele condiii, utilizatorii cunoteau pe de rost comenzile i erau capabili s le scrie
n detaliu. De aici i pn la a scrie o list complet de comenzi care s poat fi ncrcat i
rulat nu mai era dect un pas, efectuat prin utilizarea fiierelor SCRIPT.
Pentru corecta desfurare a execuiei succesiunii de comenzi scrise este obligatoriu ca
ele s fie scrise fr greeal, exact n forma n care ar fi introduse de la tastatur prin scriere
n linia de comand.
Dumitru Dragomir TCCN Sem. 1 C4 3
Chiar dac aceasta este o tehnic de lucru depit, implicnd faza laborioas i
plictisitoare a scrierii manuale, ea poate cpta valene noi folosind tehnici noi de lucru, cum
este tehnica de autocompletare a celulelor din EXCEL.
O asemenea tehnic o vom folosi n aplicaia urmtoare.

2.3.1.1. Interfaare prin scrierea manual a fiierului SCRIPT

Crearea unui fiier baz de date.
Acest lucru se poate face cu un fiier Excel
organizat astfel:
- Fiierul conine o singur foaie n care pe
coloanele 1, 2 i 3 sunt nscrise coordonatele
normalizate ale unei nave cu L=1, B=1 i T=1;
- Nava este descris prin cuple. Mai puin prima
cupl, toate celelalte sunt precedate de caracterul F
scris n celula de pe coloana 1 anterioar primului
punct al seriei care descrie cupla;
- La sfritul seriilor de date, n prima celul de pe
ultimul rnd este plasat caracterul E.
n acest mod nava este descris printr-un singur
grup de curbe de seciune.
- n celula de pe coloana 4 a primului rnd este
introdus valoarea lungimii navei. Celula primete
numele Lung;
- n celula de pe coloana 5 a primului rnd este
introdus valoarea limii navei. Celula primete
numele Lat;


Fig.4.
- n celula de pe coloana 6 a primului rnd este introdus valoarea pescajului navei.
Celula primete numele Pesc;
- n celula de pe coloana 4 a unui rnd cu coordonate se introduce formula
=celulax*Lung , unde celulax este referina celulei care conine coordonata normalizat x.
De exemplu n celula D2 se va gsi formula =A2*Lung;
- n celula de pe coloana 5 a unui rnd cu coordonate se introduce formula
=celulay*Lat/2 , unde celulay este referina celulei care conine coordonata normalizat y.
De exemplu n celula E2 se va gsi formula =B2*Lat/2;
- n celula de pe coloana 6 a unui rnd cu coordonate se introduce formula
=celulaz*Pesc , unde celulaz este referina celulei care conine coordonata normalizat z. De
exemplu n celula F2 se va gsi formula =C2*Pesc;
Toate celelalte celule cu coordonate transformate se vor autocompleta folosind
facilitatea de extindere a unei formule prin tragere.
De aici ncolo orice modificare a valorilor pentru lungime, lime i pescaj produce
modificarea automat a coordonatelor transformate.
Foaia Sheet1 a documentului Corp.xls va arta ca n figura 1.
Setul complet de date pentru forma adimensionalizat (numai coloanele A, B i C) este
cel din tabelul 1.
Pentru a desena n AutoCAD curba unei coaste putem folosi comanda 3DPOLY i
proprietatea de repetare a unei comenzi la apsarea tastei ENTER (introducerea unei linii noi)
sa la apsarea tastei spaiu. ncheierea comenzii se face prin apsarea tastei ENTER.
Aadar, o linie nou care conine un singur caracter spaiu ncheie comanda anterioar
i iniiaz repetarea ei fr s mai fie necesar scrierea numelui comenzii.


Dumitru Dragomir TCCN Sem. 1 C4 4
Tabelul 1.
A B C A B C A B C
2 0 0 1 40 F 78 0.7 1 0.6
3 0 0.01 1 41 0.4 0 0 79 0.7 1 0.8
4 0 0.03375 1.2 42 0.4 0.85 0 80 0.7 1 1
5 0 0.0573 1.4 43 0.4 1 0.2 81 0.7 1 1.2
6 0 0.12 1.6 44 0.4 1 0.4 82 0.7 1 1.4
7 F 45 0.4 1 0.6 83 0.7 1 1.6
8 0.1 0 0 46 0.4 1 0.8 84 F
9 0.1 0.025 0 47 0.4 1 1 85 0.8 0 0
10 0.1 0.2375 0.2 48 0.4 1 1.2 86 0.8 0.320916 0
11 0.1 0.30125 0.4 49 0.4 1 1.4 87 0.8 0.587392 0.2
12 0.1 0.330625 0.6 50 0.4 1 1.6 88 0.8 0.6625 0.4
13 0.1 0.358125 0.8 51 F 89 0.8 0.740625 0.6
14 0.1 0.394375 1 52 0.5 0 0 90 0.8 0.83125 0.8
15 0.1 0.442406 1.2 53 0.5 0.85 0 91 0.8 0.93 1
16 0.1 0.519197 1.4 54 0.5 1 0.2 92 0.8 0.98375 1.2
17 0.1 0.62875 1.6 55 0.5 1 0.4 93 0.8 1 1.4
18 F 56 0.5 1 0.6 94 0.8 1 1.6
19 0.2 0 0 57 0.5 1 0.8 95 F
20 0.2 0.35 0 58 0.5 1 1 96 0.9 0 0
21 0.2 0.66934 0.2 59 0.5 1 1.2 97 0.9 0.0375 0
22 0.2 0.72875 0.4 60 0.5 1 1.4 98 0.9 0.19 0.2
23 0.2 0.75625 0.6 61 0.5 1 1.6 99 0.9 0.239541 0.4
24 0.2 0.77875 0.8 62 F 100 0.9 0.315625 0.6
25 0.2 0.80875 1 63 0.6 0 0 101 0.9 0.45125 0.8
26 0.2 0.84375 1.2 64 0.6 0.85 0 102 0.9 0.6475 1
27 0.2 0.885625 1.4 65 0.6 1 0.2 103 0.9 0.796875 1.2
28 0.2 0.929375 1.6 66 0.6 1 0.4 104 0.9 0.8725 1.4
29 F 67 0.6 1 0.6 105 0.9 0.904375 1.6
30 0.3 0 0 68 0.6 1 0.8 106 F
31 0.3 0.7125 0 69 0.6 1 1 107 1 0 1
32 0.3 0.96625 0.2 70 0.6 1 1.2 108 1 0.328125 1.1
33 0.3 0.98375 0.4 71 0.6 1 1.4 109 1 0.4125 1.2
34 0.3 0.9935 0.6 72 0.6 1 1.6 110 1 0.483667 1.3
35 0.3 0.9985 0.8 73 F 111 1 0.531232 1.4
36 0.3 1 1 74 0.7 0 0 112 1 0.5625 1.5
37 0.3 1 1.2 75 0.7 0.62 0 113 1 0.5875 1.6
38 0.3 1 1.4 76 0.7 0.9375 0.2 114 E
39 0.3 1 1.6 77 0.7 0.98625 0.4 115

Prin urmare se poate proceda astfel:
Numai la nceput, n celula G1 se scrie numele comenzii 3dpoly.
n celula G2 se scrie formula =D2&","&E2&","&F2.
Folosind tehnica de autocompletare din EXCEL sau comanda Copy/Paste se extinde
formula pe toate rndurile pe care exist coordonate x,y,z.
Pe rndurile unde coordonatele lipsesc i este prezent inscripia F se introduce un
spaiu. Acest lucru se poate face o singur dat la primul astfel de rnd, n cazul nostru rndul
7, dup care cu Copy/Paste se copiaz rndul de cte ori este necesar.
Acum fiierul Corp.xls arat ca n fig. 5.
n final se selecteaz de pe coloana G toate rndurile cu date (inclusiv rndul 114 care
pe coloana A conine inscripia E i se aplic comanda Copy.
Dumitru Dragomir TCCN Sem. 1 C4 5


Fig.5.

Se deschide programul Notepad unde se aplic comanda Paste i se salveaz cu
numele Corp.scr. Aspectul coninutului fiierului Corp.scr este redat parial mai jos:

3dpoly
0,0,8
0,0.2,8
0,0.675,9.6
0,1.146,11.2
0,2.4,12.8

10,0,0
10,0.5,0
10,4.75,1.6
10,6.025,3.2
10,6.6125,4.8
10,7.1625,6.4
10,7.8875,8
10,8.84812,9.6
10,10.38394,11.2
10,12.575,12.8

Tot ce mai rmne acum de fcut este s se deschid programul AutoCAD i s se
lanseze comanda Tools/Run Script ncrcnd fiierul Corp.scr.

2.3.1.2. Interfaare prin scrierea automat a fiierului SCRIPT
Dup cum se constat, tehnica de lucru de mai sus presupune o anumit cantitate de
manoper care crete o dat cu creterea dimensiunii problemei, pn la a deveni obositoare.
De aceea, ori de cte ori este posibil, manualitatea trebuie nlocuit de automatizare.
Acest lucru este posibil n cazul operaiilor de rutin, repetitive, iar cazul de mai sus
este n mod clar unul potrivit pentru automatizare.
Deoarece EXCEL include faciliti de programare i deoarece conine baza de date
primar asupra creia programul trebuie s lucreze, vom prezenta un program n VBA (Visual
Basic for Applications) al crui rol este de a genera automat fiierul de comenzi Corp.scr.
n editorul de Visual BASIC din EXCEL, se creaz modulul de program Module1, n
care se scrie subrutina de mai jos. Rolul acestei subrutine este acela de a scrie fiierul script
Dumitru Dragomir TCCN Sem. 1 C4 6
care va conine comenzile i datele necesare pentru a genera o serie de polilinii 3D care vor
materializa cuplele descrise n fiierul Excel.

Sub Scrie_script()
Dim Celula As Object
Set Celula = Application.Worksheets("Sheet1").Cells
cale = "C:\Tccn\G2141a\Cad\Corpacad.scr"
Open cale For Output Access Write Lock Write As #1
Print #1, "vpoint 1,0,0"
Print #1, "3dpoly"
gatafisier = False
gatapline = False
i = 2
While Not gatafisier
cel = Celula(i, 1)
If cel = "E" Then
gatafisier = True
gatapline = True
Else
If cel = "F" Then gatapline = True
End If
If gatapline Then
Print #1, ""
If Not gatafisier Then
Print #1, "3dpoly"
gatapline = False
End If
Else
x = Trim(CStr(Celula(i, 4)))
y = Trim(CStr(Celula(i, 5)))
z = Trim(CStr(Celula(i, 6)))
Print #1, x; ","; y; ","; z
End If
i = i + 1
Wend
Print #1, "zoom all"
Close #1
Set Celula = Nothing
Shell "C:\Program Files\AutoCAD R14\acad.exe /b C:\TCCN\G2141a\CAD\corpacad.scr", _
vbNormalFocus
End Sub

Fiierul Corpacad.scr va avea coninutul de mai jos, prezentat prin extrasul
nceputului i sfritul fiierului:
vpoint 1,0,0
3dpoly
0,0,8
0,0.1,8
0,0.3375,9.6
0,0.573,11.2
0,1.2,12.8

3dpoly
10,0,0
10,0.25,0
10,2.375,1.6
10,3.0125,3.2
10,3.30625,4.8
10,3.58125,6.4
10,3.94375,8
10,4.42406,9.6
10,5.19197,11.2
10,6.2875,12.8
Dumitru Dragomir TCCN Sem. 1 C4 7

3dpoly
20,0,0
20,3.5,0
20,6.6934,1.6
20,7.2875,3.2
20,7.5625,4.8
20,7.7875,6.4
..
90,8.725,11.2
90,9.04375,12.8

3dpoly
100,0,8
100,3.28125,8.8
100,4.125,9.6
100,4.83667,10.4
100,5.31232,11.2
100,5.625,12
100,5.875,12.8
zoom all

Instruciunea Shell situat naintea sfritului
subrutinei lanseaz n lucru programul AutoCAD cu
ncrcarea i execuia fiierului Corp.scr. Calea
ctre fiier C:\TCCN\G2141a\CAD\corpacad.scr
trebuie nlocuit cu calea specific pentru fiecare
utilizator.

Fig.6.

2.3.1.3. Crearea interfeei de aciune sub Excel
Folosind facilitatea de creare a diagramelor din
Excel (Chart Wizard), se creaz diagrama din figura
6 pentru planul de forme normalizat.
La aceast diagram se folosesc numai valorile
pentru y i z (coloanele B i C) n serii de date
separate pentru fiecare coast n parte.
Se pornete de la o singur serie de date (prima coast) apoi, dup ncheierea
procedurii de creare a diagramei, se acceseaz diagrama selectnd curba trasat i acionnd
comanda Chart>Source Data. Din cutia de dialog Source Data, se selecteaz pagina Series
i se folosete butonul Add pentru a defini i aduga noi serii de date.
Dup crearea diagramei, folosind meniul contextual (clic pe butonul dreapta cu
cursorul poziionat pe obiectul grafic diagram), articolul Assign Macro, se asociaz
macrocomanda Scrie_script cu diagrama.
n acest mod, diagrama capt rolul unui buton de comand pentru generarea fiierului
script, dar totodat i de lansare n execuie a programului AutoCAD, ncrcarea i execuia
comenzilor din fiierul script.
Putem sintetiza tehnica prezentat mai nainte prin schema din figura 7.



Fig. 7.

Se observ c motorul aplicaiei este programul EXCEL care controleaz att datele
ct i generarea comenzilor de lucru ale AutoCAD-ului, acesta din urm fiind doar un
executant.