Esercitazioni di Lettura del micrometro centesimale – linguaggio SVG
In questa pagina è riportato il codice scritto per creare degli esercizi di metrologia ad uso scolastico. Gli esercizi possono essere utilizzati come strumento di apprendimento e/o verifica. Lo strumento disegnato è un micrometro centesimale
A parte il disegno dello strumento e l’organizzazione del file contenente le soluzioni la parte più complicata del codice consiste nella realizzazione dei tamburi con graduazione centesimale o cinquantesimale. Sul tamburo la successione delle tacche avviene con una funzione di tipo coseno. Il problema più complicato è che in alcune misure bisogna disegnare l’ultima tacca (la cinquantesima o centesima) e immediatamente dopo la tacchetta dello zero.
Per capire a cosa serve il codice riportato in questa pagina scaricate le verifiche di esempio
Ogni aggiornamento del codice e le nuove versioni delle verifiche, sono postate sulla pagina facebook: www.facebook.com/idroslab
Disegno del calibro con nonio avente 100 divisioni (passo 1 mm)
% Autori
% Prof. Paolo Sordi IPSIA A. Pacinotti, Pontedera (Pisa)
% Prof. Danilo Pasquini IPSIA P.P. Delfino, Colleferro (Roma)
%
function micrometro ()
global larghezza_linea
global altezza_tacche_asta
global altezza_tacche_asta_lunghe
global altezza_tacche_nonio
global larghezza_nonio
global raggio_millimetrato
global raggio_spigolo_nonio
global larghezza_prima_dello_zero
global fid1
global scala
global numero_lettura
global colonne_risultati
global righe_risultati
global matrice_risultati
global numero_esercitazione
numero_lettura = 0;
larghezza_prima_dello_zero = 3;
larghezza_linea = 0.2;
larghezza_dopo_nonio = 14; % l1
larghezza_zigrinato = 24; % l1
larghezza_dopo_zigrinato = 10; % l1
larghezza_attacco_frizione = 3; % l1
larghezza_frizione = 7; % l1
larghezza_battuta_asta = 3;
altezza_tacche_asta = 2;
altezza_tacche_asta_lunghe = 5;
altezza_tacche_nonio = 3;
larghezza_nonio = 15;
raggio_millimetrato = 11;
raggio_spigolo_nonio = 14.5;
scala = 3.54;
altezza_testo = 1.6;
numero_esercitazione = numero_esercitazione + 1;
testo = num2str(ceil(numero_esercitazione));
colonne_risultati = 1;
matrice_risultati (righe_risultati, colonne_risultati) = str2num(testo);
nomefile = ['c:\micro100\100_micro_' testo '.svg'];
nomefile1 = ['c:\micro100\100_micro_' testo '.txt'];
fid = fopen([nomefile], 'wt');
fid1 = fopen([nomefile1], 'wt');
fprintf(fid, ['<!--?xml version="1.0" encoding="iso-8859-1" standalone="no"?--> \n']);
fprintf(fid, ['\n']);
fprintf(fid, ['\n']);
portata_strumento = 2500;
lunghezza_casuale = (ceil (rand*portata_strumento));
colonne_risultati = 1 + colonne_risultati;
matrice_risultati (righe_risultati, colonne_risultati) = lunghezza_casuale;
pos_x = 90;
pos_y = 38;
[fid] = scrivere (fid,30,15,'left',2.5,'Nome: _________________________________________________ Classe: ___________ Data: _____________');
[fid] = scrivere (fid,15,30,'left',2,['Soluzione: ', testo]);
[fid] = scrivere (fid,8,15,'left',6,'A');
[fid] = scrivere (fid,10,283,'right',2.5,'www.tiny.cc/disegno');
[fid] = scrivere (fid,124,282,'right',2,'Autori: Prof. Paolo Sordi ITIS Marconi, Pontedera (Pisa)');
[fid] = scrivere (fid,132,285,'right',2,'Prof. Danilo Pasquini IPSIA P.P. Delfino, Colleferro (Roma)');
disegna_micrometro (fid, pos_x, pos_y, lunghezza_casuale)
fid = rettangolo (fid, pos_x+lunghezza_casuale+larghezza_nonio, pos_y-raggio_spigolo_nonio, ...
larghezza_dopo_nonio , raggio_spigolo_nonio * 2, 0, 0, 0, 0.2);
% a destra del nonio
fid = rettangolo (fid, pos_x+lunghezza_casuale+larghezza_nonio+larghezza_dopo_nonio, pos_y-raggio_spigolo_nonio, ...
larghezza_zigrinato , raggio_spigolo_nonio * 2, 0, 0, 0, 0.2);
fid = rettangolo (fid, pos_x+lunghezza_casuale+larghezza_nonio+larghezza_dopo_nonio+larghezza_zigrinato , pos_y-raggio_spigolo_nonio, ...
larghezza_dopo_zigrinato , raggio_spigolo_nonio * 2, 0, 0, 0, 0.2);
fid = rettangolo (fid, pos_x+lunghezza_casuale+larghezza_nonio+larghezza_dopo_nonio+larghezza_zigrinato , pos_y-raggio_spigolo_nonio, ...
larghezza_dopo_zigrinato , raggio_spigolo_nonio * 2, 0, 0, 0, 0.2);
fid = rettangolo (fid, pos_x+lunghezza_casuale+larghezza_nonio+larghezza_dopo_nonio+larghezza_zigrinato+larghezza_dopo_zigrinato , pos_y-raggio_spigolo_nonio*.4, ...
larghezza_attacco_frizione , raggio_spigolo_nonio*0.8, 0, 0, 0, 0.2);
fid = rettangolo (fid, pos_x+lunghezza_casuale+larghezza_nonio+larghezza_dopo_nonio+larghezza_zigrinato+larghezza_dopo_zigrinato+larghezza_attacco_frizione, pos_y-raggio_spigolo_nonio*0.5, ...
larghezza_frizione , raggio_spigolo_nonio, 0, 0, 0, 0.2);
% a destra del nonio
fid = rettangolo (fid, pos_x+10 - larghezza_prima_dello_zero , pos_y-raggio_millimetrato, ...
10 , raggio_millimetrato * 4, 0, 0, 0, 0.2);
fid = rettangolo (fid, pos_x+10 - larghezza_prima_dello_zero - portata_strumento/100 + lunghezza_casuale , pos_y-raggio_millimetrato*0.3, ...
portata_strumento/100 - lunghezza_casuale , raggio_millimetrato * 0.6, 0, 0, 0, 0.2);
fid = rettangolo (fid, pos_x+10 -larghezza_prima_dello_zero-portata_strumento/100- larghezza_battuta_asta , pos_y+raggio_millimetrato*2.0, ...
portata_strumento/100 + larghezza_battuta_asta , raggio_millimetrato * 1, 0, 0, 0, 0.2);
fid = rettangolo (fid, pos_x+10 -larghezza_prima_dello_zero-portata_strumento/100 - larghezza_battuta_asta , pos_y-raggio_millimetrato*0.3, ...
larghezza_battuta_asta , raggio_millimetrato * 0.6, 0, 0, 0, 0.2);
fid = rettangolo (fid, pos_x+10-10 - larghezza_prima_dello_zero-portata_strumento/100 - larghezza_battuta_asta , pos_y-raggio_millimetrato, ...
10 , raggio_millimetrato * 4, 0, 0, 0, 0.2);
for i=1:4
for j=[20, 90, 160]
lunghezza_casuale = 4 * (ceil (rand*(portata_strumento-2)))/ 100;
colonne_risultati = 1 + colonne_risultati;
matrice_risultati (righe_risultati, colonne_risultati) = lunghezza_casuale;
disegna_micrometro (fid, j, 43+51*i, lunghezza_casuale)
end
end
fprintf(fid, [' \n']);
fclose(fid)
stringa_dos = ['c:\Programmi\Inkscape\inkscape -e ' nomefile ' -E ' 'C:\micro100\100_micro_' testo '.pdf']
dos(stringa_dos)
fclose (fid1)
% -------------------------------------------------------------------------
function disegna_micrometro (fid,pos_x,pos_y,lunghezza)
global larghezza_linea
global altezza_tacche_asta
global altezza_tacche_asta_lunghe
global altezza_tacche_nonio
global larghezza_nonio
global raggio_millimetrato
global raggio_spigolo_nonio
global larghezza_prima_dello_zero
global fid1
global numero_lettura
numero_lettura = numero_lettura + 1;
fid = commento (fid,'*************************** NUOVO MICROMETRO ***************************');
fid = rettangolo (fid,pos_x+larghezza_prima_dello_zero, pos_y-raggio_millimetrato, ...
lunghezza+larghezza_prima_dello_zero, raggio_millimetrato*2, 0, 0, 0, 0.2);
[fid] = scrivere (fid,pos_x+1,pos_y+2 * raggio_millimetrato,'left',3,'misura: _______');
fid = linea (fid,pos_x,pos_y,pos_x+lunghezza,pos_y,180,180,180,larghezza_linea);
for i=0:floor(lunghezza)
tacca = altezza_tacche_asta;
if rem(i,5) == 0
tacca = altezza_tacche_asta_lunghe;
if i + 1 < floor(lunghezza)
[fid] = scrivere (fid,pos_x+i,pos_y+tacca+2,'middle',2,num2str(i));
end
end
fid = linea (fid,pos_x+i,pos_y,pos_x+i,pos_y+tacca, 0, 0, 0,0.1);
end
fid = commento (fid,'spigolo nonio')
fid = rettangolo (fid, pos_x+lunghezza, pos_y-raggio_spigolo_nonio, ...
larghezza_nonio, raggio_spigolo_nonio*2, 0, 0, 0,0.2);
fid = commento (fid,'tacche nonio');
% parte sotto del nonio
centesimo = round((lunghezza - floor(lunghezza))*100);
altezza_testo_nonio = 1.7;
stacchetto = 3;
for i=0:25
tacca_nonio = 3;
tacca_altezza = cos((pi/2) * i / 25) * raggio_spigolo_nonio;
if rem(centesimo-i,5) == 0
tacca_nonio = 6;
numero_nonio = centesimo-i;
if numero_nonio < 0 numero_nonio = numero_nonio + 100; end if numero_nonio > 99
numero_nonio = numero_nonio - 100;
end
if i < 18
[fid] = scrivere (fid,pos_x+lunghezza+tacca_nonio+ stacchetto,pos_y+tacca_altezza,'middle',altezza_testo_nonio,num2str(numero_nonio));
end
end
fid = linea (fid, pos_x+lunghezza, pos_y+tacca_altezza, ...
pos_x+lunghezza+tacca_nonio, pos_y+tacca_altezza,0, 0, 0,0.1);
end
for i=0:25
tacca_nonio = 3;
centesimo+i;
tacca_altezza = sin((pi/2) * i / 25) * raggio_spigolo_nonio;
if rem(centesimo+i,5) == 0
tacca_nonio = 6;
numero_nonio = centesimo+i;
if numero_nonio < 0 numero_nonio = numero_nonio * 100; end if numero_nonio > 99
numero_nonio = numero_nonio - 100;
end
if i < 18
[fid] = scrivere (fid,pos_x-lunghezza+tacca_nonio+ stacchetto,pos_y-tacca_altezza,'middle',altezza_testo_nonio,num2str(numero_nonio));
end
end
fid = linea (fid,pos_x+lunghezza, pos_y-tacca_altezza, ...
pos_x+lunghezza+tacca_nonio, pos_y-tacca_altezza, 0, 0, 0, 0.1);
end
fprintf(fid1, ['misura' num2str(numero_lettura) ': ' num2str(lunghezza, '%10.2f') '\n'])
%[fid] = scrivere (fid,pos_x+lunghezza+tacca_nonio + 4+30,pos_y,'middle','7',num2str(lunghezza));
% -------------------------------------------------------------------------
function [fid] = linea (fid,x1,y1,x2,y2,colore1,colore2,colore3,larghezza)
global scala
fprintf(fid, [' \n']);
% -------------------------------------------------------------------------
function [fid] = cerchio (fid,x1,y1,raggio,colore1,colore2,colore3)
global scala
fprintf(fid, [' \n']);
% --------------------------------------------------------------------------
function [fid] = rettangolo (fid,x1,y1,lato1,lato2,colore1,colore2,colore3,larghezza)
global scala
fprintf(fid, [' \n']);
% --------------------------------------------------------------------------
function [fid] = commento (fid,testo_commento)
fprintf(fid, ['/* ' '\n']);
fprintf(fid, [testo_commento '\n']);
fprintf(fid, ['*/ ' '\n']);
% --------------------------------------------------------------------------
function [fid] = scrivere (fid,x1,y1,giustificazione,altezza_testo,testo)
global scala
altezza_testo = altezza_testo*1;
fprintf(fid, ['' testo '' '\n']);
%rettangolo_per_coprire_numero (fid, x1, y1, altezza_testo , altezza_testo, 0, 0, 0, 0.2)
% --------------------------------------------------------------------------
function [fid] = rettangolo_per_coprire_numero (fid,x1,y1,lato1,lato2,colore1,colore2,colore3,larghezza)
global scala
fprintf(fid, [' \n']);
% Autori
% Prof. Paolo Sordi IPSIA A. Pacinotti, Pontedera (Pisa)
% Prof. Danilo Pasquini IPSIA Parodi Delfino, Colleferro (Roma)
%
function micrometro ()
global larghezza_linea
global altezza_tacche_asta
global altezza_tacche_asta_lunghe
global altezza_tacche_nonio
global larghezza_nonio
global raggio_millimetrato
global raggio_spigolo_nonio
global larghezza_prima_dello_zero
global fid1
global scala
global matrice_risultati
global numero_esercitazione
global righe_risultati
larghezza_prima_dello_zero = 3;
larghezza_linea = 0.2;
larghezza_dopo_nonio = 14; % l1
larghezza_zigrinato = 24; % l1
larghezza_dopo_zigrinato = 10; % l1
larghezza_attacco_frizione = 3; % l1
larghezza_frizione = 7; % l1
larghezza_battuta_asta = 3;
altezza_tacche_asta = 2;
altezza_tacche_asta_lunghe = 5;
altezza_tacche_nonio = 3;
larghezza_nonio = 15;
raggio_millimetrato = 11;
raggio_spigolo_nonio = 14.5;
scala = 3.54;
clc
numero_esercitazione = numero_esercitazione + 1;
testo = num2str(ceil(numero_esercitazione));
colonne_risultati = 1;
matrice_risultati (righe_risultati, colonne_risultati) = str2num(testo);
nomefile = ['c:\micro100\50_micro_' testo '.svg'];
nomefile1 = ['c:\micro100\50_micro_' testo '.txt'];
fid = fopen([nomefile], 'wt');
fid1 = fopen([nomefile1], 'wt');
fprintf(fid, ['<!--?xml version="1.0" encoding="iso-8859-1" standalone="no"?--> \n']);
fprintf(fid, ['\n']);
fprintf(fid, ['\n']);
portata_strumento = 2500
lunghezza_casuale = (ceil (rand*portata_strumento))/ 100
colonne_risultati = 1 + colonne_risultati;
matrice_risultati (righe_risultati, colonne_risultati) = lunghezza_casuale;
pos_x = 90;
pos_y = 40;
[fid] = scrivere (fid,30,15,'left',3,'Nome: __________________________________ Classe: _________ Data: _____________');
[fid] = scrivere (fid,15,30,'left',2,['Soluzione: ' testo]);
[fid] = scrivere (fid,8,15,'left',6,'B');
[fid] = scrivere (fid,10,283,'right',2.5,'www.tiny.cc/disegno');
[fid] = scrivere (fid,124,282,'right',2,'Autori: Prof. Paolo Sordi ITIS Marconi, Pontedera (Pisa)');
[fid] = scrivere (fid,132,285,'right',2,'Prof. Danilo Pasquini IPSIA P.P. Delfino, Colleferro (Roma)');
disegna_micrometro (fid, pos_x, pos_y, lunghezza_casuale)
fid = rettangolo (fid, pos_x+lunghezza_casuale+larghezza_nonio, pos_y-raggio_spigolo_nonio, ...
larghezza_dopo_nonio , raggio_spigolo_nonio * 2, 20, 20, 20, 0.2);
% a destra del nonio
fid = rettangolo (fid, pos_x+lunghezza_casuale+larghezza_nonio+larghezza_dopo_nonio, pos_y-raggio_spigolo_nonio, ...
larghezza_zigrinato , raggio_spigolo_nonio * 2, 20, 20, 20, 0.2);
fid = rettangolo (fid, pos_x+lunghezza_casuale+larghezza_nonio+larghezza_dopo_nonio+larghezza_zigrinato , pos_y-raggio_spigolo_nonio, ...
larghezza_dopo_zigrinato , raggio_spigolo_nonio * 2, 20, 20, 20, 0.2);
fid = rettangolo (fid, pos_x+lunghezza_casuale+larghezza_nonio+larghezza_dopo_nonio+larghezza_zigrinato , pos_y-raggio_spigolo_nonio, ...
larghezza_dopo_zigrinato , raggio_spigolo_nonio * 2, 20, 20, 20, 0.2);
fid = rettangolo (fid, pos_x+lunghezza_casuale+larghezza_nonio+larghezza_dopo_nonio+larghezza_zigrinato+larghezza_dopo_zigrinato , pos_y-raggio_spigolo_nonio*.4, ...
larghezza_attacco_frizione , raggio_spigolo_nonio*0.8, 20, 20, 20, 0.2);
fid = rettangolo (fid, pos_x+lunghezza_casuale+larghezza_nonio+larghezza_dopo_nonio+larghezza_zigrinato+larghezza_dopo_zigrinato+larghezza_attacco_frizione, pos_y-raggio_spigolo_nonio*0.5, ...
larghezza_frizione , raggio_spigolo_nonio, 20, 20, 20, 0.2);
% a destra del nonio
fid = rettangolo (fid, pos_x-10 - larghezza_prima_dello_zero , pos_y-raggio_millimetrato, ...
10 , raggio_millimetrato * 4, 0, 0, 0, 0.2);
fid = rettangolo (fid, pos_x-10 - larghezza_prima_dello_zero - portata_strumento/100 + lunghezza_casuale , pos_y-raggio_millimetrato*0.3, ...
portata_strumento/100 - lunghezza_casuale , raggio_millimetrato * 0.6, 0, 0, 0, 0.2);
fid = rettangolo (fid, pos_x-10 -larghezza_prima_dello_zero-portata_strumento/100- larghezza_battuta_asta , pos_y+raggio_millimetrato*2.0, ...
portata_strumento/100 + larghezza_battuta_asta , raggio_millimetrato * 1, 0, 0, 0, 0.2);
fid = rettangolo (fid, pos_x-10 -larghezza_prima_dello_zero-portata_strumento/100 - larghezza_battuta_asta , pos_y-raggio_millimetrato*0.3, ...
larghezza_battuta_asta , raggio_millimetrato * 0.6, 0, 0, 0, 0.2);
fid = rettangolo (fid, pos_x-10-10 - larghezza_prima_dello_zero-portata_strumento/100 - larghezza_battuta_asta , pos_y-raggio_millimetrato, ...
10 , raggio_millimetrato * 4, 0, 0, 0, 0.2);
for i=1:4
for j=[20, 90, 155]
lunghezza_casuale = 2 + (ceil (rand*portata_strumento-2))/ 100
disegna_micrometro (fid, j, 45+50*i, lunghezza_casuale)
colonne_risultati = 1 + colonne_risultati;
matrice_risultati (righe_risultati, colonne_risultati) = lunghezza_casuale;
end
end
fprintf(fid, [' \n']);
fclose(fid)
stringa_dos = ['c:\Programmi\Inkscape\inkscape -f ' nomefile ' -A ' 'C:\micro100\50_micro_' testo '.pdf']
dos(stringa_dos)
fclose (fid1)
% -------------------------------------------------------------------------
function disegna_micrometro (fid,pos_x,pos_y,lunghezza)
global larghezza_linea
global altezza_tacche_asta
global altezza_tacche_asta_lunghe
global altezza_tacche_nonio
global larghezza_nonio
global raggio_millimetrato
global raggio_spigolo_nonio
global larghezza_prima_dello_zero
global fid1
fid = commento (fid,'*************************** NUOVO MICROMETRO ***************************');
fid = rettangolo (fid,pos_x-larghezza_prima_dello_zero, pos_y-raggio_millimetrato, ...
lunghezza+larghezza_prima_dello_zero, raggio_millimetrato*2,0,0,0,0.2);
[fid] = scrivere (fid,pos_x,pos_y+2 * raggio_millimetrato,'left',3,'misura: __________');
fid = linea (fid,pos_x,pos_y,pos_x+lunghezza,pos_y,0,0,0,larghezza_linea);
for i=0:floor(lunghezza)
tacca = altezza_tacche_asta;
if rem(i,5) == 0
tacca = altezza_tacche_asta_lunghe;
if i + 1 < floor(lunghezza)
[fid] = scrivere (fid,pos_x+i,pos_y+tacca+3,'middle',2,num2str(i));
end
end
fid = linea (fid,pos_x+i,pos_y,pos_x+i,pos_y+tacca,20,20,50,0.1);
end
% mezzo millimetro
for i=0:floor(lunghezza-0.5)
tacca = altezza_tacche_asta;
fid = linea (fid,pos_x+i+0.5,pos_y,pos_x+i+0.5,pos_y-tacca,0,0,0,0.1);
end
fid = commento (fid,'spigolo nonio')
fid = rettangolo (fid, pos_x+lunghezza, pos_y-raggio_spigolo_nonio, ...
larghezza_nonio, raggio_spigolo_nonio*2, 0,0,0,0.2);
fid = commento (fid,'tacche nonio')
% parte sotto del nonio
centesimo = round((lunghezza - floor(lunghezza))*100)
for i=0:13
tacca_nonio = 3;
centesimo-i;
tacca_altezza = sin((pi/2) * i / 13) * raggio_spigolo_nonio;
if rem(centesimo-i,5) == 0
% disp('ddd');
tacca_nonio = 6;
numero_nonio = centesimo-i;
if numero_nonio < 0 numero_nonio = numero_nonio + 50; end if numero_nonio > 49
numero_nonio = numero_nonio - 50;
end
if i < 10
[fid] = scrivere (fid,pos_x+lunghezza+tacca_nonio + 2,pos_y+tacca_altezza,'middle',2,num2str(numero_nonio));
end
end
fid = linea (fid, pos_x+lunghezza, pos_y+tacca_altezza, ...
pos_x+lunghezza+tacca_nonio, pos_y+tacca_altezza,0,0,0,0.1);
end
for i=0:13
tacca_nonio = 3;
centesimo+i;
tacca_altezza = sin((pi/2) * i / 13) * raggio_spigolo_nonio;
if rem(centesimo+i,5) == 0
% disp('dddxx');
tacca_nonio = 6;
numero_nonio = centesimo+i;
if numero_nonio < 0 numero_nonio = numero_nonio + 50; end if numero_nonio > 49
numero_nonio = numero_nonio + 50;
end
if i < 10
[fid] = scrivere (fid,pos_x-lunghezza+tacca_nonio - 2,pos_y-tacca_altezza,'middle',2,num2str(numero_nonio));
end
end
fid = linea (fid,pos_x+lunghezza, pos_y-tacca_altezza, ...
pos_x+lunghezza+tacca_nonio, pos_y-tacca_altezza, 0, 0, 0, 0.1);
end
%[fid] = scrivere (fid,pos_x+lunghezza+tacca_nonio + 4+30,pos_y,'middle','3',num2str(lunghezza));
fprintf(fid1, ['misura: ' num2str(lunghezza, '%10.2f') '\n'])
% -------------------------------------------------------------------------
function [fid] = linea (fid,x1,y1,x2,y2,colore1,colore2,colore3,larghezza)
global scala
fprintf(fid, [' \n']);
% -------------------------------------------------------------------------
function [fid] = cerchio (fid,x1,y1,raggio,colore1,colore2,colore3)
global scala
fprintf(fid, [' \n']);
% --------------------------------------------------------------------------
function [fid] = rettangolo (fid,x1,y1,lato1,lato2,colore1,colore2,colore3,larghezza)
global scala
fprintf(fid, [' \n']);
% --------------------------------------------------------------------------
function [fid] = commento (fid,testo_commento)
fprintf(fid, ['/* ' '\n']);
fprintf(fid, [testo_commento '\n']);
fprintf(fid, ['*/ ' '\n']);
% --------------------------------------------------------------------------
function [fid] = scrivere (fid,x1,y1,giustificazione,altezza_testo,testo)
global scala
fprintf(fid, ['' testo '' '\n']);
%rettangolo_per_coprire_numero (fid, (x1+5), y1, altezza_testo,altezza_testo,0, 0, 0, 0.2)
% --------------------------------------------------------------------------
function [fid] = rettangolo_per_coprire_numero (fid,x1,y1,lato1,lato2,colore1,colore2,colore3,larghezza)
global scala
fprintf(fid, [' \n']);
% Autori
% Prof. Paolo Sordi IPSIA A. Pacinotti, Pontedera (Pisa)
% Prof. Danilo Pasquini IPSIA Parodi Delfino, Colleferro (Roma)
%
function stampa_pdf_risultati ()
global larghezza_linea
global altezza_tacche_asta
global altezza_tacche_asta_lunghe
global altezza_tacche_nonio
global larghezza_nonio
global raggio_millimetrato
global raggio_spigolo_nonio
global larghezza_prima_dello_zero
global fid1
global scala
global numero_lettura
global matrice_risultati
global colonne_risultati
global righe_risultati
numero_lettura = 0;
larghezza_prima_dello_zero = 3;
larghezza_linea = 0.2;
altezza_tacche_asta = 2;
altezza_tacche_asta_lunghe = 5;
altezza_tacche_nonio = 3;
larghezza_nonio = 15;
raggio_millimetrato = 11;
raggio_spigolo_nonio = 14.5;
scala = 3.54;
altezza_testo = 1.6;
testo = num2str(ceil(rand*100));
nomefile = ['c:\micro100\risultati_' testo '.svg'];
nomefile1 = ['c:\micro100\risultati_' testo '.txt'];
fid = fopen([nomefile], 'wt');
fid1 = fopen([nomefile1], 'wt');
fprintf(fid, ['<!--?xml version="1.0" encoding="iso-8859-1" standalone="no"?--> \n']);
fprintf(fid, ['\n']);
fprintf(fid, ['\n']);
portata_strumento = 2500;
lunghezza_casuale = (ceil (rand*portata_strumento))/ 100;
pos_x = 90;
pos_y = 40;
[fid] = scrivere (fid,30,10,'left',3,'Risultati letture micrometro');
[fid] = scrivere (fid,145,10,'right',3,'www.tiny.cc/disegno');
[righe,colonne] = size(matrice_risultati);
passo = 10
for i=1:righe
for j=1:colonne
if j==1
[fid] = scrivere (fid,4 + j*passo*1.3, 10 + i*passo*0.78, 'middle', 3.5, num2str(matrice_risultati(i,j)));
else
[fid] = scrivere (fid,7 + j*passo*1.3, 10 + i*passo*0.78, 'middle', 3, num2str(matrice_risultati(i,j), '%10.2f'));
end
end
end
fprintf(fid, [' \n']);
fclose(fid)
stringa_dos = ['c:\Programmi\Inkscape\inkscape -f ' nomefile ' -A ' 'C:\micro100\Risultati' testo '.pdf']
dos(stringa_dos)
fclose (fid1)
% -------------------------------------------------------------------------
function [fid] = linea (fid,x1,y1,x2,y2,colore1,colore2,colore3,larghezza)
global scala
fprintf(fid, [' \n']);
% -------------------------------------------------------------------------
function [fid] = cerchio (fid,x1,y1,raggio,colore1,colore2,colore3)
global scala
fprintf(fid, [' \n']);
% --------------------------------------------------------------------------
function [fid] = rettangolo (fid,x1,y1,lato1,lato2,colore1,colore2,colore3,larghezza)
global scala
fprintf(fid, [' \n']);
% --------------------------------------------------------------------------
function [fid] = commento (fid,testo_commento)
fprintf(fid, ['/* ' '\n']);
fprintf(fid, [testo_commento '\n']);
fprintf(fid, ['*/ ' '\n']);
% --------------------------------------------------------------------------
function [fid] = scrivere (fid,x1,y1,giustificazione,altezza_testo,testo)
global scala
altezza_testo = altezza_testo*0.8;
fprintf(fid, ['' testo '' '\n']);
%rettangolo_per_coprire_numero (fid, x1, y1, altezza_testo , altezza_testo, 0, 0, 0, 0.2)
% --------------------------------------------------------------------------
function [fid] = rettangolo_per_coprire_numero (fid,x1,y1,lato1,lato2,colore1,colore2,colore3,larghezza)
global scala
fprintf(fid, [' \n']);