Sei sulla pagina 1di 5

clear all

close all

% Si utilizzino solo ed esclusivamente i radianti

%Inserire dati Ruota (dati rossi esempio):

m = 1.5; % modulo [mm]

z = 90; %numero di denti

p = 2*pi/z;

R = (0.001*m*z)/2; %raggio primitivo[m]

alpha = 20*pi/180; %angolo di pressione [rad]

Rpiede = R-0.0015; % circ piede [m] ATTENZIONE A QUESTI 2 VALORI

Rtesta = R+0.0015; % circ testa [m]

rho = R * cos(alpha); % raggio di base [m]

%calcolo angoli delta minimi e massimi

DELTA_min = acos(rho/Rpiede);

DELTA_max = acos(rho/Rtesta);

% vettore span di delta

DELTA = linspace(DELTA_min, DELTA_max, 100);

% vettore moduli di OP

OP = rho./cos(DELTA);

%angolo argomento gamma

gamma = tan(DELTA) - DELTA;

%proiezione dei valori di OP su x ed y

OPx = OP.*sin(gamma);

OPy = OP.*cos(gamma);

%specchiatura del profilo

Px2 = -OPx;

figure('Name', 'Profilo del dente', 'NumberTitle', 'off')

plot(OPx, OPy,'b')%, Px2, Py)

% hold on per non cancellare il grafico al prossimo giro

hold on

%spessore del dente alla base

sb = 0.001*m*z*cos(alpha)*((pi/(2*z))+(tan(alpha)-alpha));

%larghezza angolare del dente

phi = -sb/rho;

for k = 0:z

OPx1 = OP.*sin(gamma+k*p);

OPy1 = OP.*cos(gamma+k*p);

plot (OPx1, OPy1, 'b')

axis square

hold on

Px2 = -OPx1;

% matrice di rotazione

% https://it.wikipedia.org/wiki/Rotazione_(matematica)#Due_dimensioni

Ms = [cos(phi), -sin(phi) ; sin(phi), cos(phi)];

%creo vettori di zeri per profilo sx

OP3x = zeros(1, numel(OPx1));

OP3y = zeros(1, numel(OPy1));

for i = 1 : numel(OPx)

%creo un vettore (x,y) dei punti del profilo sx inixiale

v0 = [Px2(i), OPy1(i)];

%ruoto il vettore

v1 = Ms*v0';

% assegno xi ed yi al vettore da plottare

OP3x(i) = v1(1);

OP3y(i) = v1(2);

end

plot(OP3x,OP3y,'b')

axis square

hold on

end

%circonferenze di testa e piede

circle(0,0,Rpiede);

circle(0,0,Rtesta);

function h = circle(x,y,r)

th = 0:pi/500:2*pi;

xunit = r * cos(th) + x;

yunit = r * sin(th) + y;

h = plot(xunit, yunit);

end