function [ ok ] = todosjuntos(cualpieza, ndovela, nsoportes, largo, alto ,espesor ,saliente)
%  pinta un soporte superior para la dovela
%  soporte(ndovela,nsoportes,largo, alto ,espesor ,saliente)
%  entradas:  cualpieza = 1-soporte   2-soporteangular    3-tapadera (OBLIGATORIO)   
%             ndovela. número de dovelas (OBLIGATORIO)
%             nsoportes, numero de soportes por dovela(OBLIGATORIO)
%             largo es la profundidad de la dovela(OBLIGATORIO)
%             alto es la altura del soporte(OBLIGATORIO)
%             espesor del material a utilizar 3mm por (DEFAULT) 
%             saliente 1 por (DEFAULT)


% esto ya no sale en el help por el renglón vacío anterior
% esta función tiene los 2 últimos argumentos de entrada optativos,
% cuando estos no se dan se deben asignar valores por DEFAULT
if nargin == 5   % si se dan 5 argumentos hay que asignar los dos faltantes
  espesor = 0.3;
  saliente = 1.0;
end
if nargin == 6   % si se dan 5 argumentos hay que asignar solo el último
  saliente = 1.0;
end

% se supone que la pieza tiene simetría en el eje vertical, 
% solo se dan los puntos de la derecha (la mitad)

% aqui se selccionan y asignan las coordenadas de cada pieza
switch cualpieza
    case 1
x = [0;largo/2.0 - espesor;largo/2.0 - espesor;largo/2.0;largo/2.0;largo/2.0 + saliente;largo/2.0 + saliente;0.0];
y = [0;0.0;alto/2.0;alto/2.0;0.0;0.0;alto;alto;];
% para el desplazamiento de amontonar se reasiga a cero
espesor = 0;
    case 2
x = [0;largo/2.0 - espesor;largo/2.0 - espesor;largo/2.0;largo/2.0;largo/2.0 + saliente;largo/2.0 + saliente;0.0];
y = [0;0.0;alto/2.0;alto/2.0;0.0;0.0;alto + espesor;alto + espesor; ];
% para el desplazamiento de amontonar se deja  tal cual el espesor
    case 3
x = [0;largo/2.0;largo/2.0;largo/2.0 + espesor;largo/2.0 + espesor;largo/2.0;largo/2.0;0.0];
y = [0;0.0;alto/3.0;alto/3.0;2.0*alto/3.0;2.0*alto/3.0;alto;alto;];
% para el desplazamiento de amontonar se reasiga a cero
espesor = 0;
end

% un ciclo para amontonar varias piezas en una columna.
for n=0:ndovela*nsoportes-1      % ajustar el alto real
   line(x,y+n*(alto+espesor));   % la mitad derecha
   line(-x,y+n*(alto+espesor));  % la mitad izquierda
end

ok = 1;  %no se utiliza, pero se asigna un valor de regreso

end

