ESERCITAZIONE PRATICA – IMPIANTO IDRAULICO
Anche questo lavoro consiste nel realizzare direttamente in linguaggio svg il disegno di una piantina semplificata con la realizzazione di un impianto di riscaldamento e di adduzione idrica. Dopo aver realizzato questa esercitazione ho capito che il codice deve essere necessariamente abbinato a dei blocchetti realizzati con il CAD. Il lavoro è più veloce ed accurato.
Codice esercitazione impianto idraulico
% Autori
% Prof. Paolo Sordi IPSIA A. Pacinotti, Pontedera (Pisa)
% Prof. Danilo Pasquini IPSIA P.P. Delfino, Colleferro (Roma)
% Impianto idraulico
%
function piantina ()
global contatore
clc
contatore = contatore +1
testo = num2str(contatore);
nomefile = ['c:\piantina_alunno_' testo '.svg'];
nomefile1 = ['c:\piantina_alunno_' testo '.txt'];
fid = fopen([nomefile], 'wt');
fprintf(fid, ['<!--?xml version="1.0" encoding="iso-8859-1" standalone="no"?--> \n']);
fprintf(fid, ['\n']);
fprintf(fid, ['\n']);
for i=1:1
for j=[1]
disegna_piantina (fid)
end
end
fprintf(fid, [' \n']);
fclose(fid)
stringa_dos = ['c:\Programmi\Inkscape\inkscape -f ' nomefile ' -A ' 'C:\L_alunno_' testo '.pdf']
dos(stringa_dos)
% -------------------------------------------------------------------------
function disegna_piantina (fid)
global fid1
global scala
global spessore_muro
global contatore
global numero_elementi_termosifone
global posizione_x_collettore_fredda
global posizione_y_collettore_fredda
global posizione_y_collettore_calda
global tick_tra_tubi
global tick_tra_tubi_alti
global lunghezza_camere_lato_alto
global distanza_tra_coppia_tubi
spazio_tra_testo = 100;
cursore_per_scrittura = 200;
giustificazione_sinistra = 100;
spessore_muro = 0.1;
scala = 100;
pos_x = 4;
pos_y = 13;
distanza_quota = 1;
[fid] = scrivere_fuori_scala (fid,1050,100 ,'middle','30',['Esercitazione']);
[fid] = scrivere_fuori_scala (fid,1050,220 ,'middle','30',['Alunno _______________']);
[fid] = scrivere_fuori_scala (fid,1450,220 ,'middle','35',['n°', num2str(contatore)]);
[fid] = scrivere_fuori_scala (fid,100,2800 ,'left','30',['scala 1:100']);
numero_camere_lato_destro = 1+ceil(rand*2);
cursore_per_scrittura = spazio_tra_testo + cursore_per_scrittura;
[fid] = scrivere_fuori_scala (fid,giustificazione_sinistra,cursore_per_scrittura ,'left','25',['numero_camere_lato_alto ' ,num2str(numero_camere_lato_destro)]);
numero_camere_lato_basso = 4+round(1*rand) - numero_camere_lato_destro;
cursore_per_scrittura = spazio_tra_testo + cursore_per_scrittura;
[fid] = scrivere_fuori_scala (fid,giustificazione_sinistra,cursore_per_scrittura ,'left','25',['numero_camere_lato_basso ' ,num2str(numero_camere_lato_basso)]);
superficie_casa = 80+40*rand;
larghezza_casa = sqrt(superficie_casa)+rand*1-rand*1;
lunghezza_casa = superficie_casa / larghezza_casa;
cursore_per_scrittura = spazio_tra_testo + cursore_per_scrittura;
[fid] = scrivere_fuori_scala (fid,giustificazione_sinistra,cursore_per_scrittura ,'left','25',['Larghezza_casa = ' ,num2str(round(lunghezza_casa*100)), ' cm']);
[fid] = scrivere_fuori_scala (fid,1500,2800 ,'right','30',['zzz']);
% [fid] = scrivere_fuori_scala (fid,giustificazione_sinistra,cursore_per_scrittura ,'left','20',['Ogni locale ha una finestra per ogni lato del perimetro']);
% cursore_per_scrittura = spazio_tra_testo + cursore_per_scrittura;
%
% [fid] = scrivere_fuori_scala (fid,giustificazione_sinistra,cursore_per_scrittura ,'left','20',['Scegliere a piacere le dimensioni della finestra']);
%
% cursore_per_scrittura = spazio_tra_testo + cursore_per_scrittura;
% [fid] = scrivere_fuori_scala (fid,giustificazione_sinistra,cursore_per_scrittura ,'left','20',['In un lato a piacere del perimetro è presente un balcone con portefinestre']);
%
% cursore_per_scrittura = spazio_tra_testo + cursore_per_scrittura;
% [fid] = scrivere_fuori_scala (fid,giustificazione_sinistra,cursore_per_scrittura ,'left','20',['Posizionare a piacere il portone di accesso alla casa']);
posizione_corridoio = (40 + 20 * rand) * larghezza_casa / 100;
larghezza_corridoio = 1.5 + 0.8*rand
larghezza_camere_lato_basso = posizione_corridoio - larghezza_corridoio / 2
lunghezza_camere_lato_alto = larghezza_casa - (posizione_corridoio + larghezza_corridoio / 2)
cursore_per_scrittura = spazio_tra_testo + cursore_per_scrittura;
[fid] = scrivere_fuori_scala (fid,giustificazione_sinistra,cursore_per_scrittura ,'left','25',['Lunghezza_casa = ' ,num2str(round((lunghezza_camere_lato_alto+lunghezza_casa)*100)), ' cm']);
cursore_per_scrittura = spazio_tra_testo + cursore_per_scrittura;
vettore_camere_alte = [];
vettore_camere_alte(1) = 0;
lunghezza_media_di_ogni_stanza = (lunghezza_casa - larghezza_camere_lato_basso) / numero_camere_lato_destro;
vettore_camere_alte(2) = larghezza_camere_lato_basso + larghezza_corridoio
for i = 3 : numero_camere_lato_destro
vettore_camere_alte(i) = vettore_camere_alte(i-1) + lunghezza_media_di_ogni_stanza * (0.9 + 0.2 *rand);
end
vettore_camere_alte (numero_camere_lato_destro+1) = lunghezza_casa;
for i = 1 : numero_camere_lato_destro
fid = stanza (fid, pos_x, pos_y - lunghezza_camere_lato_alto, ...
vettore_camere_alte(i+1)- vettore_camere_alte(i), lunghezza_camere_lato_alto, 0, 0, 0, 0.2);
[fid] = scrivere_quota (fid, pos_x + (vettore_camere_alte(i+1) - vettore_camere_alte(i))/2, pos_y - lunghezza_camere_lato_alto - distanza_quota ,0,'middle','25', vettore_camere_alte(i+1) - vettore_camere_alte(i));
superficie = lunghezza_camere_lato_alto * (vettore_camere_alte(i+1) - vettore_camere_alte(i));
% testo_superficie = [num2str(round(superficie*150)), ' W']
% [fid] = scrivere (fid, pos_x + posizione_corridoio + larghezza_corridoio / 2 + lunghezza_camere_lato_alto/2, pos_y + vettore_camere_alte(i) + (vettore_camere_alte(i+1) - vettore_camere_alte(i))/2,0,'middle','20', testo_superficie);
end
[fid] = scrivere_quota (fid, pos_x + 4 * distanza_quota + lunghezza_casa, pos_y + larghezza_corridoio + (lunghezza_casa-larghezza_corridoio)/2, 270,'middle','25', lunghezza_casa-larghezza_corridoio);
[fid] = scrivere_quota (fid, pos_x + 4 * distanza_quota + lunghezza_casa, pos_y + larghezza_corridoio/2, 270,'middle','25', larghezza_corridoio);
[fid] = scrivere_quota (fid, pos_x + 4 * distanza_quota + lunghezza_casa, pos_y - lunghezza_camere_lato_alto/2, 270,'middle','25', lunghezza_camere_lato_alto);
[fid] = scrivere_quota (fid, pos_x + 5 * distanza_quota + lunghezza_casa, pos_y - lunghezza_camere_lato_alto + (lunghezza_camere_lato_alto+lunghezza_casa)/2, 270,'middle','25', lunghezza_camere_lato_alto+lunghezza_casa);
vettore_camere_basse = [];
vettore_camere_basse(1) = 0;
lunghezza_media_di_ogni_stanza = lunghezza_casa / numero_camere_lato_basso;
for i = 2 : numero_camere_lato_basso
vettore_camere_basse(i) = vettore_camere_basse(i-1) + lunghezza_media_di_ogni_stanza * (0.9 + 0.2 *rand);
end
vettore_camere_basse (numero_camere_lato_basso+1) = lunghezza_casa;
for i = 1 : numero_camere_lato_basso
fid = stanza(fid,pos_x, pos_y + vettore_camere_basse(i), ...
larghezza_camere_lato_basso, vettore_camere_basse(i+1)-vettore_camere_basse(i), 0, 0, 0, 0.2);
% [fid] = scrivere_quota (fid,pos_x-distanza_quota, pos_y + vettore_camere_basse(i) + (vettore_camere_basse(i+1) - vettore_camere_basse(i))/2,90,'middle','20', vettore_camere_basse(i+1)-vettore_camere_basse(i));
lato = vettore_camere_basse(i+1)-vettore_camere_basse(i)
[fid] = scrivere_quota (fid, pos_x - 1 * distanza_quota, pos_y + vettore_camere_basse(i)+lato/2, 270,'middle','25', vettore_camere_basse(i+1)-vettore_camere_basse(i));
superficie = larghezza_camere_lato_basso * (vettore_camere_basse(i+1) - vettore_camere_basse(i));
% testo_superficie = [num2str(round(superficie*120)), ' W']
% [fid] = scrivere (fid, pos_x + larghezza_camere_lato_basso/2, pos_y + vettore_camere_basse(i) + (vettore_camere_basse(i+1) - vettore_camere_basse(i))/2,0,'middle','20', testo_superficie);
end
% disegno del corridoio
[fid] = linea (fid,pos_x - larghezza_corridoio / 2, pos_y + lunghezza_casa + spessore_muro/2,...
pos_x + larghezza_corridoio / 2 + spessore_muro/2, pos_y + lunghezza_casa + spessore_muro/2, 0, 0, 0, 0.2)
[fid] = linea (fid,pos_x - larghezza_corridoio / 2, pos_y + lunghezza_casa - spessore_muro/2,...
pos_x + larghezza_corridoio / 2 + spessore_muro/2, pos_y + lunghezza_casa - spessore_muro/2, 0, 0, 0, 0.2)
[fid] = linea (fid,pos_x + larghezza_corridoio / 2 + spessore_muro/2, pos_y + larghezza_corridoio + spessore_muro/2,...
pos_x + larghezza_corridoio / 2 + spessore_muro/2, pos_y + lunghezza_casa + spessore_muro/2, 0, 0, 0, 0.2)
[fid] = linea (fid,pos_x + larghezza_corridoio / 2 - spessore_muro/2, pos_y + larghezza_corridoio - spessore_muro/2,...
pos_x + larghezza_corridoio / 2 - spessore_muro/2, pos_y + lunghezza_casa + spessore_muro/2, 0, 0, 0, 0.2)
[fid] = linea (fid,pos_x + posizione_corridoio + larghezza_corridoio / 2 + spessore_muro/2 , pos_y + larghezza_corridoio + spessore_muro/2,...
pos_x + lunghezza_casa + spessore_muro/2, pos_y + larghezza_corridoio + spessore_muro/2, 0, 0, 0, 0.2)
[fid] = linea (fid,pos_x + posizione_corridoio + larghezza_corridoio / 2 - spessore_muro/2 , pos_y + larghezza_corridoio - spessore_muro/2,...
pos_x + lunghezza_casa + spessore_muro/2, pos_y + larghezza_corridoio - spessore_muro/2, 0, 0, 0, 0.2)
[fid] = linea (fid,pos_x + lunghezza_casa + spessore_muro/2, pos_y + spessore_muro/2 ,...
pos_x + lunghezza_casa + spessore_muro/2, pos_y + larghezza_corridoio + spessore_muro/2, 0, 0, 0, 0.2)
[fid] = linea (fid,pos_x + lunghezza_casa - spessore_muro/2, pos_y + spessore_muro/2 ,...
pos_x + lunghezza_casa - spessore_muro/2, pos_y + larghezza_corridoio + spessore_muro/2, 0, 0, 0, 0.2)
% Quote basse
tick_quote_basse = 4
[fid] = scrivere_quota (fid,pos_x + posizione_corridoio , lunghezza_casa + pos_y + tick_quote_basse * distanza_quota,0,'middle','25',larghezza_corridoio);
[fid] = scrivere_quota (fid,pos_x + larghezza_camere_lato_basso/2 , lunghezza_casa + pos_y + tick_quote_basse* distanza_quota, 0,'middle','25',larghezza_camere_lato_basso);
[fid] = scrivere_quota (fid,pos_x + posizione_corridoio + larghezza_corridoio/2 + (lunghezza_casa-posizione_corridoio-larghezza_corridoio/2)/2, lunghezza_casa + pos_y + tick_quote_basse*distanza_quota,0,'middle','25',lunghezza_casa-larghezza_camere_lato_basso-larghezza_corridoio);
[fid] = scrivere_quota (fid,pos_x + lunghezza_casa/2 , lunghezza_casa + pos_y + (tick_quote_basse +1) * distanza_quota,0,'middle','25',lunghezza_casa);
num = 1000
for i= 1:num
x1 = 1+i/(num)*18.5+rand*0.001;
y1 = 29.5;
x2 = 1+(i+1)/(num)*18.5;
y2 = 29+rand*0.2;
[fid] = linea (fid,x1, y1, x2,y2,254,254,254,1);
end
posizione_x_collettore_fredda = pos_x + larghezza_camere_lato_basso * 5/12 + (larghezza_camere_lato_basso * 1/12)* rand1
posizione_y_collettore_fredda = pos_y + lunghezza_casa + 0.05 * lunghezza_casa
posizione_y_collettore_calda = pos_y + lunghezza_casa + 0.1 * lunghezza_casa
posizione_x_caldaia = pos_x + larghezza_camere_lato_basso + larghezza_corridoio *1.5 + larghezza_corridoio *rand1
posizione_y_caldaia = pos_y + lunghezza_casa * 1.1 + lunghezza_casa * 0.1
posizione_x_contatore = posizione_x_caldaia + larghezza_corridoio + larghezza_corridoio *rand
posizione_y_contatore = pos_y + lunghezza_casa * 0.5 + lunghezza_casa * 0.1
potenza_dispersa_per_metro_2 = 30
potenza_per_modulo_termosifone = 100;
distanza_dal_muro = 0.1;
tick_tra_tubi = 0
tick_tra_tubi_alti = 0
for i = numero_camere_lato_basso : -1 : 1
% [fid] = scrivere_quota (fid,pos_x-distanza_quota, pos_y + vettore_camere_basse(i) + (vettore_camere_basse(i+1) - vettore_camere_basse(i))/2,90,'middle','20', vettore_camere_basse(i+1)-vettore_camere_basse(i));
lato = vettore_camere_basse(i+1)-vettore_camere_basse(i);
superficie = larghezza_camere_lato_basso * (vettore_camere_basse(i+1) - vettore_camere_basse(i));
potenza = superficie*potenza_dispersa_per_metro_2;
testo_superficie = [num2str(round(potenza)), ' W'];
[fid] = scrivere (fid, pos_x + larghezza_camere_lato_basso/3, pos_y + vettore_camere_basse(i) + (vettore_camere_basse(i+1) - vettore_camere_basse(i))/3,0,'middle','20', testo_superficie);
numero_elementi_termosifone = ceil (potenza/potenza_per_modulo_termosifone);
[fid] = disegno_termosifone (fid, pos_x + distanza_dal_muro, pos_y + vettore_camere_basse(i)+lato/2, 270,'middle','25', numero_elementi_termosifone);
end
for i = 1 : numero_camere_lato_destro
fid = stanza (fid, pos_x + vettore_camere_alte(i), pos_y - lunghezza_camere_lato_alto, ...
vettore_camere_alte(i+1)- vettore_camere_alte(i), lunghezza_camere_lato_alto, 0, 0, 0, 0.2);
superficie = lunghezza_camere_lato_alto * (vettore_camere_alte(i+1) - vettore_camere_alte(i));
potenza = superficie*potenza_dispersa_per_metro_2;
testo_superficie = [num2str(round(potenza)), ' W']
[fid] = scrivere (fid, pos_x + vettore_camere_alte(i) + (vettore_camere_alte(i+1) - vettore_camere_alte(i))/2, pos_y - lunghezza_camere_lato_alto / 2,0,'middle','20', testo_superficie);
numero_elementi_termosifone = ceil (potenza/potenza_per_modulo_termosifone)
[fid] = disegno_termosifone (fid, pos_x + vettore_camere_alte(i) + (vettore_camere_alte(i+1) - vettore_camere_alte(i))/2 , pos_y - lunghezza_camere_lato_alto + distanza_dal_muro, 0,'middle','25', numero_elementi_termosifone);
% testo_superficie = [num2str(round(superficie*150)), ' W']
end
% disegno collettore
spessore = tick_tra_tubi / 5
distanza_tra_coppia_tubi;
tick_tra_tubi;
[fid] = rettangolo (fid,posizione_x_collettore_fredda ,posizione_y_collettore_fredda, tick_tra_tubi + distanza_tra_coppia_tubi*3, spessore, 0, 0, 255, 3)
[fid] = rettangolo (fid,posizione_x_collettore_fredda ,posizione_y_collettore_calda, tick_tra_tubi + distanza_tra_coppia_tubi*3, spessore, 255, 0, 0, 3)
[fid] = scrivere (fid, posizione_x_collettore_fredda - tick_tra_tubi * 1.5, posizione_y_collettore_fredda + spessore ,0,'left','20', 'Collettore');
% disegno caldaia
larghezza_caldaia = tick_tra_tubi + distanza_tra_coppia_tubi
fprintf(fid, ['<!-- caldaia --> \n']);
[fid] = rettangolo (fid,posizione_x_caldaia ,posizione_y_caldaia, larghezza_caldaia , tick_tra_tubi / 2, 0, 0, 0, 3)
[fid] = scrivere (fid, posizione_x_caldaia +larghezza_caldaia /2,posizione_y_caldaia + tick_tra_tubi,0,'middle','20', 'Caldaia');
larghezza_caldaia = larghezza_caldaia + larghezza_caldaia /6
[fid] = linea (fid,posizione_x_collettore_fredda + tick_tra_tubi + distanza_tra_coppia_tubi*3, posizione_y_collettore_fredda +spessore/2, posizione_x_caldaia + larghezza_caldaia /2, posizione_y_collettore_fredda+spessore/2,0,0,255,6)
[fid] = linea (fid,posizione_x_caldaia + larghezza_caldaia /2, posizione_y_collettore_fredda +spessore/2, posizione_x_caldaia + larghezza_caldaia /2 , posizione_y_caldaia,0,0,255,6)
larghezza_caldaia = larghezza_caldaia - larghezza_caldaia /6 - larghezza_caldaia /6
[fid] = linea (fid,posizione_x_collettore_fredda + tick_tra_tubi + distanza_tra_coppia_tubi*3, posizione_y_collettore_calda +spessore/2, posizione_x_caldaia + larghezza_caldaia /2, posizione_y_collettore_calda +spessore/2,255,0,0,6)
[fid] = linea (fid,posizione_x_caldaia + larghezza_caldaia /2 , posizione_y_collettore_calda +spessore/2, posizione_x_caldaia + larghezza_caldaia /2 , posizione_y_caldaia,255,0,0,6)
% disegno contatore
larghezza_contatore = tick_tra_tubi + distanza_tra_coppia_tubi
[fid] = rettangolo (fid,posizione_x_contatore ,posizione_y_contatore, larghezza_contatore , tick_tra_tubi / 2, 0, 0, 0, 3)
[fid] = scrivere (fid, posizione_x_contatore +larghezza_caldaia *1.3,posizione_y_contatore + tick_tra_tubi/2,0,'left','20', 'Contatore');
% acqua fredda per caldaia
[fid] = linea (fid,posizione_x_caldaia + larghezza_caldaia , posizione_y_caldaia + tick_tra_tubi / 4, posizione_x_contatore +larghezza_contatore/2 , posizione_y_caldaia + tick_tra_tubi / 4,0,0,255,6)
[fid] = linea (fid,posizione_x_contatore + larghezza_contatore/2 , posizione_y_caldaia + tick_tra_tubi / 4, posizione_x_contatore +larghezza_contatore/2 , posizione_y_contatore + tick_tra_tubi / 2,0,0,255,6)
% acqua fredda bagno
n1 = numero_camere_lato_destro
x_ultima = pos_x + vettore_camere_alte(n1) + (vettore_camere_alte(n1+1)-vettore_camere_alte(n1))/2
x_ultima = x_ultima + 0.1
y_ultima = pos_y
spezzone_y = (posizione_y_contatore + y_ultima) / 2
[fid] = linea (fid,posizione_x_contatore + larghezza_contatore/2 , posizione_y_contatore + tick_tra_tubi / 4, posizione_x_contatore + larghezza_contatore/2 , spezzone_y,0,0,255,6)
[fid] = linea (fid,posizione_x_contatore + larghezza_contatore/2 , spezzone_y, x_ultima , spezzone_y,0,0,255,6)
[fid] = linea (fid,x_ultima , spezzone_y, x_ultima , y_ultima,0,0,255,6)
% acqua calda bagno
spezzone_y = (posizione_y_caldaia + y_ultima) / 2
x_ultima = x_ultima - 0.2
[fid] = linea (fid, posizione_x_caldaia + larghezza_caldaia, posizione_y_caldaia + tick_tra_tubi / 4, posizione_x_caldaia + larghezza_caldaia , spezzone_y,255,0,0,6)
[fid] = linea (fid, posizione_x_caldaia + larghezza_caldaia , spezzone_y, x_ultima , spezzone_y,255,0,0,6)
[fid] = linea (fid, x_ultima , spezzone_y, x_ultima , y_ultima,255,0,0,6)
[fid] = scrivere (fid, x_ultima , y_ultima - tick_tra_tubi / 4,0,'middle','20', 'Collettore_bagno');
%
% fid = rettangolo (fid,pos_x, pos_y, ...
% lunghezza, raggio_millimetrato, 0, 0, 0, 0.2);
% [fid] = scrivere (fid,pos_x-1,pos_y+2 * raggio_millimetrato,'left','4','misura: _______');
%
%
% fid = linea (fid,pos_x,pos_y,pos_x+lunghezza,pos_y,180,180,180,larghezza_linea);
% fid = commento (fid,'spigolo nonio')
%
% parte sotto del nonio
%[fid] = scrivere (fid,pos_x+lunghezza+tacca_nonio + 4+30,pos_y,'middle','7',num2str(lunghezza));
spazio_tra_testo = 100;
cursore_per_scrittura = 200;
giustificazione_destra = 1950;
scelta_tubi = rand
if scelta_tubi < 0.33 testo = 'Multistrato D = 16 mm ' end if scelta_tubi > 0.33 && scelta_tubi < 0.66 testo = 'Acciaio zincato 1/2' end if scelta_tubi > 0.66
testo = 'Rame Di = 16 mm De = 18 mm'
end
cursore_per_scrittura = spazio_tra_testo + cursore_per_scrittura;
[fid] = scrivere_fuori_scala (fid,giustificazione_destra, cursore_per_scrittura ,'end','25',['Tubi caldaia-radiatori= ' ,testo]);
scelta_tubi = rand
if scelta_tubi < 0.33 testo = 'Multistrato D = 26 mm ' end if scelta_tubi > 0.33 && scelta_tubi < 0.66 testo = 'Acciaio zincato 3/4' end if scelta_tubi > 0.66
testo = 'Rame Di = 25mm De = 28mm'
end
cursore_per_scrittura = spazio_tra_testo + cursore_per_scrittura;
[fid] = scrivere_fuori_scala (fid,giustificazione_destra, cursore_per_scrittura ,'end','25',['Tubi contatore-caldaia-bagno= ' ,testo]);
scelta_tubi = rand
if scelta_tubi < 0.33 testo = 'Interasse 500 mm ' end if scelta_tubi > 0.33 && scelta_tubi < 0.66 testo = 'Interasse 600 mm' end if scelta_tubi > 0.66
testo = 'Interasse 700 mm'
end
cursore_per_scrittura = spazio_tra_testo + cursore_per_scrittura;
[fid] = scrivere_fuori_scala (fid,giustificazione_destra, cursore_per_scrittura ,'end','25',['Radiatore alluminio= ' ,testo]);
% -------------------------------------------------------------------------
function [fid] = disegno_termosifone (fid,x1,y1,angolo,giustificazione,altezza_testo,numero_quota)
global scala
global numero_elementi_termosifone
global posizione_x_collettore_fredda
global posizione_y_collettore_fredda
global posizione_y_collettore_calda
global tick_tra_tubi
global tick_tra_tubi_alti
global lunghezza_camere_lato_alto
global distanza_tra_coppia_tubi
testo = num2str(round(numero_quota));
larghezza_modulo = 0.16
distanza_tra_due_moduli = larghezza_modulo * 0.1
distanza_tra_tubi_due_radiatori = 0.25
distanza_tra_coppia_tubi = 0.075
fprintf(fid, ['<!-- Scrivere quota --> \n']);
centrare_termosifone = (larghezza_modulo + distanza_tra_due_moduli) * numero_elementi_termosifone
if (angolo == 0)
fprintf(fid, ['' testo '' '\n']);
x1 = x1 - centrare_termosifone / 2
for i = 1:numero_elementi_termosifone
[fid] = rettangolo (fid,x1,y1,larghezza_modulo,larghezza_modulo, 50, 50, 50, 1 )
x1 = x1 + larghezza_modulo + distanza_tra_due_moduli
end
x1 = x1 + larghezza_modulo / 2
tick_tra_tubi = tick_tra_tubi + distanza_tra_tubi_due_radiatori
tick_tra_tubi_alti = tick_tra_tubi_alti + distanza_tra_tubi_due_radiatori
% rosso
d1 = distanza_tra_coppia_tubi;
[fid] = linea (fid,x1+d1, y1, x1+d1 ,y1+d1 + lunghezza_camere_lato_alto/2 + tick_tra_tubi_alti,255,0,0,3)
[fid] = linea (fid,x1+d1 ,y1 + lunghezza_camere_lato_alto/2 + tick_tra_tubi_alti + d1, posizione_x_collettore_fredda + tick_tra_tubi +d1,y1 + lunghezza_camere_lato_alto/2 + tick_tra_tubi_alti +d1,255,0,0,3)
[fid] = linea (fid,posizione_x_collettore_fredda + tick_tra_tubi +d1, y1 + lunghezza_camere_lato_alto/2+tick_tra_tubi_alti + d1, posizione_x_collettore_fredda + tick_tra_tubi +d1,posizione_y_collettore_calda,255,0,0,3)
% blu
[fid] = linea (fid,x1, y1, x1 ,y1 + lunghezza_camere_lato_alto/2 + tick_tra_tubi_alti,0,0,255,3)
[fid] = linea (fid,x1 ,y1 + lunghezza_camere_lato_alto/2 + tick_tra_tubi_alti, posizione_x_collettore_fredda + tick_tra_tubi,y1 + lunghezza_camere_lato_alto/2 +tick_tra_tubi_alti ,0,0,255,3)
[fid] = linea (fid,posizione_x_collettore_fredda + tick_tra_tubi, y1 + lunghezza_camere_lato_alto/2+tick_tra_tubi_alti, posizione_x_collettore_fredda + tick_tra_tubi,posizione_y_collettore_fredda,0,0,255,3)
fprintf(fid, ['<!-- fine termosifone --> \n']);
end
angolo
if (angolo == 90 || angolo == 270)
fprintf(fid, ['' testo '' '\n']);
y1 = y1 - centrare_termosifone / 2
for i = 1:numero_elementi_termosifone
[fid] = rettangolo (fid,x1,y1,larghezza_modulo,larghezza_modulo, 50, 50, 50, 1 )
y1 = y1 + larghezza_modulo + distanza_tra_due_moduli
end
y1 = y1 + larghezza_modulo /2
tick_tra_tubi = tick_tra_tubi + distanza_tra_tubi_due_radiatori
% rosso
[fid] = linea (fid,x1, y1, posizione_x_collettore_fredda + tick_tra_tubi,y1,255,0,0,3)
[fid] = linea (fid,posizione_x_collettore_fredda + tick_tra_tubi , y1, posizione_x_collettore_fredda + tick_tra_tubi,posizione_y_collettore_calda,255,0,0,3)
% blu
d1 = distanza_tra_coppia_tubi;
[fid] = linea (fid,x1, y1+d1, posizione_x_collettore_fredda + tick_tra_tubi-d1,y1+d1,0,0,255,3)
[fid] = linea (fid,posizione_x_collettore_fredda + tick_tra_tubi-d1 , y1+d1, posizione_x_collettore_fredda + tick_tra_tubi-d1,posizione_y_collettore_fredda,0,0,255,3)
fprintf(fid, ['<!-- fine termosifone --> \n']);
end
fprintf(fid, ['<!-- --> \n']);
% -------------------------------------------------------------------------
function [fid] = linea (fid,x1,y1,x2,y2,colore1,colore2,colore3,larghezza)
global scala
numero_segmenti = 1;
for i=1:numero_segmenti
passo_x = (x2-x1) / numero_segmenti;
passo_y = (y2-y1) / numero_segmenti;
fprintf(fid, [' \n']);
end
% -------------------------------------------------------------------------
function [fid] = cerchio (fid,x1,y1,raggio,colore1,colore2,colore3)
fprintf(fid, [' \n']);
% --------------------------------------------------------------------------
function [fid] = stanza (fid,x1,y1,lato1,lato2, colore1,colore2,colore3,larghezza)
global spessore_muro
fprintf(fid, ['<!-- stanza --> \n']);
rettangolo (fid,x1-spessore_muro*2,y1-spessore_muro*2,lato1+spessore_muro,lato2+spessore_muro,colore1,colore2,colore3,larghezza)
rettangolo (fid,x1+spessore_muro*,y1+spessore_muro*2,lato1-spessore_muro,lato2-spessore_muro,colore1,colore2,colore3,larghezza)
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,angolo,giustificazione,altezza_testo,testo)
global scala
fprintf(fid, ['<!-- Scrivere --> \n']);
fprintf(fid, ['' testo '' '\n']);
fprintf(fid, ['<!-- --> \n']);
% --------------------------------------------------------------------------
function [fid] = scrivere_quota (fid,x1,y1,angolo,giustificazione,altezza_testo,numero_quota)
global scala
testo = num2str(round(numero_quota*10));
fprintf(fid, ['<!-- Scrivere quota --> \n']);
fprintf(fid, ['' testo '' '\n']);
if (angolo == 0)
freccia = 0.2
y1 = y1 + freccia/2
[fid] = linea (fid,x1,y1,(x1+numero_quota/2),y1,0,0,0,1)
fprintf(fid, ['<!-- freccia --> \n']);
[fid] = linea (fid,x1+numero_quota/2-freccia, y1-freccia/3, x1+numero_quota/2,y1,0,0,0,1)
[fid] = linea (fid,x1+numero_quota/2-freccia, y1+freccia/3, x1+numero_quota/2,y1,0,0,0,1)
fprintf(fid, ['<!-- fine freccia --> \n']);
[fid] = linea (fid,x1,y1,(x1-numero_quota/2),y1,0,0,0,1)
fprintf(fid, ['<!-- freccia --> \n']);
[fid] = linea (fid,x1-numero_quota/2+freccia, y1-freccia/3, x1-numero_quota/2,y1,0,0,0,1)
[fid] = linea (fid,x1-numero_quota/2+freccia, y1+freccia/3, x1-numero_quota/2,y1,0,0,0,1)
fprintf(fid, ['<!-- fine freccia --> \n']);
end
if (angolo == 90 || angolo == 270)
freccia = 0.2
if (angolo==90)
x1 = x1 - freccia/2
end
if (angolo==270)
x1 = x1 + freccia/2
end
[fid] = linea (fid,x1,y1,x1,y1+numero_quota/2,0,0,0,1)
fprintf(fid, ['<!-- freccia --> \n']);
[fid] = linea (fid,x1-freccia/3, y1 +numero_quota/2-freccia, x1,y1+numero_quota/2,0,0,0,1)
[fid] = linea (fid,x1+freccia/3, y1+numero_quota/2-freccia,x1,y1+numero_quota/2,0,0,0,1)
fprintf(fid, ['<!-- fine freccia --> \n']);
[fid] = linea (fid,x1,y1,x1,y1-numero_quota/2,0,0,0,1)
fprintf(fid, ['<!-- freccia --> \n']);
[fid] = linea (fid,x1-freccia/3, y1-numero_quota/2+freccia, x1,y1-numero_quota/2,0,0,0,1)
[fid] = linea (fid,x1+freccia/3, y1-numero_quota/2+freccia, x1,y1-numero_quota/2,0,0,0,1)
fprintf(fid, ['<!-- fine freccia --> \n']);
end
fprintf(fid, ['<!-- --> \n']);
% --------------------------------------------------------------------------
function [fid] = scrivere_fuori_scala (fid,x1,y1,giustificazione,altezza_testo,testo)
fprintf(fid, ['<!-- Scrivere fuori scala --> \n']);
fprintf(fid, ['' testo '' '\n']);
fprintf(fid, ['<!-- --> \n']);