This commit is contained in:
alessanacunaguardia
2025-10-16 22:46:56 +02:00
parent c88baf9e6e
commit c3aa5d1e4f
6 changed files with 148 additions and 102 deletions

View File

@@ -5,11 +5,19 @@
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Alessandro Acuna - Structural Engineer</title>
<meta name="description" content="Portfolio & CV of Alessandro Acuna, Structural Engineer specialized in composites, CAD, and FEA." />
<!-- Canonical + Social -->
<link rel="canonical" href="https://yourdomain.tld/">
<meta property="og:title" content="Alessandro Acuna - Structural Engineer" />
<meta property="og:description" content="Portfolio & CV of Alessandro Acuna, Structural Engineer specialized in composites, CAD, and FEA." />
<meta property="og:type" content="website" />
<meta property="og:image" content="https://yourdomain.tld/res/og-cover.jpg" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="theme-color" content="#0b0c10" />
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='0.9em' font-size='90'>A</text></svg>">
<!-- Preload CV (opzionale) -->
<link rel="preload" as="fetch" href="res/Alessandro_Acuna_CV.pdf" type="application/pdf" crossorigin>
<style>
/* --- THEME TOKENS --- */
@@ -75,7 +83,7 @@
/* --- LOGHI --- */
.when{display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center;text-align:center;min-height:60px}
.logo-box{width:160px;height:60px;display:grid;place-items:center;background:transparent;border:1px solid transparent;border-radius:10px}
.logo-box{width:160px;height:60px;display:grid;place-items:center;background:transparent;border:1px solid transparent;border-radius:10px; aspect-ratio:160/60;}
.logo{display:block;height:auto;max-height:48px;max-width:100%;object-fit:contain;image-rendering:auto;opacity:.98}
.logo--wide{max-height:44px}
.logo--square{max-height:52px}
@@ -201,6 +209,14 @@
const theme = (t==='light') ? 'light' : 'dark';
document.documentElement.setAttribute('data-theme', theme);
if(metaTheme) metaTheme.setAttribute('content', theme==='light' ? '#ffffff' : '#0b0c10');
// Aggiorna lo stato ARIA del toggle
const btn = document.getElementById('themeToggle');
if(btn){
const isDark = theme==='dark';
btn.textContent = isDark ? '☀️' : '🌙';
btn.title = isDark ? 'Passa a tema chiaro' : 'Passa a tema scuro';
btn.setAttribute('aria-pressed', isDark ? 'false' : 'true');
}
};
const saved = localStorage.getItem(KEY);
const prefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
@@ -212,6 +228,7 @@
const cur = document.documentElement.getAttribute('data-theme') || 'dark';
btn.textContent = (cur==='dark') ? '☀️' : '🌙';
btn.title = (cur==='dark') ? 'Passa a tema chiaro' : 'Passa a tema scuro';
btn.setAttribute('aria-pressed', cur==='dark' ? 'false' : 'true');
};
setIcon();
btn.addEventListener('click', ()=>{
@@ -225,7 +242,7 @@
})();
</script>
<!-- JSON-LD base -->
<!-- JSON-LD base (sostituisci yourdomain.tld e l'immagine OG) -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
@@ -234,9 +251,15 @@
"jobTitle": "Structural Engineer",
"email": "mailto:alessan.acunaguardia@gmail.com",
"telephone": "+393277671048",
"url": "",
"url": "https://yourdomain.tld/",
"image": "https://yourdomain.tld/res/og-cover.jpg",
"sameAs": ["https://www.linkedin.com/in/aleacuna"],
"knowsAbout": ["Composite Materials","FEA","CAD","Aerospace","Python"]
"knowsAbout": ["Composite Materials","FEA","CAD","Aerospace","Python"],
"address": {
"@type": "PostalAddress",
"addressLocality": "Madrid",
"addressCountry": "ES"
}
}
</script>
</head>
@@ -262,22 +285,22 @@
<span class="lang-caret"></span>
</button>
<div class="lang-menu" id="langMenu" role="listbox" tabindex="-1">
<div class="lang-option" role="option" data-lang="it" aria-selected="true">
<div class="lang-option" role="option" data-lang="it" aria-selected="true" tabindex="0">
<span class="lang-flag">🇮🇹</span><span class="lang-name">Italiano</span><span class="lang-short">IT</span><span class="lang-check"></span>
</div>
<div class="lang-option" role="option" data-lang="en" aria-selected="false">
<div class="lang-option" role="option" data-lang="en" aria-selected="false" tabindex="0">
<span class="lang-flag">🇬🇧</span><span class="lang-name">English</span><span class="lang-short">EN</span><span class="lang-check"></span>
</div>
<div class="lang-option" role="option" data-lang="de" aria-selected="false">
<div class="lang-option" role="option" data-lang="de" aria-selected="false" tabindex="0">
<span class="lang-flag">🇩🇪</span><span class="lang-name">Deutsch</span><span class="lang-short">DE</span><span class="lang-check"></span>
</div>
<div class="lang-option" role="option" data-lang="es" aria-selected="false">
<div class="lang-option" role="option" data-lang="es" aria-selected="false" tabindex="0">
<span class="lang-flag">🇪🇸</span><span class="lang-name">Español</span><span class="lang-short">ES</span><span class="lang-check"></span>
</div>
</div>
</div>
<button id="themeToggle" class="btn" aria-label="Toggle theme" title="Light/Dark">🌓</button>
<button id="themeToggle" class="btn" aria-label="Toggle theme" aria-pressed="false" title="Light/Dark">🌓</button>
<a class="btn primary" href="res/Alessandro_Acuna_CV.pdf" download data-i18n="cta.downloadCv" data-i18n-attr="title" title="Scarica il CV">⬇️ Scarica CV</a>
</div>
</nav>
@@ -303,7 +326,7 @@
<div style="margin-top:16px; display:flex; gap:10px; flex-wrap:wrap">
<a class="btn" href="mailto:alessan.acunaguardia@gmail.com">📧 Email</a>
<a class="btn" href="tel:+393277671048">📱 +393277671048</a>
<a class="btn" href="https://www.linkedin.com/in/aleacuna" target="_blank" rel="noopener">💼 LinkedIn</a>
<a class="btn" href="https://www.linkedin.com/in/aleacuna" target="_blank" rel="noopener noreferrer">💼 LinkedIn</a>
</div>
</div>
<div class="grid">
@@ -337,7 +360,7 @@
</div>
<div>
<h3 class="brand">
<a class="brand-link" href="https://www.airbus.com" target="_blank" rel="noopener" data-i18n="exp.airbus.title">AIRBUS - Structural Design &amp; Analysis Engineer</a>
<a class="brand-link" href="https://www.airbus.com" target="_blank" rel="noopener noreferrer" data-i18n="exp.airbus.title">AIRBUS - Structural Design &amp; Analysis Engineer</a>
<span class="where" data-i18n="exp.airbus.where">Madrid, ES</span>
</h3>
<ul>
@@ -356,7 +379,7 @@
</div>
<div>
<h3 class="brand">
<a class="brand-link" href="https://www.dlr.de" target="_blank" rel="noopener" data-i18n="exp.dlr.title">DLR - Master Thesis · R&amp;D Engineer</a>
<a class="brand-link" href="https://www.dlr.de" target="_blank" rel="noopener noreferrer" data-i18n="exp.dlr.title">DLR - Master Thesis · R&amp;D Engineer</a>
<span class="where" data-i18n="exp.dlr.where">Stuttgart, DE</span>
</h3>
<ul>
@@ -376,7 +399,7 @@
</div>
<div>
<h3 class="brand">
<a class="brand-link" href="https://motorsport.unibo.it/" target="_blank" rel="noopener" data-i18n="exp.unibo.title">UniBo Motorsport - Stress &amp; Design Engineer</a>
<a class="brand-link" href="https://motorsport.unibo.it/" target="_blank" rel="noopener noreferrer" data-i18n="exp.unibo.title">UniBo Motorsport - Stress &amp; Design Engineer</a>
<span class="where" data-i18n="exp.unibo.where">Bologna, IT</span>
</h3>
<ul>
@@ -393,7 +416,7 @@
</div>
<div>
<h3 class="brand">
<a class="brand-link" href="https://www.dvp.it" target="_blank" rel="noopener" data-i18n="exp.dvp.title">D.V.P. Vacuum Technology - Bachelor Thesis · R&amp;D Engineer</a>
<a class="brand-link" href="https://www.dvp.it" target="_blank" rel="noopener noreferrer" data-i18n="exp.dvp.title">D.V.P. Vacuum Technology - Bachelor Thesis · R&amp;D Engineer</a>
<span class="where" data-i18n="exp.dvp.where">Bologna, IT</span>
</h3>
<ul>
@@ -410,7 +433,7 @@
</div>
<div>
<h3 class="brand">
<a class="brand-link" href="https://www.cpcgroup.it" target="_blank" rel="noopener" data-i18n="exp.cpc.title">CPC Group - Composite Laminator</a>
<a class="brand-link" href="https://www.cpcgroup.it" target="_blank" rel="noopener noreferrer" data-i18n="exp.cpc.title">CPC Group - Composite Laminator</a>
<span class="where" data-i18n="exp.cpc.where">Modena, IT</span>
</h3>
<ul>
@@ -440,9 +463,13 @@
<p data-i18n="projects.card.sec19.teaser">Skin laminate & stringer concept, drop-offs, reinforcements, frame joints (clips, Ø4.8 mm). <span class="where">UPM · JanMar 2024</span></p>
</div>
<div class="card project" data-modal="tmpl-handlebar-support">
<h3 data-i18n="projects.card.handlebar.title">Motorbike rear subframe - AlSi10Mg (SLM)</h3>
<p data-i18n="projects.card.handlebar.teaser">Topology optimization, VDI 2230 bolted joints, static/fatigue validation (Ansys), weight minimization. <span class="where">Unibo · SepDec 2024</span></p>
<!-- Handlebar Bracket (NUOVO) -->
<div class="card project" data-modal="tmpl-handlebar-bracket">
<h3 data-i18n="projects.card.handlebar.title">Handlebar Bracket - AW-2024 T3</h3>
<p data-i18n="projects.card.handlebar.teaser">
Topology optimization, clamp &amp; VDI 2230 bolted-joint checks, static/fatigue validation (Ansys), weight minimization.
<span class="where">Unibo · SepDec 2024</span>
</p>
</div>
<div class="card project" data-modal="tmpl-drone-structure">
@@ -459,7 +486,7 @@
<p data-i18n-html="proj.stiff.obj"><strong>Objective -</strong> Design and validate CFRP panels with stringers, minimizing weight while meeting buckling and damage-tolerance requirements under the defined load cases.</p>
<div>
<a class="btn primary" href="res/projects/stiffened-panels/report.pdf" target="_blank" rel="noopener" data-i18n="proj.common.download">📄 Download report</a>
<a class="btn primary" href="res/projects/stiffened-panels/report.pdf" target="_blank" rel="noopener noreferrer" data-i18n="proj.common.download">📄 Download report</a>
</div>
<h5 data-i18n="proj.common.what">What I did</h5>
@@ -492,7 +519,7 @@
<p data-i18n-html="proj.hashin.obj"><strong>Objective -</strong> Simulate a UD laminate under tension and compression using <em>Hashin damage initiation</em> to identify ply-by-ply failure and compare tensile vs compressive capacity.</p>
<div>
<a class="btn primary" href="res/projects/hashin/report.pdf" target="_blank" rel="noopener" data-i18n="proj.common.download">📄 Download report</a>
<a class="btn primary" href="res/projects/hashin/report.pdf" target="_blank" rel="noopener noreferrer" data-i18n="proj.common.download">📄 Download report</a>
</div>
<h5 data-i18n="proj.common.model">Model</h5>
@@ -542,7 +569,7 @@
<p data-i18n-html="proj.sec19.obj"><strong>Objective -</strong> Define composite skin and stringer concept, reinforcements, drop-offs, and frame joints (clips, Ø4.8 mm) for a fuselage bay between Frames AB.</p>
<div>
<a class="btn primary" href="res/projects/section19/report.pdf" target="_blank" rel="noopener" data-i18n="proj.common.download">📄 Download report</a>
<a class="btn primary" href="res/projects/section19/report.pdf" target="_blank" rel="noopener noreferrer" data-i18n="proj.common.download">📄 Download report</a>
</div>
<h5 data-i18n="proj.sec19.given">Given data</h5>
@@ -575,41 +602,55 @@
</ul>
</template>
<!-- Handlebar / Rear Subframe -->
<template id="tmpl-handlebar-support">
<h4 data-i18n="proj.handle.h4">Motorbike Rear Subframe - AlSi10Mg (SLM)</h4>
<p data-i18n-html="proj.handle.obj"><strong>Objective -</strong> Design the lightest possible rear saddle frame within the boundary envelope, load-case compliant (static + fatigue), manufacturable by SLM (AlSi10Mg).</p>
<!-- Handlebar Bracket -->
<template id="tmpl-handlebar-bracket">
<h4 data-i18n="proj.handle.h4">Handlebar Bracket - AW-2024 T3</h4>
<p data-i18n-html="proj.handle.obj">
<strong>Objective -</strong> Design a lightweight handlebar bracket within the design envelope,
compliant with steering/impact/vibration loads, manufacturable by AW-2024 T3.
</p>
<div>
<a class="btn primary" href="res/projects/handlebar/report.pdf" target="_blank" rel="noopener" data-i18n="proj.common.download">📄 Download report</a>
<a class="btn primary" href="res/projects/handlebar-bracket/report.pdf" target="_blank" rel="noopener noreferrer" data-i18n="proj.common.download">
📄 Download report
</a>
</div>
<h5 data-i18n="proj.common.process">Process</h5>
<ul>
<li data-i18n="proj.handle.p1"><strong>AM setup:</strong> AlSi10Mg; printer SLM <em>NXG XII 600</em> (590 × 560 × 367 mm).</li>
<li data-i18n="proj.handle.p2"><strong>Topology:</strong> stress-based trial (~2.8 kg) → <strong>compliance-based</strong> (~2.06 kg) with rebuilds.</li>
<li data-i18n="proj.handle.p3"><strong>Bolts (VDI 2230):</strong> Subframe M8×4; saddle M5×4; preload &amp; checks via hand calcs + MATLAB from FEA reactions.</li>
<li data-i18n="proj.handle.p4"><strong>Validation (Ansys):</strong> static + fatigue, mesh conv. ~1.5 mm; local refinements near bolts.</li>
<li data-i18n="proj.handle.p2"><strong>Topology:</strong> compliance target with constraints on clamp stiffness and load paths → smoothed CAD rebuild.</li>
<li data-i18n="proj.handle.p3"><strong>Bolts (VDI 2230):</strong> M6 for clamp; torque, preload &amp; checks from FEA reactions.</li>
<li data-i18n="proj.handle.p4"><strong>Validation (Ansys):</strong> static + fatigue (Goodman); handlebarclamp contact and surface pressure checks.</li>
</ul>
<h5 data-i18n="proj.common.model">Model</h5>
<ul>
<li><strong>Material (bracket):</strong> EN AW-2024 T3 — ρ=2.77×10<sup>3</sup> kg/mm³, E=73.1 GPa, ν=0.33, σ<sub>y</sub>=345 MPa, σ<sub>u</sub>=483 MPa.</li>
<li><strong>Loads:</strong> ultimate Fx=450 N, Fz=100 N; fatigue Fx=±350 N, Fz=50 N; life target 10<sup>5</sup> cycles.</li>
<li><strong>Contacts:</strong> threaded shaftbracket bonded; under-head frictional (μ≈0.39); mesh conv. ~2.5 mm (local 2 mm).</li>
</ul>
<h5 data-i18n="proj.common.results">Results</h5>
<ul>
<li data-i18n="proj.handle.r1"><strong>Safety factors:</strong> &gt; 2 static, &gt; 1 fatigue (Goodman).</li>
<li data-i18n="proj.handle.r2"><strong>Deflection:</strong> &lt; 2 mm under defined loads.</li>
<li data-i18n="proj.handle.r3"><strong>Final weight:</strong> ~<strong>656 g</strong> after combined-load map optimization.</li>
<li data-i18n="proj.handle.r1"><strong>Safety factors:</strong> 2 static, 1 fatigue.</li>
<li data-i18n="proj.handle.r2"><strong>Clamp stiffness:</strong> within deflection/rotation limits; max deflection &lt; 1 mm at ultimate load.</li>
<li><strong>Bolts:</strong> VDI 2230 checks OK (tightening, head pressure, stiffness, thread engagement).</li>
</ul>
<div class="modal-gallery">
<img src="res/projects/handlebar/design_space.png" alt="Design vs non-design space for the rear subframe" loading="lazy">
<img src="res/projects/handlebar/topology_outputs.png" alt="Topology optimization outputs" loading="lazy">
<img src="res/projects/handlebar/finaldesign.png" alt="Final Handlebar Design" loading="lazy">
<img src="res/projects/handlebar/femcomparison.png" alt="Comparison Previous and Final Geometry" loading="lazy">
<img src="res/projects/handlebar-bracket/design_space.png" alt="Design space: clamp zone and handlebar constraints" loading="lazy">
<img src="res/projects/handlebar-bracket/topology_outputs.png" alt="Topology optimization outputs for handlebar bracket" loading="lazy">
<img src="res/projects/handlebar-bracket/finaldesign.png" alt="Final handlebar bracket design (AW-2024 T3)" loading="lazy">
<img src="res/projects/handlebar-bracket/femresults.png" alt="FEM results: safety factor and deflection maps" loading="lazy">
</div>
<hr style="border:none;border-top:1px solid var(--border);margin:8px 0 4px">
<ul class="chips" aria-label="Highlights">
<li class="chip" data-i18n="proj.handle.ch1">AlSi10Mg - SLM</li>
<li class="chip" data-i18n="proj.handle.ch1">AW-2024 T3 </li>
<li class="chip" data-i18n="proj.handle.ch2">Topology-Optimized</li>
<li class="chip" data-i18n="proj.handle.ch3">VDI 2230 bolts</li>
<li class="chip" data-i18n="proj.handle.ch4">SF&gt;2 / SF&gt;1</li>
<li class="chip" data-i18n="proj.handle.ch5">~656 g</li>
<li class="chip" data-i18n="proj.handle.ch4">Clamp OK</li>
<li class="chip" data-i18n="proj.handle.ch5">Deflection &lt; 1 mm</li>
</ul>
</template>
@@ -619,7 +660,7 @@
<p data-i18n-html="proj.drone.obj"><strong>Objective -</strong> Define laminate schedule and thicknesses to minimize weight while maintaining stiffness and strength on a composite drone frame, with harmonic and impact checks on critical members.</p>
<div>
<a class="btn primary" href="res/projects/drone/report.pdf" target="_blank" rel="noopener" data-i18n="proj.common.download">📄 Download report</a>
<a class="btn primary" href="res/projects/drone/report.pdf" target="_blank" rel="noopener noreferrer" data-i18n="proj.common.download">📄 Download report</a>
</div>
<h5 data-i18n="proj.common.what">What I did</h5>
@@ -659,7 +700,7 @@
</div>
<div>
<h3 class="brand">
<a class="brand-link" href="https://www.upm.es" target="_blank" rel="noopener">Master in Composite Materials</a>
<a class="brand-link" href="https://www.upm.es" target="_blank" rel="noopener noreferrer">Master in Composite Materials</a>
<span class="where">AIRBUS Programme, Universidad Politécnica de Madrid</span>
</h3>
<p>Courses: Design of Advanced Composite Structures · Analysis of Composite Strucures · Abaqus Lab · Space Structures.</p>
@@ -671,7 +712,7 @@
</div>
<div>
<h3 class="brand">
<a class="brand-link" href="https://www.unibo.it" target="_blank" rel="noopener">MSc in Mechanical Engineering (Minor: Mechanical Design & Modelling)</a>
<a class="brand-link" href="https://www.unibo.it" target="_blank" rel="noopener noreferrer">MSc in Mechanical Engineering (Minor: Mechanical Design & Modelling)</a>
<span class="where">University of Bologna</span>
</h3>
<p>Courses: Chassis & Body Design Manufacturing · CAD of Surfaces Lab · CAD of Mechanical Structures · Processes and Manufacturing Methods for Product Development.</p>
@@ -683,7 +724,7 @@
</div>
<div>
<h3 class="brand">
<a class="brand-link" href="https://www.uni-stuttgart.de" target="_blank" rel="noopener">Erasmus+ Aerospace Engineering</a>
<a class="brand-link" href="https://www.uni-stuttgart.de" target="_blank" rel="noopener noreferrer">Erasmus+ Aerospace Engineering</a>
<span class="where">University of Stuttgart</span>
</h3>
<p>Computational Dynamics (Robotics) · Computational Mechanics of Structures · Advanced FEA Technology.</p>
@@ -695,7 +736,7 @@
</div>
<div>
<h3 class="brand">
<a class="brand-link" href="https://www.unibo.it" target="_blank" rel="noopener">BSc in Mechanical Engineering</a>
<a class="brand-link" href="https://www.unibo.it" target="_blank" rel="noopener noreferrer">BSc in Mechanical Engineering</a>
<span class="where">University of Bologna</span>
</h3>
</div>
@@ -743,7 +784,7 @@
<strong data-i18n="contact.locationTitle">Current location:</strong> Madrid, Spain
<div style="margin:10px 0;">
<iframe src="https://www.openstreetmap.org/export/embed.html?bbox=-3.745%2C40.312%2C-3.543%2C40.563&amp;layer=mapnik&amp;marker=40.4168%2C-3.7038" style="width:100%;height:220px;border-radius:12px;border:1px solid var(--border);" allowfullscreen loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe>
<div style="font-size:13px;color:var(--muted);margin-top:4px;text-align:right"><a href="https://www.openstreetmap.org/?mlat=40.4168&amp;mlon=-3.7038#map=12/40.4168/-3.7038" target="_blank" rel="noopener" style="color:var(--primary)" data-i18n="contact.viewmap">View larger map</a></div>
<div style="font-size:13px;color:var(--muted);margin-top:4px;text-align:right"><a href="https://www.openstreetmap.org/?mlat=40.4168&amp;mlon=-3.7038#map=12/40.4168/-3.7038" target="_blank" rel="noopener noreferrer" style="color:var(--primary)" data-i18n="contact.viewmap">View larger map</a></div>
</div>
<div style="margin:10px 0 18px 0">
<strong data-i18n="contact.hoursTitle">Contact hours (Madrid time):</strong>
@@ -757,7 +798,7 @@
<div style="display:flex; gap:10px; flex-wrap:wrap">
<a class="btn" href="mailto:alessan.acunaguardia@gmail.com">📧 alessan.acunaguardia@gmail.com</a>
<a class="btn" href="tel:+393277671048">📱 +39 327 767 1048</a>
<a class="btn" href="https://www.linkedin.com/in/aleacuna" target="_blank" rel="noopener">💼 linkedin.com/in/aleacuna</a>
<a class="btn" href="https://www.linkedin.com/in/aleacuna" target="_blank" rel="noopener noreferrer">💼 linkedin.com/in/aleacuna</a>
</div>
</div>
</section>
@@ -935,8 +976,8 @@
'projects.card.hashin.teaser':'Provino UD a trazione vs. compressione; failure ply-by-ply con Hashin; analisi FEM. <span class="where">UPM · GenMar 2025</span>',
'projects.card.sec19.title':'Sezione 19 - fusoliera posteriore (Skin & Stringers)',
'projects.card.sec19.teaser':'Skin laminate & concept stringers, drop-off, rinforzi, giunti a frame (clip, Ø4.8 mm). <span class="where">UPM · GenMar 2024</span>',
'projects.card.handlebar.title':'Subframe posteriore moto - AlSi10Mg (SLM)',
'projects.card.handlebar.teaser':'Topology optimization, bulloneria VDI 2230, validazione static/fatica (Ansys), minimizzazione peso. <span class="where">Unibo · SetDic 2024</span>',
'projects.card.handlebar.title':'Staffa manubrio - AW-2024 T3',
'projects.card.handlebar.teaser':'Ottimizzazione topologica, verifica morsetto e bulloneria VDI 2230, validazione statico/fatica (Ansys), minimizzazione del peso. <span class="where">Unibo · SetDic 2024</span>',
'projects.card.drone.title':'Struttura drone in composito',
'projects.card.drone.teaser':'Definizione lamina, ottimizzazione spessori, analisi armoniche & impatto. <span class="where">Unibo · FebGiu 2023</span>',
@@ -1058,20 +1099,18 @@
'proj.sec19.ch3':'UD CPT 0.184 mm',
'proj.sec19.ch4':'Clip Ø 4.8 mm',
'proj.handle.h4':'Subframe posteriore moto - AlSi10Mg (SLM)',
'proj.handle.obj':'<strong>Obiettivo -</strong> Progettare il telaio sellino più leggero entro gli ingombri, conforme ai carichi (statico + fatica), producibile in SLM (AlSi10Mg).',
'proj.handle.p1':'<strong>AM:</strong> AlSi10Mg; stampante SLM <em>NXG XII 600</em> (590 × 560 × 367 mm).',
'proj.handle.p2':'<strong>Topologia:</strong> stress-based (~2.8 kg) → <strong>compliance-based</strong> (~2.06 kg).',
'proj.handle.p3':'<strong>Bulloni (VDI 2230):</strong> Subframe M8×4; sella M5×4; preload + check da reazioni FEM.',
'proj.handle.p4':'<strong>Validazione (Ansys):</strong> statico + fatica; mesh ~1.5 mm.',
'proj.handle.r1':'<strong>Fattori di sicurezza:</strong> &gt; 2 statico, &gt; 1 fatica.',
'proj.handle.r2':'<strong>Deflessione:</strong> &lt; 2 mm.',
'proj.handle.r3':'<strong>Peso finale:</strong> ~<strong>656 g</strong>.',
'proj.handle.ch1':'AlSi10Mg - SLM',
'proj.handle.h4':'Staffa manubrio - AW-2024 T3',
'proj.handle.obj':'<strong>Obiettivo -</strong> Progettare una staffa manubrio leggera entro gli ingombri, conforme ai carichi di sterzo/urto/vibrazioni, producibile in AW-2024 T3.',
'proj.handle.p2':'<strong>Topologia:</strong> obiettivo di compliance con vincoli su rigidezza del morsetto e percorsi di carico → rebuild CAD levigato.',
'proj.handle.p3':'<strong>Bulloni (VDI 2230):</strong> M6 per morsetto; coppia, preload e verifiche da reazioni FEM.',
'proj.handle.p4':'<strong>Validazione (Ansys):</strong> statico + fatica (Goodman); contatto manubriomorsetto e pressioni superficiali.',
'proj.handle.r1':'<strong>Fattori di sicurezza:</strong> ≥ 2 statico, ≥ 1 a fatica.',
'proj.handle.r2':'<strong>Rigidezza morsetto:</strong> entro i limiti di flessione/rotazione; freccia max &lt; 1 mm.',
'proj.handle.ch1':'AW-2024 T3',
'proj.handle.ch2':'Topology-Optimized',
'proj.handle.ch3':'VDI 2230',
'proj.handle.ch4':'SF&gt;2 / SF&gt;1',
'proj.handle.ch5':'~656 g',
'proj.handle.ch4':'Morsetto OK',
'proj.handle.ch5':'Deflessione &lt; 1 mm',
'proj.drone.h4':'Struttura drone in composito',
'proj.drone.obj':'<strong>Obiettivo -</strong> Definire layup e spessori per minimizzare il peso mantenendo rigidezza/resistenza; verifiche armoniche e impatto.',
@@ -1127,8 +1166,8 @@
'projects.card.hashin.teaser':'UD laminate under tension vs compression; ply-by-ply failure using Hashin initiation; FEM-driven analysis. <span class="where">UPM · JanMar 2025</span>',
'projects.card.sec19.title':'Rear Fuselage - Section 19 (Skin & Stringers)',
'projects.card.sec19.teaser':'Skin laminate & stringer concept, drop-offs, reinforcements, frame joints (clips, Ø4.8 mm). <span class="where">UPM · JanMar 2024</span>',
'projects.card.handlebar.title':'Motorbike rear subframe - AlSi10Mg (SLM)',
'projects.card.handlebar.teaser':'Topology optimization, VDI 2230 bolted joints, static/fatigue validation (Ansys), weight minimization. <span class="where">Unibo · SepDec 2024</span>',
'projects.card.handlebar.title':'Handlebar Bracket - AW-2024 T3',
'projects.card.handlebar.teaser':'Topology optimization, clamp & VDI 2230 bolted-joint checks, static/fatigue validation (Ansys), weight minimization. <span class="where">Unibo · SepDec 2024</span>',
'projects.card.drone.title':'Composite drone structure',
'projects.card.drone.teaser':'Lamination definition, thickness optimization, harmonic & impact FEM analyses. <span class="where">Unibo · FebJun 2023</span>',
@@ -1238,7 +1277,7 @@
'proj.sec19.g1':'<strong>Geometry:</strong> cylinder <strong>R = 4500 mm</strong>; frames <strong>550 mm</strong> apart; stringer pitch <strong>150 mm</strong>.',
'proj.sec19.g2':'<strong>Material:</strong> UD, <strong>CPT 0.184 mm</strong>.',
'proj.sec19.g3':'<strong>Skin:</strong> base <strong>9 plies (2/4/3)</strong>; reinforcement <strong>14 plies (2/8/4)</strong>, <strong>100 × 70 mm</strong> patch.',
'proj.sec19.g4':'<strong>Stringers:</strong> <strong>h &lt; 35 mm</strong>, <strong>R ≥ 3 mm</strong>; web <strong>20 plies</strong> (50% 0° / 40% ±45° / 10% 90°); <strong>web = 2× flange</strong>.',
'proj.sec19.g4':'<strong>Stringers:</strong> <strong>h &lt; 35 mm</strong>, <strong>R ≥ 3 mm</strong>; web <strong>20 plies</strong> (50% 0° / 40% ±45° / 10% 90%); <strong>web = 2× flange</strong>.',
'proj.sec19.g5':'<strong>Joints:</strong> clips + <strong>Ø 4.8 mm</strong> fasteners.',
'proj.sec19.li1':'Built the master geometry (frames & stringers on skin), set pitch and feet widths.',
'proj.sec19.li2':'Mapped skin layups, drop-offs and reinforcement footprint.',
@@ -1249,20 +1288,18 @@
'proj.sec19.ch3':'UD CPT 0.184 mm',
'proj.sec19.ch4':'Clips Ø 4.8 mm',
'proj.handle.h4':'Motorbike Rear Subframe - AlSi10Mg (SLM)',
'proj.handle.obj':'<strong>Objective -</strong> Design the lightest possible rear saddle frame within the boundary envelope, load-case compliant (static + fatigue), manufacturable by SLM (AlSi10Mg).',
'proj.handle.p1':'<strong>AM setup:</strong> AlSi10Mg; printer SLM <em>NXG XII 600</em> (590 × 560 × 367 mm).',
'proj.handle.p2':'<strong>Topology:</strong> stress-based trial (~2.8 kg) → <strong>compliance-based</strong> (~2.06 kg) with rebuilds.',
'proj.handle.p3':'<strong>Bolts (VDI 2230):</strong> Subframe M8×4; saddle M5×4; preload & checks via hand calcs + MATLAB from FEA reactions.',
'proj.handle.p4':'<strong>Validation (Ansys):</strong> static + fatigue, mesh conv. ~1.5 mm; local refinements near bolts.',
'proj.handle.r1':'<strong>Safety factors:</strong> &gt; 2 static, &gt; 1 fatigue (Goodman).',
'proj.handle.r2':'<strong>Deflection:</strong> &lt; 2 mm under defined loads.',
'proj.handle.r3':'<strong>Final weight:</strong> ~<strong>656 g</strong> after combined-load map optimization.',
'proj.handle.ch1':'AlSi10Mg - SLM',
'proj.handle.h4':'Handlebar Bracket - AW-2024 T3',
'proj.handle.obj':'<strong>Objective -</strong> Design a lightweight handlebar bracket within the envelope, compliant with steering/impact/vibration loads, manufacturable by AW-2024 T3.',
'proj.handle.p2':'<strong>Topology:</strong> compliance target with constraints on clamp stiffness and load paths → smoothed CAD rebuild.',
'proj.handle.p3':'<strong>Bolts (VDI 2230):</strong> M6 for clamp; torque, preload & checks driven by FEA reactions.',
'proj.handle.p4':'<strong>Validation (Ansys):</strong> static + fatigue (Goodman); handlebarclamp contact and surface pressure checks.',
'proj.handle.r1':'<strong>Safety factors:</strong> ≥ 2 static, ≥ 1 fatigue.',
'proj.handle.r2':'<strong>Clamp stiffness:</strong> within deflection/rotation limits; max deflection &lt; 1 mm.',
'proj.handle.ch1':'AW-2024 T3',
'proj.handle.ch2':'Topology-Optimized',
'proj.handle.ch3':'VDI 2230 bolts',
'proj.handle.ch4':'SF&gt;2 / SF&gt;1',
'proj.handle.ch5':'~656 g',
'proj.handle.ch4':'Clamp OK',
'proj.handle.ch5':'Deflection &lt; 1 mm',
'proj.drone.h4':'Composite drone structure',
'proj.drone.obj':'<strong>Objective -</strong> Define laminate schedule and thicknesses to minimize weight while maintaining stiffness and strength on a composite drone frame, with harmonic and impact checks on critical members.',
@@ -1280,7 +1317,7 @@
},
/* =========================
DEUTSCH (mit vollständigen Modal-Übersetzungen)
DEUTSCH
========================= */
de: {
'cta.downloadCv': '⬇️ Lebenslauf herunterladen',
@@ -1318,8 +1355,8 @@
'projects.card.hashin.teaser':'UD-Laminat Zug vs. Druck; ply-by-ply Versagen mit Hashin; FEM-gestützte Analyse. <span class="where">UPM · JanMär 2025</span>',
'projects.card.sec19.title':'Heckrumpf - Sektion 19 (Skin & Stringers)',
'projects.card.sec19.teaser':'Skin-Laminat & Stringer-Konzept, Drop-offs, Verstärkungen, Rahmenverbindungen (Clips, Ø4,8 mm). <span class="where">UPM · JanMär 2024</span>',
'projects.card.handlebar.title':'Motorrad-Heckrahmen - AlSi10Mg (SLM)',
'projects.card.handlebar.teaser':'Topologie­optimierung, VDI 2230 Schrauben, statische/Ermüdungs­prüfung (Ansys), Gewichts­minimierung. <span class="where">Unibo · SepDez 2024</span>',
'projects.card.handlebar.title':'Lenkerhalterung - AW-2024 T3',
'projects.card.handlebar.teaser':'Topologie­optimierung, Klemmen- & VDI-2230-Schraubennachweise, statische/Ermüdungs-Validierung (Ansys), Gewichts­minimierung. <span class="where">Unibo · SepDez 2024</span>',
'projects.card.drone.title':'Verbund-Drone-Struktur',
'projects.card.drone.teaser':'Laminatdefinition, Dickenoptimierung, harmonische & Schlag-FEM. <span class="where">Unibo · FebJun 2023</span>',
@@ -1376,7 +1413,6 @@
'exp.cpc.where':'Modena, IT',
'exp.cpc.p1':'Laminieren von <strong>CFRP</strong>-Formen und eines Chassis für das Formula-SAE-Team.',
/* PROJEKTE - gemeinsam */
'proj.common.what':'Was ich gemacht habe',
'proj.common.model':'Modell',
'proj.common.tools':'Werkzeuge',
@@ -1384,7 +1420,6 @@
'proj.common.process':'Prozess',
'proj.common.download':'📄 Bericht herunterladen',
/* === PROJEKTE - Details (DE) === */
'proj.stiff.h4':'Versteifte Verbundpaneele',
'proj.stiff.obj':'<strong>Ziel -</strong> CFRP-Paneele mit Stringern auslegen und validieren, Gewicht minimieren und Beul-/Schadens­toleranz-Anforderungen erfüllen.',
'proj.stiff.li1':'<strong>Layups</strong> für Skin und Stringer definiert (Symmetrie, Balance, Lagenanteile).',
@@ -1429,7 +1464,7 @@
'proj.sec19.g1':'<strong>Geometrie:</strong> Zylinder <strong>R = 4500 mm</strong>; Rahmenabstand <strong>550 mm</strong>; Stringer-Pitch <strong>150 mm</strong>.',
'proj.sec19.g2':'<strong>Material:</strong> UD, <strong>CPT 0,184 mm</strong>.',
'proj.sec19.g3':'<strong>Skin:</strong> Basis <strong>9 Lagen (2/4/3)</strong>; Verstärkung <strong>14 Lagen (2/8/4)</strong>, Patch <strong>100 × 70 mm</strong>.',
'proj.sec19.g4':'<strong>Stringer:</strong> <strong>h &lt; 35 mm</strong>, <strong>R ≥ 3 mm</strong>; Steg <strong>20 Lagen</strong> (50 % 0° / 40 % ±45° / 10 % 90°); <strong>Steg = 2× Flansch</strong>.',
'proj.sec19.g4':'<strong>Stringer:</strong> <strong>h &lt; 35 mm</strong>, <strong>R ≥ 3 mm</strong>; Steg <strong>20 Lagen</strong> (50 % 0° / 40 % ±45° / 10 % 90 %); <strong>Steg = 2× Flansch</strong>.',
'proj.sec19.g5':'<strong>Verbindungen:</strong> Clips + <strong>Ø 4,8 mm</strong> Befestiger.',
'proj.sec19.li1':'Mastergeometrie (Rahmen & Stringer auf der Skin), Pitch und Fußbreiten erstellt.',
'proj.sec19.li2':'Skin-Layups, Drop-offs und Verstärkungs-Footprint kartiert.',
@@ -1440,20 +1475,18 @@
'proj.sec19.ch3':'UD CPT 0,184 mm',
'proj.sec19.ch4':'Clips Ø 4,8 mm',
'proj.handle.h4':'Motorrad-Heckrahmen - AlSi10Mg (SLM)',
'proj.handle.obj':'<strong>Ziel -</strong> Möglichst leichten Sattel-Heckrahmen innerhalb der Hüllkurve konstruieren, lastfallkonform (statisch + Ermüdung), herstellbar per SLM (AlSi10Mg).',
'proj.handle.p1':'<strong>AM-Setup:</strong> AlSi10Mg; SLM-Drucker <em>NXG XII 600</em> (590 × 560 × 367 mm).',
'proj.handle.p2':'<strong>Topologie:</strong> Spannungs­basiert (~2,8 kg) → <strong>Compliance-basiert</strong> (~2,06 kg) mit Rebuilds.',
'proj.handle.p3':'<strong>Schrauben (VDI 2230):</strong> Heckrahmen M8×4; Sattel M5×4; Vorspannung & Nachweise über Handrechnungen + MATLAB aus FEM-Reaktionen.',
'proj.handle.p4':'<strong>Validierung (Ansys):</strong> statisch + Ermüdung; Netzkonvergenz ~1,5 mm; lokale Verfeinerungen an Schrauben.',
'proj.handle.r1':'<strong>Sicherheitsfaktoren:</strong> &gt; 2 statisch, &gt; 1 Ermüdung (Goodman).',
'proj.handle.r2':'<strong>Durchbiegung:</strong> &lt; 2 mm unter definierten Lasten.',
'proj.handle.r3':'<strong>Endgewicht:</strong> ~<strong>656 g</strong> nach Optimierung mit kombinierten Lastkarten.',
'proj.handle.ch1':'AlSi10Mg - SLM',
'proj.handle.h4':'Lenkerhalterung - AW-2024 T3',
'proj.handle.obj':'<strong>Ziel -</strong> Leichte Lenkerhalterung innerhalb der Hüllkurve, konform zu Lenk-/Schlag-/Vibrationslasten, herstellbar per AW-2024 T3.',
'proj.handle.p2':'<strong>Topologie:</strong> Compliance-Ziel mit Randbedingungen zur Klemmensteifigkeit & Lastpfaden → geglätteter CAD-Rebuild.',
'proj.handle.p3':'<strong>Schrauben (VDI 2230):</strong> M6 für Klemme; Drehmoment, Vorspannung & Nachweise aus FEM-Reaktionen.',
'proj.handle.p4':'<strong>Validierung (Ansys):</strong> statisch + Ermüdung (Goodman); Kontakt LenkerKlemme und Flächendrücke.',
'proj.handle.r1':'<strong>Sicherheitsfaktoren:</strong> ≥ 2 statisch, ≥ 1 Ermüdung.',
'proj.handle.r2':'<strong>Klemmensteifigkeit:</strong> innerhalb der Durchbiegungs-/Rotationsgrenzen; maximale Durchbiegung &lt; 1 mm.',
'proj.handle.ch1':'AW-2024 T3',
'proj.handle.ch2':'Topologie-optimiert',
'proj.handle.ch3':'VDI 2230',
'proj.handle.ch4':'SF&gt;2 / SF&gt;1',
'proj.handle.ch5':'~656 g',
'proj.handle.ch4':'Klemme OK',
'proj.handle.ch5':'Durchbiegung &lt; 1 mm',
'proj.drone.h4':'Verbund-Drone-Struktur',
'proj.drone.obj':'<strong>Ziel -</strong> Laminataufbau und Dicken zur Gewichtsminimierung bei ausreichender Steifigkeit/Festigkeit festlegen; harmonische und Schlagprüfungen an kritischen Bauteilen.',
@@ -1471,7 +1504,7 @@
},
/* =========================
ESPAÑOL (con modales completos)
ESPAÑOL
========================= */
es: {
'cta.downloadCv': '⬇️ Descargar CV',
@@ -1509,8 +1542,8 @@
'projects.card.hashin.teaser':'Laminado UD a tracción vs compresión; fallo ply-by-ply con Hashin; análisis FEM. <span class="where">UPM · EneMar 2025</span>',
'projects.card.sec19.title':'Sección 19 del fuselaje trasero (Skin & Stringers)',
'projects.card.sec19.teaser':'Skin laminate y concepto de stringers, drop-offs, refuerzos, uniones a marcos (clips, Ø4,8 mm). <span class="where">UPM · EneMar 2024</span>',
'projects.card.handlebar.title':'Subchasis trasero de moto - AlSi10Mg (SLM)',
'projects.card.handlebar.teaser':'Optimización topológica, uniones atornilladas VDI 2230, validación estática/fatiga (Ansys), minimización de peso. <span class="where">Unibo · SepDic 2024</span>',
'projects.card.handlebar.title':'Soporte de manillar - AW-2024 T3',
'projects.card.handlebar.teaser':'Optimización topológica, verificación de mordaza y tornillería VDI 2230, validación estática/fatiga (Ansys), minimización de peso. <span class="where">Unibo · SepDic 2024</span>',
'projects.card.drone.title':'Estructura de dron compuesta',
'projects.card.drone.teaser':'Definición de laminado, optimización de espesores, análisis armónico y de impacto FEM. <span class="where">Unibo · FebJun 2023</span>',
@@ -1567,7 +1600,6 @@
'exp.cpc.where':'Módena, IT',
'exp.cpc.p1':'Laminación de moldes <strong>CFRP</strong> y de un chasis para el equipo de Formula SAE.',
/* PROYECTOS - común */
'proj.common.what':'Qué hice',
'proj.common.model':'Modelo',
'proj.common.tools':'Herramientas',
@@ -1575,7 +1607,6 @@
'proj.common.process':'Proceso',
'proj.common.download':'📄 Descargar informe',
/* === PROYECTOS - Detalles (ES) === */
'proj.stiff.h4':'Paneles compuestos rigidizados',
'proj.stiff.obj':'<strong>Objetivo -</strong> Diseñar y validar paneles CFRP con rigidizadores, minimizando peso y cumpliendo requisitos de pandeo y tolerancia al daño.',
'proj.stiff.li1':'Definí <strong>layups</strong> para piel y stringers (simetría, balance, porcentajes de capas).',
@@ -1612,13 +1643,29 @@
'proj.hashin.ch2':'[0/±45/0/90]s',
'proj.hashin.ch3':'UTS 413 MPa',
'proj.hashin.ch4':'UCS 336 MPa',
'proj.hashin.ch5':'Relación ≈ 1,23'
'proj.hashin.ch5':'Relación ≈ 1,23',
'proj.sec19.h4':'Sección 19 del fuselaje trasero (Skin & Stringers)',
'proj.sec19.obj':'<strong>Objetivo -</strong> Definir skin y stringers en compuesto, refuerzos, drop-offs y uniones a marcos (clips, Ø4,8 mm) para un panel entre marcos AB.',
'proj.sec19.given':'Datos de base',
'proj.sec19.g1':'<strong>Geometría:</strong> cilindro <strong>R = 4500 mm</strong>; marcos a <strong>550 mm</strong>; pitch de stringer <strong>150 mm</strong>.',
'proj.sec19.g2':'<strong>Material:</strong> UD, <strong>CPT 0.184 mm</strong>.',
'proj.sec19.g3':'<strong>Skin:</strong> base <strong>9 capas (2/4/3)</strong>; refuerzo <strong>14 capas (2/8/4)</strong>, parche <strong>100 × 70 mm</strong>.',
'proj.sec19.g4':'<strong>Stringers:</strong> <strong>h &lt; 35 mm</strong>, <strong>R ≥ 3 mm</strong>; alma <strong>20 capas</strong> (50% 0° / 40% ±45° / 10% 90°); <strong>alma = 2× ala</strong>.',
'proj.sec19.g5':'<strong>Uniones:</strong> clips + <strong>Ø 4.8 mm</strong> tornillería.',
'proj.sec19.li1':'Geometría master (marcos & stringers sobre la skin), pitch y pies.',
'proj.sec19.li2':'Mapeado de layups de skin, drop-offs y footprint de refuerzo.',
'proj.sec19.li3':'Dimensionado de alma/alas de stringer y verificación de reparabilidad (L1 con Ø4,8).',
'proj.sec19.li4':'Definición de clips y preparación de planos, lista de materiales y peso del panel.',
'proj.sec19.ch1':'R 4500 mm',
'proj.sec19.ch2':'Pitch 150 mm',
'proj.sec19.ch3':'UD CPT 0.184 mm',
'proj.sec19.ch4':'Clips Ø 4.8 mm'
}
};
let currentLang = DEFAULT_LANG;
// ===== helper con fallback (lang -> en -> default) =====
function resolveKey(key, lang){
const order = [lang, 'en', DEFAULT_LANG];
for(const L of order){
@@ -1735,7 +1782,6 @@
})();
</script>
<script>
// Footer dates
document.getElementById('year').textContent = new Date().getFullYear();

View File

Before

Width:  |  Height:  |  Size: 190 KiB

After

Width:  |  Height:  |  Size: 190 KiB

View File

Before

Width:  |  Height:  |  Size: 199 KiB

After

Width:  |  Height:  |  Size: 199 KiB

View File

Before

Width:  |  Height:  |  Size: 138 KiB

After

Width:  |  Height:  |  Size: 138 KiB

View File

Before

Width:  |  Height:  |  Size: 181 KiB

After

Width:  |  Height:  |  Size: 181 KiB