Analiza stresului de forfecare într-o piesă de fixare a mobilei
Sari la navigare
Sari la căutare
Cu ceva timp în urmă am proiectat un element de fixare din plastic pentru a înlocui mai multe piese similare rupte, care fixau plinta mobilei de bucătărie. Piesa a fost proiectată în Fusion360 și tipărită 3D pe imprimanta mea Prusa. De amuzament și drept exemplu, am folosit fișierul STL generat atunci, pentru a analiza stresul mecanic indus în piesă.
%% exemplu de încărcare a unui STL și generare mesh
close all
clear
clc
model = createpde('structural','static-solid');
[fileName, filePath] = uigetfile('*.stl', 'Alege un fișier STL');
if isequal(fileName, 0)
disp("Nu ai ales nimic. S-a ales prafu' ")
else
disp(['S-a ales fișierul ', fileName]);
importGeometry(model, fullfile(filePath, fileName));
figure('Name','Analiză de element finit - piesă bucătărie: STL');
pdegplot(model, ...
'FaceLabels', 'on', ...
'FaceAlpha', 0.5)
view(30,30);
title(['Plot STL ' fileName ' cu identificarea fețelor'], FontSize=16);
screen = get(0, 'screensize');
screenWidth = screen(3);
screenHeight = screen(4);
position1 = get(gcf, 'OuterPosition');
set(gcf, 'Position', [0 screenHeight (screenWidth/2 - 10) screenHeight/2]);
generateMesh(model);
figure('Name','Analiză de element finit - piesă bucătărie: MESH PDE');
pdemesh(model)
title('Teselizare tetraedrică pentru calcul PDE', FontSize=16)
set(gcf, 'Position', [(screenWidth/2 + 10) screenHeight screenWidth/2 screenHeight/2]);
end
%% structural properties
structuralProperties(model, ...
'YoungsModulus', 300e9, ...
'PoissonsRatio', 0.3);
structuralBC(model,'Face',[14 15],'Constraint','fixed');
structuralBoundaryLoad(model,'Face',[31, 37],'SurfaceTraction',[0;0;-1e4]);
result = solve(model);
% figure
% pdeplot3D(model,'ColorMapData', result.VonMisesStress)
% title('von Mises Stress');
% colormap('jet')
figure('Name','Analiză de element finit - stres forfecare');
pdeplot3D(model, "ColorMapData", result.Strain.xx)
title('Stres forfecare: X-X',FontSize=16)
colormap('jet')
set(gcf, 'Position', [0, 0, screenWidth/3, screenHeight/3]);
figure('Name','Analiză de element finit - stres forfecare');
pdeplot3D(model, "ColorMapData", result.Strain.yy)
title('Stres forfecare: Y-Y',FontSize=16)
colormap('jet')
set(gcf, 'Position', [screenWidth/3, 0, screenWidth/3, screenHeight/3]);
figure('Name','Analiză de element finit - stres forfecare');
pdeplot3D(model, "ColorMapData", result.Strain.zz)
title('Stres forfecare: Z-Z',FontSize=16)
colormap('jet')
set(gcf, 'Position', [2*screenWidth/3, 0, screenWidth/3, screenHeight/3]);