Záloha
1
.gitignore
vendored
|
@ -10,5 +10,6 @@ Private
|
|||
|
||||
tex/out/*
|
||||
!tex/out/*.pdf
|
||||
*.log
|
||||
|
||||
__pycache__/
|
19
.vscode/settings.json
vendored
|
@ -11,23 +11,40 @@
|
|||
},
|
||||
"cSpell.words": [
|
||||
"affordances",
|
||||
"bowden",
|
||||
"Creality",
|
||||
"drivery",
|
||||
"extruderem",
|
||||
"extruderu",
|
||||
"filamentu",
|
||||
"gyroid",
|
||||
"heatsink",
|
||||
"hotend",
|
||||
"hotendu",
|
||||
"Klipper",
|
||||
"Klippy",
|
||||
"logotypu",
|
||||
"MCPCB",
|
||||
"Mikrokontroler",
|
||||
"mikrokontrolerem",
|
||||
"pluginů",
|
||||
"polyetherimid",
|
||||
"polyimidová",
|
||||
"PTFE",
|
||||
"SCARA",
|
||||
"Stereolithography"
|
||||
"sliceru",
|
||||
"Stereolithography",
|
||||
"stringování",
|
||||
"texturované",
|
||||
"Voron",
|
||||
"vytláčení"
|
||||
],
|
||||
"latex-workshop.latex.tools": [
|
||||
{
|
||||
"name": "latexmk",
|
||||
"command": "latexmk",
|
||||
"args": [
|
||||
"-shell-escape",
|
||||
"-synctex=1",
|
||||
"-interaction=nonstopmode",
|
||||
"-file-line-error",
|
||||
|
|
|
@ -27,11 +27,13 @@ Parametricky modelované díly pro stavbu tiskárny. Modely využívají nástro
|
|||
|
||||
Práce je kompilovaná sázecím systémem Latex a modifikovaným balíčkem thesis 4.11 dostupný z: [latex.fekt.vut.cz](https://latex.fekt.vut.cz/).
|
||||
|
||||
#### Závislosti pro skripty
|
||||
#### Závislosti
|
||||
|
||||
- texlive
|
||||
- texlive-langczechslovak
|
||||
- texlive-langgreek
|
||||
- perl-file-homedir
|
||||
- perl-yaml-tiny
|
||||
|
||||
### Skripty
|
||||
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
#!/usr/bin/freecadcmd
|
||||
|
||||
import os
|
||||
import FreeCAD # type: ignore
|
||||
import Mesh # type: ignore
|
||||
import FreeCAD as App # type: ignore
|
||||
import Mesh # type: ignore
|
||||
|
||||
# Define the project root directory
|
||||
project_root = os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)), os.pardir))
|
||||
project_root = os.path.abspath(
|
||||
os.path.join(os.path.dirname(os.path.realpath(__file__)), os.pardir)
|
||||
)
|
||||
|
||||
# Define the directories for CAD files and 3MF export files
|
||||
printed_cad_dir = os.path.join(project_root, "cad", "printed")
|
||||
|
@ -24,20 +26,22 @@ for root, dirs, files in os.walk(printed_cad_dir):
|
|||
# Absolute path of the CAD file
|
||||
file_path = os.path.join(root, file)
|
||||
|
||||
FreeCAD.Console.PrintMessage(f"\nProcessing {file_path}\n")
|
||||
App.Console.PrintMessage(f"\nProcessing {file_path}\n")
|
||||
|
||||
# Open the FreeCAD document
|
||||
doc = FreeCAD.openDocument(file_path)
|
||||
FreeCAD.setActiveDocument(doc.Name)
|
||||
FreeCAD.ActiveDocument.recompute()
|
||||
doc = App.openDocument(file_path)
|
||||
App.setActiveDocument(doc.Name)
|
||||
App.ActiveDocument.recompute()
|
||||
|
||||
# Iterate over all objects in the document
|
||||
for obj in doc.Objects:
|
||||
# Check if the object is Std_Part
|
||||
if obj.TypeId == 'App::Part':
|
||||
if obj.TypeId == "App::Part":
|
||||
# Construct the output path for the 3MF file using the label
|
||||
output_path = os.path.join(
|
||||
printed_3mf_dir, os.path.relpath(root, printed_cad_dir), f"{obj.Label}.3mf"
|
||||
printed_3mf_dir,
|
||||
os.path.relpath(root, printed_cad_dir),
|
||||
f"{obj.Label}.3mf",
|
||||
)
|
||||
# Create the output directory if it doesn't already exist
|
||||
os.makedirs(os.path.dirname(output_path), exist_ok=True)
|
||||
|
@ -45,18 +49,20 @@ for root, dirs, files in os.walk(printed_cad_dir):
|
|||
try:
|
||||
# Export the part to a 3MF file
|
||||
Mesh.export([obj], output_path)
|
||||
FreeCAD.Console.PrintMessage(f"Exported {obj.Label} to {output_path}\n")
|
||||
App.Console.PrintMessage(
|
||||
f"Exported {obj.Label} to {output_path}\n"
|
||||
)
|
||||
except Exception as e:
|
||||
FreeCAD.Console.PrintError(f"Error exporting {obj.Label}: {e}\n")
|
||||
App.Console.PrintError(f"Error exporting {obj.Label}: {e}\n")
|
||||
failed_files.append(file_path)
|
||||
|
||||
# Close the FreeCAD document
|
||||
FreeCAD.closeDocument(doc.Name)
|
||||
App.closeDocument(doc.Name)
|
||||
|
||||
# Print the result of the export process
|
||||
if failed_files:
|
||||
FreeCAD.Console.PrintError("\nThe following files failed to export:\n")
|
||||
App.Console.PrintError("\nThe following files failed to export:\n")
|
||||
for file in failed_files:
|
||||
FreeCAD.Console.PrintError(f" - {file}\n")
|
||||
App.Console.PrintError(f" - {file}\n")
|
||||
else:
|
||||
FreeCAD.Console.PrintMessage("\nAll files have been exported successfully.\n")
|
||||
App.Console.PrintMessage("\nAll files have been exported successfully.\n")
|
||||
|
|
74
scripts/generate_assembly_images.py
Executable file
|
@ -0,0 +1,74 @@
|
|||
#!/usr/bin/freecadcmd
|
||||
|
||||
import os
|
||||
import FreeCAD as App # type: ignore
|
||||
import FreeCADGui as Gui # type: ignore
|
||||
|
||||
# Define the project root directory
|
||||
project_root = os.path.abspath(
|
||||
os.path.join(os.path.dirname(os.path.realpath(__file__)), os.pardir)
|
||||
)
|
||||
|
||||
# Define the CAD directory
|
||||
cad_dir = os.path.join(project_root, "cad")
|
||||
|
||||
# Define the output directory
|
||||
output_dir = os.path.join(project_root, "tex", "images", "2_prakticka_cast")
|
||||
|
||||
# Ensure the output directory exists
|
||||
os.makedirs(output_dir, exist_ok=True)
|
||||
|
||||
# Iterate over all files in the CAD directory (excluding nested directories)
|
||||
for file in os.listdir(cad_dir):
|
||||
if file.endswith(".FCStd"):
|
||||
file_path = os.path.join(cad_dir, file)
|
||||
App.Console.PrintMessage(f"\nProcessing {file_path}\n")
|
||||
|
||||
# Open the FreeCAD document
|
||||
doc = App.open(file_path)
|
||||
App.setActiveDocument(doc.Name)
|
||||
App.ActiveDocument.recompute()
|
||||
|
||||
# Check if the document contains any assemblies (App::Part)
|
||||
has_assembly = any(
|
||||
hasattr(obj, "Type") and obj.Type == "Assembly" for obj in doc.Objects
|
||||
)
|
||||
|
||||
if has_assembly:
|
||||
# Gui.showMainWindow()
|
||||
|
||||
# Set visibility to true for all objects in the assembly and hide all objects outside of the assembly
|
||||
for obj in doc.Objects:
|
||||
if hasattr(obj, "Type") and obj.Type == "Assembly":
|
||||
for sub_obj in obj.OutList:
|
||||
if sub_obj.ViewObject is not None:
|
||||
sub_obj.ViewObject.Visibility = True
|
||||
else:
|
||||
if obj.ViewObject is not None:
|
||||
obj.ViewObject.Visibility = False
|
||||
|
||||
for view in [
|
||||
"ViewIsometric",
|
||||
"ViewFront",
|
||||
"ViewTop",
|
||||
"ViewRight",
|
||||
"ViewRear",
|
||||
"ViewBottom",
|
||||
"ViewLeft",
|
||||
]:
|
||||
Gui.ActiveDocument.sendMsgToViews(view)
|
||||
output_path = os.path.join(
|
||||
output_dir, f'{file.replace(".FCStd", "")}_{view}.png'
|
||||
)
|
||||
Gui.ActiveDocument.ActiveView.saveImage(
|
||||
output_path, 1920, 1080, "Transparent"
|
||||
)
|
||||
App.Console.PrintMessage(f"Exported {view} view to {output_path}\n")
|
||||
|
||||
else:
|
||||
App.Console.PrintMessage(
|
||||
f"No assembly found in {file_path}, skipping image generation.\n"
|
||||
)
|
||||
|
||||
# Close the FreeCAD document
|
||||
App.closeDocument(doc.Name)
|
BIN
tex/images/1_teoreticka_cast/delta-gs.png
Normal file
After Width: | Height: | Size: 75 KiB |
BIN
tex/images/1_teoreticka_cast/delta.png
Normal file
After Width: | Height: | Size: 221 KiB |
BIN
tex/images/1_teoreticka_cast/fff.png
Normal file
After Width: | Height: | Size: 71 KiB |
BIN
tex/images/1_teoreticka_cast/kinematics.jpg
Normal file
After Width: | Height: | Size: 237 KiB |
BIN
tex/images/1_teoreticka_cast/polar-gs.png
Normal file
After Width: | Height: | Size: 104 KiB |
BIN
tex/images/1_teoreticka_cast/polar.png
Normal file
After Width: | Height: | Size: 358 KiB |
BIN
tex/images/1_teoreticka_cast/scara-gs.png
Normal file
After Width: | Height: | Size: 177 KiB |
BIN
tex/images/1_teoreticka_cast/scara.png
Normal file
After Width: | Height: | Size: 492 KiB |
BIN
tex/images/1_teoreticka_cast/sla.png
Normal file
After Width: | Height: | Size: 70 KiB |
BIN
tex/images/1_teoreticka_cast/sls.png
Normal file
After Width: | Height: | Size: 102 KiB |
BIN
tex/images/2_prakticka_cast/Base_Bottom.png
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
tex/images/2_prakticka_cast/Base_Front.png
Normal file
After Width: | Height: | Size: 42 KiB |
BIN
tex/images/2_prakticka_cast/Base_Isometric.png
Normal file
After Width: | Height: | Size: 137 KiB |
BIN
tex/images/2_prakticka_cast/Base_Left.png
Normal file
After Width: | Height: | Size: 52 KiB |
BIN
tex/images/2_prakticka_cast/Base_Rear.png
Normal file
After Width: | Height: | Size: 68 KiB |
BIN
tex/images/2_prakticka_cast/Base_Right.png
Normal file
After Width: | Height: | Size: 45 KiB |
BIN
tex/images/2_prakticka_cast/Base_Sides.png
Normal file
After Width: | Height: | Size: 141 KiB |
BIN
tex/images/2_prakticka_cast/Base_Top.png
Normal file
After Width: | Height: | Size: 43 KiB |
|
@ -30,15 +30,17 @@
|
|||
title = {About FreeCAD – FreeCAD Documentation},
|
||||
year = {2013},
|
||||
update = {2019-12-06},
|
||||
annote = {[online]},
|
||||
url = {https://wiki.freeecad.org/About_FreeCAD}
|
||||
}
|
||||
|
||||
@misc{x-scara,
|
||||
url = {https://github.com/madl3x/x-scara},
|
||||
author = {madl3x},
|
||||
author = {Alex Mircescu},
|
||||
title = {x-scara},
|
||||
year = {2020},
|
||||
note = {{GitHub repository}}
|
||||
annote = {[online]},
|
||||
note = {[Citováno 2025-1-5]}
|
||||
}
|
||||
|
||||
@misc{klipper_code_overview,
|
||||
|
@ -46,7 +48,8 @@
|
|||
author = {{Klipper 3D}},
|
||||
year = {2023},
|
||||
url = {https://www.klipper3d.org/Code_Overview.html},
|
||||
note = {Accessed: 2023-10-10}
|
||||
annote = {[online]},
|
||||
note = {[Citováno 2025-1-5]}
|
||||
}
|
||||
|
||||
@article{GAO201565,
|
||||
|
@ -67,17 +70,18 @@
|
|||
author = {MCAE Systems},
|
||||
title = {FFF - Technologie aditivní výroby},
|
||||
year = {n.d.},
|
||||
annote = {[online]},
|
||||
url = {https://www.mcae.cz/technologie/fff/},
|
||||
urldate = {2025-01-05},
|
||||
note = {Přístup k 5. lednu 2025}
|
||||
note = {[Citováno 2025-1-5]}
|
||||
}
|
||||
|
||||
@misc{wikimedia_3d_printing_calibration,
|
||||
title = {3D printing calibration part-cooling fan airflow},
|
||||
author = {{Wikimedia Commons}},
|
||||
year = {n.d.},
|
||||
year = {2019},
|
||||
url = {https://commons.wikimedia.org/wiki/File:3D_printing_calibration_part-cooling_fan_airflow.svg},
|
||||
note = {Přístup k 5. lednu 2025}
|
||||
note = {[Citováno 2025-1-5]}
|
||||
}
|
||||
|
||||
@article{Choudhary_Analysis,
|
||||
|
@ -101,14 +105,76 @@
|
|||
publisher = {Prusa Research},
|
||||
year = {2019},
|
||||
address = {Praha},
|
||||
keywords = {3D tisk; FDM; SLA; SLS; SLM; DLP; technologie; materiály; software; hardware},
|
||||
keywords = {3D tisk; FDM; SLA; SLS; SLM; DLP; technologie; materiály; software; hardware}
|
||||
}
|
||||
|
||||
@misc{materialpro3d_typy_povrchu,
|
||||
author = {{Materialpro3D}},
|
||||
title = {Typy povrchů tiskové podložky},
|
||||
year = {2021},
|
||||
url = {https://www.materialpro3d.cz/blog/typy-povrchu-tiskove-podlozky/},
|
||||
urldate = {2025-01-05},
|
||||
note = {Přístup k 5. lednu 2025},
|
||||
author = {{Materialpro3D}},
|
||||
title = {Typy povrchů tiskové podložky},
|
||||
year = {2021},
|
||||
url = {https://www.materialpro3d.cz/blog/typy-povrchu-tiskove-podlozky/},
|
||||
urldate = {2025-01-05},
|
||||
note = {[Citováno 2025-1-5]}
|
||||
}
|
||||
|
||||
@misc{dangerklipper_resonance_compensation,
|
||||
author = {Danger Klipper},
|
||||
title = {Kompenzace rezonance},
|
||||
year = {n.d.},
|
||||
url = {https://dangerklipper.io/Resonance_Compensation.html},
|
||||
note = {[Citováno 2025-1-5]}
|
||||
}
|
||||
|
||||
@misc{corexz_theory,
|
||||
author = {CoreXZ},
|
||||
title = {CoreXZ -- Theory},
|
||||
year = {2018},
|
||||
annote = {[online]},
|
||||
url = {https://www.corexz.com/theory.html},
|
||||
note = {[Citováno 2025-1-5]}
|
||||
}
|
||||
|
||||
@misc{all3dp_3d_printer_types,
|
||||
author = {Jackson O'Connell},
|
||||
title = {Cartesian, Delta, Polar, and More: Types of 3D Printer Mechanics},
|
||||
year = {2023},
|
||||
annote = {[online]},
|
||||
url = {https://all3dp.com/2/cartesian-3d-printer-delta-scara-belt-corexy-polar/},
|
||||
note = {[Citováno 2025-1-5]}
|
||||
}
|
||||
|
||||
@misc{thingiverse_3dbuider_delta_xxl,
|
||||
author = {3DsvetEU},
|
||||
title = {3DBuilder DELTA XXL 3D printer by 3Dsvet.eu},
|
||||
year = {2017},
|
||||
annote = {[online]},
|
||||
url = {https://www.thingiverse.com/thing:2571355},
|
||||
note = {[Citováno 2025-1-5]}
|
||||
}
|
||||
|
||||
@misc{guicol_polar_printer_concept,
|
||||
author = {guicol},
|
||||
title = {Received a ton of constructive criticism on my crude polar-3D Printer design. Redesigned it with improvements.},
|
||||
annote = {[online]},
|
||||
year = {2023},
|
||||
note = {[Citováno 2025-1-4]},
|
||||
url = {https://www.reddit.com/r/3Dprinting/comments/16dsugh/received_a_ton_of_constructive_criticism_on_my/}
|
||||
}
|
||||
|
||||
@misc{all3dp_direct_vs_bowden,
|
||||
author = {Tobias Hullette},
|
||||
title = {Direct Drive vs Bowden Extruder: The Differences},
|
||||
year = {2024},
|
||||
annote = {[online]},
|
||||
url = {https://all3dp.com/2/direct-vs-bowden-extruder-technology-shootout/},
|
||||
note = {[Citováno 2025-1-6]}
|
||||
}
|
||||
|
||||
@misc{madl3x_scara_image,
|
||||
author = {Alex Mircescu},
|
||||
title = {XSCARA V1 - Complete Assembly STEP files},
|
||||
year = {2021},
|
||||
annotate = {[online]},
|
||||
url = {https://cults3d.com/en/3d-model/various/xscara-v1-complete-assembly-step-files},
|
||||
note = {[Citováno 2025-1-6]}
|
||||
}
|
|
@ -113,10 +113,10 @@
|
|||
%%% Abstrakt
|
||||
\abstract[%
|
||||
The paper discusses the technology of FFF 3D printers and describes their components. It also discusses the most commonly used kinematics and compares their properties in terms of design complexity and printing properties.
|
||||
The aim of the thesis is to design and construct a complete 3D printer using SCARA kinematics. Then to implement this kinematics for Klipper firmware. The thesis also focuses on calibrating and testing the printer to achieve the highest possible quality and reduced printing time.
|
||||
The aim of the thesis is to design and construct a~complete 3D printer using SCARA kinematics. Then to implement this kinematics for Klipper firmware. The thesis also focuses on calibrating and testing the printer to achieve the highest possible quality and reduced printing time.
|
||||
]{%
|
||||
Práce pojednává o technologii FFF 3D tiskáren a popisuje jejich komponenty. Dále se věnuje nejčastěji používaných kinematikách a porovnává jejich vlastnosti z hlediska složitosti konstrukce a tiskových vlastností.
|
||||
Cílem práce je navrhnout a zkonstruovat kompletní 3D tiskárnu využívající kinematiku SCARA. Dále pak implementovat tuto kinematiku pro Klipper firmware. Práce se dále zaměřuje na kalibraci a testování tiskárny pro dosažení co možná nejvyšší kvality a zkrácení času tisku.
|
||||
Práce pojednává o~technologii FFF 3D tiskáren a~popisuje jejich komponenty. Dále se věnuje nejčastěji používaných kinematikách a~porovnává jejich vlastnosti z~hlediska složitosti konstrukce a~tiskových vlastností.
|
||||
Cílem práce je navrhnout a~zkonstruovat kompletní 3D tiskárnu využívající kinematiku SCARA. Dále pak implementovat tuto kinematiku pro Klipper firmware. Práce se dále zaměřuje na kalibraci a~testování tiskárny pro dosažení co možná nejvyšší kvality a~zkrácení času tisku.
|
||||
}
|
||||
|
||||
%%% Klíčová slova
|
||||
|
@ -128,7 +128,7 @@ Cílem práce je navrhnout a zkonstruovat kompletní 3D tiskárnu využívajíc
|
|||
|
||||
%%% Poděkování
|
||||
\acknowledgement{%
|
||||
Rád bych poděkoval vedoucímu bakalářské/diplomové/disertační práce
|
||||
Rád bych poděkoval vedoucímu bakalářské práce
|
||||
panu doc.\ Ing.~Petru Vyroubalovi, Ph.D.\ za odborné vedení,
|
||||
konzultace, trpělivost a~podnětné návrhy k~práci.
|
||||
}%
|
|
@ -1,7 +1,7 @@
|
|||
% cSpell:disable
|
||||
|
||||
% Soubory musí být v kódování, které je nastaveno v příkazu \usepackage[...]{inputenc}
|
||||
|
||||
% cSpell:disable
|
||||
|
||||
\documentclass[ % Základní nastavení
|
||||
%draft, % Testovací překlad
|
||||
12pt, % Velikost základního písma je 12 bodů
|
||||
|
@ -61,6 +61,9 @@
|
|||
\usepackage{svg}
|
||||
\usepackage{float}
|
||||
\usepackage[justification=centering]{caption}
|
||||
\usepackage{lineno}
|
||||
\usepackage[outputdir=out]{minted}
|
||||
\usepackage[toc,page]{appendix}
|
||||
|
||||
\lstset{ % nastavení
|
||||
% Definice jazyka použitého ve výpisech
|
||||
|
@ -174,7 +177,7 @@
|
|||
\makedeclaration
|
||||
|
||||
%%% Vysázení poděkování
|
||||
\makeacknowledgement
|
||||
% \makeacknowledgement
|
||||
|
||||
%%% Vysázení obsahu
|
||||
\tableofcontents
|
||||
|
@ -185,11 +188,11 @@
|
|||
|
||||
%%% Vysázení seznamu tabulek
|
||||
% (vynechejte, pokud máte dvě nebo méně tabulek)
|
||||
\listoftables
|
||||
% \listoftables
|
||||
|
||||
%%% Vysázení seznamu výpisů kódu
|
||||
% (vynechejte, pokud máte dva nebo méně výpisů)
|
||||
\lstlistoflistings
|
||||
% \lstlistoflistings
|
||||
|
||||
\cleardoublepage\pagestyle{plain} % zapnutí číslování stránek
|
||||
|
||||
|
@ -197,13 +200,11 @@
|
|||
%%% Vložení souboru 'text/uvod.tex' s úvodem
|
||||
\include{text/1_uvod}
|
||||
|
||||
\include{text/2_cile}
|
||||
\include{text/2_teoreticka_cast}
|
||||
|
||||
\include{text/3_teoreticka_cast}
|
||||
\include{text/3_prakticka_cast}
|
||||
|
||||
\include{text/4_prakticka_cast}
|
||||
|
||||
\include{text/5_zaver}
|
||||
\include{text/4_zaver}
|
||||
|
||||
% Definice stylu seznamu
|
||||
\bibliographystyle{template/czechiso}
|
||||
|
@ -216,7 +217,7 @@
|
|||
%% Způsobí citaci všech zdrojů v souboru literatura.bib, i když nejsou citovány v textu.
|
||||
%\nocite{*}
|
||||
|
||||
\include{text/7_zkratky}
|
||||
\include{text/5_zkratky}
|
||||
|
||||
%%% Začátek příloh
|
||||
\appendix
|
||||
|
@ -227,7 +228,6 @@
|
|||
|
||||
%%% Vložení souboru 'text/prilohy' s přílohami
|
||||
% Obvykle je přítomen alespoň popis co najdeme na přiloženém médiu
|
||||
\include{text/8_prilohy}
|
||||
\include{text/6_prilohy}
|
||||
|
||||
\end{document}
|
||||
\end{document}
|
||||
|
|
|
@ -2,4 +2,6 @@
|
|||
\phantomsection
|
||||
\addcontentsline{toc}{chapter}{Úvod}
|
||||
|
||||
Tato práce se zabývá konstrukcí a řízením 3D tiskárny s kinematikou SCARA. Základní model vychází z open-source projektu x-scara
|
||||
Technologie aditivní výroby (3D tisku) se v~posledních letech stává stále populárnější. Příchodem této technologie vznikla možnost vyrábět výrobky s~komplexnější geometrií než tomu bylo u~metod subtraktivních a~levnějším než u~technologií tvářecích. Tato technologie umožňuje ověřit návrh produktu ještě před tím než jsou vyrobené nástroje pro velkosériovou výrobu. Naopak pro malé série je tato technologie velmi vhodná, protože nevyžaduje výrobu nástrojů a~výrazně zkracuje dobu od návrhu po uvedení na trh.
|
||||
|
||||
Technologií aditivní výroby je nespočet. Jsou to to například SLA (Stereolitography), která pomocí UV záření osvětluje a~tím vytvrzuje pryskyřici, SLS (Selective Laser Sintering), která pomocí laseru spéká polymerní práček nebo nejpopulárnější z~nich FFF (Fused Filament Fabrication), která tiskne pomocí vytlačování roztaveného termoplastu z~trysky. Tato technologie výroby je nejvíce rozšířená díky nízkým pořizovacím nákladům a~jednoduché obsluze. Technologie FFF není pouze doménou průmyslu, ale i~domácích uživatelů, kteří si mohou tisknout vlastní výrobky.
|
|
@ -1 +0,0 @@
|
|||
Test cilu
|
177
tex/text/2_teoreticka_cast.tex
Normal file
|
@ -0,0 +1,177 @@
|
|||
\chapter{Aditivní výroba a~3D tisk}
|
||||
|
||||
Aditivní výroba, též nazývaná 3D tisk, je technologie umožňující výrobu dílů pomocí nanášení materiálu ve vrstvách. Tato technologie našla uplatnění nejen ve výrobě prototypů a~výrobě v~malých sériích, ale i~v medicínských aplikacích, architektuře, vesmírném průmyslu a~mnoha dalších oblastech.
|
||||
|
||||
V porovnání s~využitím subtraktivní výroby, má aditivní výroba řadu výhod. Velkou výhodou aditivního výrobního procesu je \textbf{flexibilita při návrhu a~výrobě} komplexních tvarů, které by byly obtížně nebo vůbec nevyrobitelné konvenčními technologiemi. Při použití subtraktivních procesů jsou limitujícími faktory návrhu zejména potřeba přípravků, relativně velkého množství nástrojů a~také možnost výskytu obráběného výrobku s~nástrojem. V~porovnání s~tvářecími technologiemi (jakou jsou například vstřikování, přetlačování nebo třeba lisování), které vyžadují výrobu potřebných nástrojů a~forem, což značně limituje geometrii výrobku. Technologie aditivní výroby umožňuje umístit materiál tam, kde je potřeba bez ohledu na nástroje potřebné k~výrobě. To umožňuje například výrobu topologicky optimalizovaných dílů a~výrobků. \cite{GAO201565}
|
||||
|
||||
Další výhodou oproti subtraktivním technologiím je \textbf{malé množství odpadního materiálu}, protože je materiál nanášen pouze v~oblastech, kde je potřeba. Oproti tvářecím technologiím je výhodou například využití neúplné výplně, která šetří materiál a~zkracuje dobu tisku.
|
||||
|
||||
Velkou výhodou pak je \textbf{konstantní cena při výrobě dílů s~komplexní geometrií}. Cena výroby u~aditivní výroby není závislá na složitosti geometrie dílu, ale pouze na množství a~typu materiálu použitého k~výrobě a~době tisku, resp. spotřebě elektrické energie.\cite{GAO201565}
|
||||
|
||||
Při výrobě komplexních geometrií pomocí aditivní výroby \textbf{není často potřeba rozdělovat díl nebo výrobek na více části}, které je následně potřeba spojit. To v~praxi znamená nižší náklady na výrobu, menší riziko chyb při montáži a~také nižší hmotnost výrobku. Při výrobě takových dílů vzrůstá potřeba tiskových podpor, které mohou komplikovat čištění a~kompletaci výrobku. Při odstraňování podpor může způsobit geometrické nepřesnosti. \cite{GAO201565}
|
||||
|
||||
Limitací 3D tisku může být právě geometrická přesnost a~omezená kvalita povrchu, která je navíc ovlivněna metodou výroby (tj. FFF, SLA, SLS, ...). 3D tiskárny využívají zejména k~výrobě dílů o~rozměrech v~řádu několika milimetrů až desítek centimetrů a~jejich tolerance se pohybuje v~rámci několika desetin až setin milimetru. \cite{GAO201565}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\begin{minipage}[b]{0.3\textwidth}
|
||||
\includegraphics[width=\textwidth]{images/1_teoreticka_cast/fff.png}
|
||||
\caption{Technoloie FFF }
|
||||
\end{minipage}
|
||||
\hfill
|
||||
\begin{minipage}[b]{0.3\textwidth}
|
||||
\includegraphics[width=\textwidth]{images/1_teoreticka_cast/sla.png}
|
||||
\caption{Technologie SLA}
|
||||
\end{minipage}
|
||||
\hfill
|
||||
\begin{minipage}[b]{0.3\textwidth}
|
||||
\includegraphics[width=\textwidth]{images/1_teoreticka_cast/sls.png}
|
||||
\caption{Technologie SLS}
|
||||
\end{minipage}
|
||||
\end{figure}
|
||||
|
||||
|
||||
\section{Technologie FFF}
|
||||
FFF (Fused Filament Fabrication) je zejména z~důvodu nízké pořizovací ceny stroje i~materiálu jednou z~nejrozšířenějších technologií aditivní výroby. Tato technologie využívá plastové polymery, které mohou obsahovat příměsi jiných materiálů ve formě vláken nebo práškové příměsi. Tento materiál je prodáván ve formě tiskových strun o~průměru 1,75~mm nebo 2,85~mm navinutých na cívku. Tato struna je odvíjena extruderem a~vytlačena rozehřátou tryskou. Tryska způsobí tavení termoplastu a~dojde tak k~vytlačení přesného množství materiálu, které je řízeno průměrem otvoru trysky, rychlostí pohybu tiskové hlavy vůči tiskové podložce a~rychlostí vytlačování materiálu. Tisková hlava nanáší materiál v~definovaných vrstvách na tiskovou podložku. Tato podložka je většinou vyhřívaná, což zabraňuje deformaci tiskového výrobku a~jeho případné oddělení od tiskové plochy. \cite{mcae_fff}
|
||||
|
||||
\chapter{Části 3D tiskárny}
|
||||
|
||||
\section{Tisková hlava}
|
||||
Tisková hlava slouží k~zahřátí a~následnému vytlačení tiskového materiálu. Pohybem tiskové hlavy nebo podložky dochází k~vytvoření tenké vrstvy materiálu na tiskovou podložku. Složením těchto vrstev vzniká tisknutý výrobek.
|
||||
|
||||
Filament je extruderem vtlačován do hotendu skládající se z~PTFE trubičky, která je zavedena do pasivního chladiče, který je chlazen ventilátorem. Tento ventilátor zabraňuje tavení materiálu mimo hotend. Následně je filament protlačován tepelným izolátorem, který odděluje studenou a~teplou zónu. Tepelný izolátor je kovová trubička na jejíž koncích jsou vnější závity, a~tak spojuje chladič a~topný blok. Tepelný izolátor slouží hlavně k~omezení přenosu tepla do předchozích částí hotendu. Posledními částmi jsou topný blok a~tisková tryska. Topný blok má kromě průchozího otvoru pro materiál další dva otvory, jeden pro topnou patronu a~druhý pro termistor, který slouží k~monitorování aktuální teploty tepelného bloku potažmo trysky. Tryska se společně s~krokovým motorem, tloušťkou tiskové struny podílejí na množství vytlačovaného materiálu. \cite{Prusa_Zaklady_3D_tisku}
|
||||
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=0.5\textwidth]{images/1_teoreticka_cast/extruder.png}
|
||||
\caption{Detailní pohled na tiskovou hlavu s~přímím extruderem (direct-drive): (1) PTFE trubička, (2) Pasivní chladič (heatsink), (3) Ventilátor pro chlazení materiálu (part fan), (4) Ventilátor k~chlazení extruderu, (5) Tepelný izolátor (heat break), (6) Topný blok (heat block) \cite{Prusa_Zaklady_3D_tisku}}
|
||||
\label{fig:hotend}
|
||||
\end{figure}
|
||||
|
||||
Podstatnou částí tiskové hlavy je ventilátor, který chladí tiskový materiál po jeho vytlačení z~trysky. Tento ventilátor zabraňuje deformaci výtisku a~redukuje stringing. Správné nastavení tohoto ventilátoru je relativně podstatné pro kvalitu výtisku. Při správném nastavení je tiskárna schopna překlenout relativně velké mezery bez použití podpůrných struktur. \cite{Choudhary_Analysis}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=0.75\textwidth]{images/1_teoreticka_cast/part-cooling.jpg}
|
||||
\caption{Detailní pohled na depozici vrstvy: (a) s~ventilátorem pro chlazení materiálu a~(b) bez ventilátoru \cite{Choudhary_Analysis}}
|
||||
\label{fig:part-cooling}
|
||||
\end{figure}
|
||||
|
||||
\paragraph*{Direct-Drive extruder}
|
||||
|
||||
Extrudery typu direct--drive jsou integrovány v~tiskové hlavě a~tedy do něho strunu vtlačuje přímo. Oproti bowden extruderu má pak výhodu vytlačování přesnějšího množství materiálu. To je zapříčiněno velice krátkou vzdáleností extruderu od trysky. Využití tohoto typu extruderu má za důsledek méně stringování a~odkapávání filamentu z~trysky.
|
||||
|
||||
\paragraph*{Reverse-Bowden extruder}
|
||||
|
||||
Tento typ má stejně jako direct-drive extruder intergrovaný v~tiskové hlavě. Rozdílem je, že od tiskové hlavy vede PTFE trubička, kterou je veden filament. Trubička pak zpravidla vyústí v~pevném bodě tiskárny. Důsledkem toho je vyšší spolehlivost. Tisková struna se totiž nemůže nikde zaseknout ani shodit cívku z~držáku. Další velkou výhodou je připojení na drybox. \footnote{Drybox slouží k~vysoušení hydroskopických filamentů. Drybox udržuje nízkou vlhkost filamentu a~tak během tisku neabsorbuje okolní vlhkost.}
|
||||
|
||||
\paragraph*{Bowden extruder}
|
||||
|
||||
Tento typ má extruder oddělený od tiskové hlavy. Extruder je s~tiskovou hlavou propojen PTFE trubičkou. Extruder tedy tlačí tiskovou strunu do trubičky, která je připojena k~hotendu. Velkou výhodou tohoto řešení je snížená hmotnost tiskové hlavy. Důsledkem tohoto řešení je pak možnost použití vyšší hodnoty zrychlení a~tak i~rychlejší tisk. Nevýhodou tohoto řešení je právě velká vzdálenost trysky, která často zapříčiňuje nepřesné vytlačení nebo retrakci materiálu. Důsledkem je stringování nebo odkapávání filamentu.
|
||||
|
||||
\paragraph*{Remote Direct-Drive extruder}
|
||||
|
||||
Tento typ není vzhledem k~pořizovací ceně a~malému povědomí příliš běžný. Tento typ se snaží eliminovat nevýhody direct-drive a~bowden extruderu. k~vytláčení filamentu dochází i~u tohoto typu v~tiskové hlavě, ale krokový motor je upevněn na rámu tiskárny. Motor a~ozubené kolečko extruderu jsou propojeny ohebnou hřídelí. Výhodou pak je přesná extruze a~vyšší hodnota zrychlení než u~direct-drive extruderu. Nevýhodou je relativně vysoká pořizovací cena, proto se spíše používají jiné varianty.
|
||||
|
||||
\section{Tisková podložka}
|
||||
Tisková podložka je část 3D tiskárny, na kterou je nanášen materiál. Tato podložka je zpravidla vyhřívaná, aby nedocházelo k~deformaci výtisku a~nedošlo tak k~jeho oddělení od tiskové podložky.
|
||||
|
||||
Vyhřívání podložky je realizováno několika způsoby. Jedním z~nich je například topná DPS (deska plošných spojů). Může jít například o~běžně používaný kompozitní materiál FR-4 se skleněným jádrem nebo MCPCB (Metal Core PCB)/IMS (Insulated Metal Substrate) s~jádrem hliníkovým. V~tomto případě jako topné těleso slouží vodivá cesta ve tvaru meandru nebo spirály. Na DPS je poté připevněna tisková podložka případně jako tisková podložka slouží samotná DPS.
|
||||
|
||||
Dalším způsobem vyhřívání je hliníková deska se silikonovým topným tělesem, které je přilepeno k~její spodní straně. Alternativou silikonového topného tělesa můžou být i~topné patrony. Na tuto hliníkovou desku je připevněna tisková podložka.
|
||||
|
||||
Tiskových podložek existuje několik druhů. Tiskové podložky mohou být vyrobené z~různých materiálů, jako je například PEI (polyetherimid) ve formě přířezu nebo pružinové oceli s~práškově lakovaným PEI povrchem. Dalším materiálem je sklo, které se velice hladké, odolné a~vlivem jeho nízké tepelné vodivosti dobře rozptyluje teplo. \cite{materialpro3d_typy_povrchu} Dalšími poměrně rozšířenými povrchy jsou různé lepící pásky. Příkladem je například polyimidová páska nebo papírová páska.
|
||||
|
||||
Tiskové podložky se liší i~svými povrchy. Například PEI podložky se prodávají v~hladké, texturované i~variantě se vzorem.
|
||||
|
||||
\section{Rám}
|
||||
Rám 3D tiskáren je často realizován pomocí hliníkových profilů stejně jako jiné průmyslové stroje. Tyto profily jsou spojovány pomocí rohových spojek vyrobené z~odlévaného hliníku případně tisknutými, tlakově odlévanými nebo vstřikovanými díly. Rámy komerčních 3D tiskáren mají nejčastěji rám zhotovený z~tlakově litými hliníkovými díly nebo řezáním, lisováním a~tvářením hliníkových nebo ocelových přířezů.
|
||||
|
||||
Konstrukci rámu nelze podcenit. Má totiž přímý vliv na tisknuté výrobky. Málo pevné spoje můžou způsobovat vibrace a~nepřesnosti, zatímco profily s~nerovným koncem můžou způsobit deformace výtisku klidně i~v několika osách.
|
||||
|
||||
\section{Krokové motory}
|
||||
Krokové motory zajišťují veškerý pohyb tiskové hlavy vůči poloze na tiskové podložce. Krokové motory se též používají v~extruderu pro vytlačování filamentu.
|
||||
|
||||
Krokový motor je ve své podstatě synchronní motor, který přeměňuje vstupní digitální elektrický signál na odpovídající mechanický pohyb. Krokové motory pracují v~tzv. otevřené smyčce, tedy nepoužívají zpětnou vazbu. Pro nastavování polohy nebo rychlosti otáčení není totiž u~krokových motorů potřeba. Po přivedení impulzu se motor pootočí o~přesně definovaný úhel -- krok. Počet těchto pulzů obvykle odpovídá počtu vykonaných kroků. \cite{2016Rarv}
|
||||
|
||||
Běžným úhlem jednoho kroku hybridního krokového motoru používaného v~3D tiskárnách je 1,8 °. Přepočtem tak můžeme zjistit, že takový motor má 200 kroků. Takového úhlu lze docílit díky konstrukci hybridního krokového motoru.
|
||||
|
||||
% TODO: Dopsat více info
|
||||
|
||||
\section{Řídící deska}
|
||||
Slouží k~propojení zdroje, všech elektricky řízených součástí a~senzorů tiskárny. Slouží k~napájení vyhřívané podložky (v případě použití vyhřívané podložky napájené síťovým napětím 230V 50Hz pouze řídí spínání relé). Dále se k~ni připojují krokové motory a~jejich drivery, nejsou--li integrované na řídící desce. k~desce jsou připojeny i~ventilátory, zejména ty se řízenými otáčkami (ventilátor hotendu a~ventilátor pro chlazení materiálu). Dále k~ni jsou připojeny koncové spínače, termočlánky a~například i~osvětlení tiskárny. Řídící desky též slouží k~připojení displeje a~ovládání uživatelského rozhraní tiskárny. V~případě použití firmware Klipper je k~desce připojen jednodeskový počítač. Nejčastěji se setkáme s~počítačem Raspberry nebo jeho klony. Některé desky umožňují připojení do počítačové sítě rozhraním Ethernet nebo WiFi.
|
||||
|
||||
Řídící desky jsou nejčastěji řízené 8, 16 nebo 32 bitovými mikrokontrolerem. Mikrokontroler zajišťuje čtení z~paměťového média, zpracování instrukcí tzv. G-kódu (GCode případně BGCode -- binární formát GCode).
|
||||
|
||||
\chapter{Kinematika}
|
||||
|
||||
\section{Rektilineární}
|
||||
Tiskárny s~rektilineární kinematikou jsou nejrozšířenějším typem kinematiky FFF tiskáren. V~odborné i~široké veřejnosti jsou spíše známé pod názvem kartézské. To ovšem může být zavádějící, protože firmwary 3D tiskáren používají kartézský systém souřadnic pro většinu kinematik (výjimkou je polární uspořádání). Rektilineární kinematika vyžaduje nejméně tři krokové motory, jeden pro každou z~os. Rektilineární kinematika je v~současné době nejrozšířenější kinematika a~to díky jednoduchosti konstrukce a~jednoduchosti kinematické transformace.
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=\textwidth]{images/1_teoreticka_cast/kinematics.jpg}
|
||||
\caption{Rektilineární kinematiky 3D tiskáren}
|
||||
\label{fig:kinematics}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Cantilever}
|
||||
|
||||
% cSpell:disable Bambu
|
||||
Tato kinematika vyžaduje tři krokové motory. Jeden pro každou z~os. Motor osy Y je uložen pod úrovní tiskové podložky a~slouží k~její translaci v~této ose. Zástupcem této kinematiky je například Bambu Lab A1 mini. Model takové konstrukce je na obrázku \ref{fig:kinematics} (c).
|
||||
|
||||
\subsection{Gantry}
|
||||
|
||||
Kinematika typu gantry mohou být dvojího typu. Translaci ramene osy x zajišťují dva motory osy Y. V~ose Z~se v~jednom z~typů pohybuje tisková podložka (viz (a) na obrázku \ref{fig:kinematics}), v~druhém případě se pohybuje sestava portálu tedy rovina XY (viz (d) na obrázku \ref{fig:kinematics}) a~v třetím případě se v~ose Z~pohybuje samotný nástroj resp. tisková hlava (viz (e) na obrázku \ref{fig:kinematics}). Tato kinematika není v~oblasti 3D tisku příliš často používaná. Uplatnění má však v~oblasti gravírování nebo řezání (například řezání vodním paprskem).
|
||||
|
||||
\subsubsection{Bed Slinger}
|
||||
|
||||
Tato kinematika využívá čtyř motorů. Jeden pro osu X, dva pro osu Z~a~jeden, který pohybuje tiskovou podložkou v~ose Y. Tím se eliminuje prověšení ramene osy X. Ačkoliv jsou tyto tiskárny kompaktní, tak při tisku vyžadují v~ose Y větší prostor pro pohyb tiskové podložky. Nejpopulárnější tiskárnou kinematiku Bed Slinger je Prusa i3 navržena Josefem Průšou nebo cenově přívětivější Creality Ender 3. Tato tiskárna je vyobrazena na obrázku \ref{fig:kinematics} (b).
|
||||
|
||||
\subsection{CoreXY}
|
||||
|
||||
Tato kinematika se velice podobá uspořádání gantry. Rozdílem oproti tomuto upořádání je skutečnost, že pohyb v~osách X a~Y se zajišťují oba motory společně. Motory v~ose z~Z tak nemusí pohybovat portálem, ke kterému je upevněný motor pro osu X, který by tak přidával portálu na hmotnosti. Tato kinematika tak díky stacionárním motorům (vůči rovině XY) dosáhnout vyšší rychlosti tisku. Motory se tak sice musí s~celou konstrukcí pohybovat v~ose Z, ale vysoké rychlosti by v~této ose měli zanedbatelný vliv na celkovou dobu tisku. V~osách X a~Y se tedy pohybuje pouze tisková hlava. Díky snížené hmotnosti se tak posouvá rezonanční frekvence k~vyšším kmitočtům a~tudíž lze dosáhnout vyšších hodnot maximálního zrychlení a~tím pádem i~ke kratším dobám tisku. Tato kinematika se v~dnešní době stává více populární a~to díky tiskárnám projektu Voron 2.4 a~Bambu Lab X1. \cite{dangerklipper_resonance_compensation}
|
||||
|
||||
\subsection{CoreXZ}
|
||||
|
||||
Tato kinematika řeší některé nevýchody tiskáren s~gantry kinematikou. K~pohybu na ose X není potřeba motor, tudíž dochází k~redukci hmotnosti. Tuto kinematiku si lze představit jako hybrid dvou populárnějších kinematik -- Delta a~Bed Slinger. Z~uspořádání Bed Slinger přebírá pohybující se tiskovou podložku a~z delty nezávisle pohybující se ramena zajišťující pohyb v~rovině XZ. Velkou výhodou je, že všechny motory jsou stacionární a~tedy nepřidávají na hmotnosti jiné z~os. \cite{corexz_theory}
|
||||
|
||||
\section{Delta}
|
||||
|
||||
3D tiskrány s~delta kinematikou též používají kartézský systém souřadnic, ale svojí konstrukcí se od ostatních rektilineárních tiskáren velice liší. V~posledních letech se stávají cenově dostupnější a~tedy i~rozšířenější. Uspořádání delta má stacionární tiskovou podložku a~v pohybu ve všech třech osách slouží 3 ramena (v některých přápadech i~víc) upevněna k~vozíku pohybující se v~ose Z~po lineárním vedení upevněného ke konstrukci tiskárny. Pohyb vozíku je často realizován řemenem a~krokovým motorem. 3D tiskárny s~touto kinematikou často používají Bowden extruder, aby se redukovala hmotnost a~tím se redukovali artifakty a~zvýšila rychlost tisku. Nevýhodou této kinematiky je poměr její výšky ku výšce oblasti tisku. \cite{all3dp_3d_printer_types}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=0.3\textwidth]{images/1_teoreticka_cast/delta-gs.png}
|
||||
\caption{Příklad tiskárny s~kinematikou delta (3DBuilder DELTA XXL) (převzato a~upraveno z~\cite{thingiverse_3dbuider_delta_xxl})}
|
||||
\label{fig:delta}
|
||||
\end{figure}
|
||||
|
||||
\section{Polar}
|
||||
|
||||
Toto uspořádání jak jedinné nevyužívá kartézských souřadnic, ale souřadnic polárních. Souřadnice jsou definovány vzdáleností od počátku, vzdálenosti od počátku a~úhel od zvolené osy ležící v~rovině. Polární 3D tiskárny používají pro pohyb v~polární rovině rotující tiskovou podložku, se kterou otáčí krokový motor umístěný pod ní. To komplikuje napájení vyhřívané podložky, proto ji některé 3D tiskárny vůbec vyřívanou nemají. Tisková hlava je upevněna na pohyblivém rameni. Rameno se pohybuje v~rovině kolmo vůči rovině polární. K~tomuto pohybu jsou tak potřeba dva krokové motory. Jejich výhodou je nízká pořizovací cena. Její nevýhodou je pak nízká kvalita a~relativně dlouhá doba tisku. Zástupcem tiskáren s~polární kinematkou je například tiskárna Polar3D od stejnojmenné společnosti nebo Sculpto PRO2.~\cite{all3dp_3d_printer_types}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=0.5\textwidth]{images/1_teoreticka_cast/polar-gs.png}
|
||||
\caption{Koncept tiskárny s polární kinematikou (převzato z~\cite{madl3x_scara_image})}
|
||||
\label{fig:polar}
|
||||
\end{figure}
|
||||
|
||||
\section{SCARA}
|
||||
|
||||
Kinematika SCARA (Selective Compliance Assembly Robot Arm) je v~oblasti 3D tisku používaná jen zřídka. Uspořádání typu SCARA používá kartézský souřadnicový systém. Svým tvarem i~pohybem připomíná píšící paži. K~pohybu v~rovině XY využívá kinematika SCARA rameno rozdělené na dva segmenty, které jsou vzájemně spojeny kloubem (zvaný elbow -- loket). Rameno je pak připojeno dalším kloubem (zvaným shoulder -- rameno) k~dílu, který je upevněn k~základně tiskárny a~zajišťuje pohyb v~ose~Z. Na tomto dílu jsou upevněny dva motory zajišťující pohyb ramene v~rovině XY. K~pohybu v~ose Z~pak stačí jeden krokoý motor. Předností této kinematiky je relativně vysoká rychlost tisku a~její vhodnost pro použití v~průmyslu. Mezi její nevýhody patří relativně nízká kvalita tisku a~absence podpory kinematiky v~některých firmwarech. Příkladem tohoto uspořádání jsou tiskárny RepRap HELIOS a~x-scara. \cite{all3dp_3d_printer_types}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=0.5\textwidth]{images/1_teoreticka_cast/scara-gs.png}
|
||||
\caption{Koncept tiskárn s polární kinematikou (převzato a~upraveno z~\cite{guicol_polar_printer_concept})}
|
||||
\label{fig:scara}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Morgan SCARA}
|
||||
|
||||
|
||||
|
||||
\section{Belt}
|
160
tex/text/3_prakticka_cast.tex
Normal file
|
@ -0,0 +1,160 @@
|
|||
\chapter{Praktická část}
|
||||
|
||||
\section{3D model}
|
||||
Pro modelování dílů jsem se rozhodl použít CAD software FreeCAD. Pro tento CAD jsem se rozhodl proto, že je open source a~tedy dostupný pro každého, kdo jej chce používat. Software FreeCAD byl nedávno vydán ve verzi 1.0, což ve světě open-source mj. znamená připravenost pro použití v~praxi.
|
||||
|
||||
FreeCAD je univerzální parametrický modelovací systém vydaný pod licencí LGPL, tudíž jej lze libovolně šířit a~modifikovat. FreeCAD je také multiplatformní, tudíž jej lze používat v~operačních systémech Windows, Linux i~MacOS. FreeCAD je napsán v~jazyce C++ a~pro manipulaci s~geometrií využívá knihovny OpenCASCADE. FreeCAD lze jej rozšiřovat pomocí zásuvných modulů (pluginů). FreeCAD též umožňuje psaní vlastních skriptů v~jazyce Python a~nahrávání vlastních maker. \cite{FreeCAD_wiki}
|
||||
|
||||
Můj návrh tiskárny vychází z~projektu x-scara \cite{x-scara}. Ve svém návrhu jsem použil shodné rozměry hliníkových profilů, trapézových a~vodících tyčí. Vzhledem k~tomuto faktu se můj návrh projektu x-scara velmi podobá, ačkoliv můj návrh nevyužívá žádný díl z~tohoto projektu.
|
||||
|
||||
Model je rozdělen do tří dílčích částí. První je základna, druhou skříň s~elektronikou, třetí je rameno a~čtvrtou je nástroj -- tisková hlava.
|
||||
|
||||
Soubory ve formátu FCStd (zdrojové soubory modelů) jsou organizovány podle části, do které spadají. Pro generování tiskových souborů ve formátu 3MF (3D Manufacturing Format) vhodného pro slicer slouží python skript, který využívá FreeCAD API. Tento skript postupně otevře, přepočítá a~exportuje všechny díly. Skript exportuje pouze ty objekty, které jsou obsažené v~kontejneru Std Part. Jako název souboru se volí název dílu, který obsahuje i~počet výtisků konkrétního dílu. K~výrobě tištěných dílů pak postačí adresář 3mf a~soubory, které obsahuje.
|
||||
|
||||
\subsection{Základna}
|
||||
Základna je složena ze hliníkových profilů 20x20mm a~20x40mm. Na základnu je upevněno rameno, které se díky lineárně valivým ložiskům pohybuje po třech vodících tyčích o~průměru 8mm. v~horní části základny je upevněn krokový motor, který pomocí trapézové tyče o~průměru 8mm pohybuje ramenem v~ose Z. Druhá strana trapézové tyče je uložena v~ložisku ve spodní části základny.
|
||||
|
||||
Pro spojení hliníkových profilů jsem zvolil metodu "Blind Joint", která umožňuje pevné spojení dvou hliníkových profilů. Tuto techniku jsem zvolil i~z důvodů snadnější montáže akrylové desky a~možnosti zapuštění elektroniky do rámu tiskárny.
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=0.75\textwidth]{images/2_prakticka_cast/Base_Isometric.png}
|
||||
\caption{Náhled konstrukce základny v~programu FreeCAD (v zadní části základny je umístěna skříň s~elektronikou)}
|
||||
\label{fig:base}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Skříň s~elektronikou}
|
||||
|
||||
V zadní části základny je umístěna skříň s~elektronickými komponentami tiskárny. Ta je od prostoru tiskárny oddělena akrylovou deskou, která je upevněna přítlakem DIN lišt. Pro upevnění elektronických komponent slouží tři DIN lišty upevněné z~vnitřní části bočních hliníkových profilů. Elektronika je od okolí oddělena plastovými díly, které společně tvoří skříň, chránící před nechtěným dotykem. Uvnitř skříně najdeme upevněný zdroj, řídící desku, jednodeskový počítač Raspberry Pi a~sadu řadových svorek.
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=0.75\textwidth]{images/2_prakticka_cast/Base_Rear.png}
|
||||
\caption{Náhled konstrukce skříně s~elektronikou v~programu FreeCAD (pohled ze stran)}
|
||||
\label{fig:base-rear}
|
||||
\end{figure}
|
||||
|
||||
% cSpell:ignore PITFT, SHCS, IEC, C14
|
||||
Po obvodu skříně jsou upevněny další části tiskárny. Jednou z~nich je dotykový displej BTT PITFT43, který je ke konstrukci skříně upevněn na pohyblivém pantu. Tento pant je realizován pomocí dílu upevněného ke skříni, zadní části krytu displeje, vložky pro jeho dotažení a~šroubu SHCS M3x60. V~přední části se také nachází kolébkový spínač pro spínání napájení celé tiskárny. Pod spínačem se nachází jeden z~ventilátorů jehož účelem je nasát chladný vzduch do skříně. Na opačné straně v~horní části je též upevněn ventilátor, který naopak odsává teplý vzduch. Na opačné straně displeji je též upevněn keystone s~RJ-45 konektorem pro připojení tiskárny do počítačové sítě. Pod ním se ještě nachází napájecí konektor IEC 60320 C14 s~tavnou pojistkou.
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=0.75\textwidth]{images/2_prakticka_cast/Base_Sides.png}
|
||||
\caption{Náhled konstrukce skříně s~elektronikou v~programu FreeCAD}
|
||||
\label{fig:base-sides}
|
||||
\end{figure}
|
||||
|
||||
|
||||
\section{Tisk}
|
||||
|
||||
Nastavení sliceru vychází z~nastavení doporučení projektu Voron. Jedná se tedy následující nastavení:
|
||||
|
||||
\begin{itemize}
|
||||
\item Výška vrstvy: \textbf{0,2mm}
|
||||
\item Šířka extruze: \textbf{0,4mm}
|
||||
\item Výplň: \textbf{40\%}
|
||||
\item Typ výplně: mřížka, \textbf{gyroid}, plástev, trojúhelníky nebo kubický
|
||||
\item Počet stěn: \textbf{4}
|
||||
\item Plných vrstev: \textbf{5 vrchních}, \textbf{5 spodních}
|
||||
\end{itemize}
|
||||
\section{Implementace kinematiky SCARA do Klippy}
|
||||
% cSpell:disable-next-line
|
||||
Klippy je část firmwaru Klipper, která běží na počítači uvnitř 3D tiskárny, ke kterému je připojena řídící deska. Kód je napsán převážně v~jazyce Python, přičemž některé funkce jsou implementovány v~jazyce C. Volání těchto funkcí je realizováno použitím rozhraní CFFI (C Foreign Function Interface). Klippy slouží k~interpreataci výrobních instrukcí -- GCode, které jsou přeloženy na volání iterních metod. Tyto volání jsou odesílány po sběrnici USB do řídící desky, která například generuje pulzy pro krokové motory nebo spíná topná tělesa. \cite{klipper_code_overview}
|
||||
|
||||
\subsection{Přímá a~inverzní kinematika}
|
||||
Kinematické transformace se používají k~převodu natočení kloubů na souřadnice koncového bodu (přímá transformace) a~naopak (inverzní transformace). Pro výpočet transformace je třeba znát délky ramen \(L_1\) a~\(L_2\), offsety ramen \(x_{offset}\) a~\(y_{offset}\) a~Elbow Crosstalk Ratio (ECR).
|
||||
|
||||
Elbow Crosstalk Ratio (převodový poměr řemenice v~ose ramene vůči řemenici v~ose kloubu) získáme dosazením počtu zubů řemenice ramene \(n_S\) a~počtu zubů řemenice v~kloubu \(n_E\).
|
||||
|
||||
\begin{equation}
|
||||
ECR = \frac { n_S } { n_E }
|
||||
\end{equation}
|
||||
|
||||
\subsubsection{Přímá kinematika}
|
||||
|
||||
Protože rotace motoru v~ose ramene ovlivňuje rotaci motoru v~ose kloubu, je třeba tento vliv kompenzovat. Tím dostaneme úhel \(\Phi_E\), který je potřeba pro výpočet skutečné polohy nástroje. Pro výpočet známe úhel motoru ramene \(\Phi_{S_M}\) a~úhel motoru kloubu \(\Phi_{S_E}\).
|
||||
|
||||
\begin{equation}
|
||||
\Phi_S = \Phi_{S_M}
|
||||
\end{equation}
|
||||
|
||||
\begin{equation}
|
||||
\Phi_E = \Phi_{E_M} - \frac{ \Phi_{S_M} } { ECR }
|
||||
\end{equation}
|
||||
|
||||
Pro další výpočty potřeba převést úhly motorů \(\Phi_{S_M}\) (shoulder) a~\(\Phi_E\) (elbow) na radiány, protože goniometrické funkce v~knihovně math programovacího jazyka Python pracuje s~úhly v~radiánech. V~kódu pak lze pro převod použít metodu \texttt{math.radians()}.
|
||||
|
||||
\begin{equation}
|
||||
\phi_S = \Phi_S \cdot \frac { \pi } { 180 } [\si{\radian}]
|
||||
\end{equation}
|
||||
|
||||
\begin{equation}
|
||||
\phi_E = \Phi_E \cdot \frac { \pi } { 180 } [\si{\radian}]
|
||||
\end{equation}
|
||||
|
||||
Poté je potřeba přičíst odsazení souřadného systému nástroje vůči souřadnému systému báze (konkrétně odsazení kloubu ramene vůči počátku tiskové podložky).
|
||||
|
||||
\begin{equation}
|
||||
x = \sin(\phi_S) \cdot L_1 + \sin(\phi_S + \phi_E) \cdot L_2
|
||||
\end{equation}
|
||||
|
||||
\begin{equation}
|
||||
y = \cos(\phi_S) \cdot L_1 + \cos(\phi_S + \phi_E) \cdot L_2
|
||||
\end{equation}
|
||||
|
||||
Nakonec je potřeba přepočítat souřadnice nástroje vůči středu tiskové podložky na souřadnice vůči počátku tiskárny.
|
||||
|
||||
\begin{equation}
|
||||
x_{raw} = - x + x_{offset}
|
||||
\end{equation}
|
||||
|
||||
\begin{equation}
|
||||
y_{raw} = y + y_{offset}
|
||||
\end{equation}
|
||||
|
||||
\subsubsection{Inverzní kinematika}
|
||||
Nejprve je potřeba převést absolutní souřadnice nástroje vůči počátku tiskárny na souřadnice vztažené k~středu tiskové podložky.
|
||||
|
||||
\begin{equation}
|
||||
x = - (x_{raw} - x_{offset})
|
||||
\end{equation}
|
||||
|
||||
\begin{equation}
|
||||
y = (y_{raw} - y_{offset})
|
||||
\end{equation}
|
||||
|
||||
Dalším krokem je výpočet vzdálenosti od počátku.
|
||||
|
||||
\begin{equation}
|
||||
% cSpell:disable-next-line
|
||||
hypot = \sqrt{x^2 + y^2}
|
||||
\end{equation}
|
||||
|
||||
Dále se vypočítají úhly ramen \(\phi_S\) (shoulder) a~\(\phi_E\) (elbow).
|
||||
|
||||
\begin{equation}
|
||||
% cSpell:disable-next-line
|
||||
\phi_S = arctan2 \left( x, y \right) - arccos \left( \frac { x^2 + y^2 + L_1^2 - L_2^2 } { 2 \cdot L_1 \cdot hypot } \right) [\si{\radian}]
|
||||
\end{equation}
|
||||
|
||||
kde \(L_1\) a~\(L_2\) jsou délky ramen.
|
||||
|
||||
\begin{equation}
|
||||
\phi_E = \frac { \phi_S } { ECR } + arccos \left( \frac { x^2 + y^2 + L_1^2 + L_2^2 } { 2 \cdot L_1 \cdot L_2 } \right) [\si{\radian}]
|
||||
\end{equation}
|
||||
|
||||
kde \(ECR\) je Elbow Crosstalk Ratio, \(L_1\) a~\(L_2\) jsou délky ramen.
|
||||
|
||||
Následně stačí převést úhel v~radiánech na stupně.
|
||||
|
||||
\begin{equation}
|
||||
\Phi_S = \phi_S \cdot \frac { 180 } { \pi } [\si{\degree}]
|
||||
\end{equation}
|
||||
|
||||
\begin{equation}
|
||||
\Phi_E = \phi_E \cdot \frac { 180 } { \pi } [\si{\degree}]
|
||||
\end{equation}
|
||||
|
||||
\section{Konfigurace tiskárny}
|
||||
|
||||
\section{Kalibrace tiskárny}
|
|
@ -1,92 +0,0 @@
|
|||
\chapter{Aditivní výroba a 3D tisk}
|
||||
Aditivní výroba, též nazývaná 3D tisk, je technologie umožňující výrobu dílů pomocí nanášení materiálu ve vrstvách. Tato technologie našla uplatnění nejen ve výrobě prototypů a výrobě v malých sériích, ale i v medicínských aplikacích, architektuře, vesmírném průmyslu a mnoha dalších oblastech.
|
||||
|
||||
V porovnání s využitím subtraktivní výroby, má aditivní výroba řadu výhod. Velkou výhodou aditivního výrobního procesu je \textbf{flexibilita při návrhu a výrobě} komplexních tvarů, které by byly obtížně nebo vůbec nevyrobitelné konvenčními technologiemi. Při použití subtraktivních procesů jsou limitujícími faktory návrhu zejména potřeba přípravků, relativně velkého množství nástrojů a také možnost výskytu obráběného výrobku s nástrojem. V porovnání s tvářecími technologiemi (jakou jsou například vstřikování, přetlačování nebo třeba lisování), které vyžadují výrobu potřebných nástrojů a forem, což značně limituje geometrii výrobku. Technologie aditivní výroby umožňuje umístit materiál tam, kde je potřeba bez ohledu na nástroje potřebné k výrobě. To umožňuje například výrobu topologicky optimalizovaných dílů a výrobků. \cite{GAO201565}
|
||||
|
||||
Další výhodou oproti subtraktivním technologiím je \textbf{malé množství odpadního materiálu}, protože je materiál nanášen pouze v oblastech, kde je potřeba. Oproti tvářecím technologiím je výhodou například využití neúplné výplně, která šetří materiál a zkracuje dobu tisku.
|
||||
|
||||
Velkou výhodou pak je \textbf{konstantní cena při výrobě dílů s komplexní geometrií}. Cena výroby u aditivní výroby není závislá na složitosti geometrie dílu, ale pouze na množství a typu materiálu použitého k výrobě a době tisku, resp. spotřebě elektrické energie.\cite{GAO201565}
|
||||
|
||||
Při výrobě komplexních geometrií pomocí aditivní výroby \textbf{není často potřeba rozdělovat díl nebo výrobek na více části}, které je následně potřeba spojit. To v praxi znamená nižší náklady na výrobu, menší riziko chyb při montáži a také nižší hmotnost výrobku. Při výrobě takových dílů vzrůstá potřeba tiskových podpor, které mohou komplikovat čištění a kompletaci výrobku. Při odstraňování podpor může způsobit geometrické nepřesnosti. \cite{GAO201565}
|
||||
|
||||
Limitací 3D tisku může být právě geometrická přesnost a omezená kvalita povrchu, která je navíc ovlivněna metodou výroby (tj. FFF, SLA, SLS, ...). 3D tiskárny využívají zejména k výrobě dílů o rozměrech v řádu několika milimetrů až desítek centimetrů a jejich tolerance se pohybuje v rámci několika desetin až setin milimetru. \cite{GAO201565}
|
||||
|
||||
\section{Technologie FFF}
|
||||
FFF (Fused Filament Fabrication) je zejména z důvodu nízké pořizovací ceny stroje i materiálu jednou z nejrozšířenějších technologií aditivní výroby. Tato technologie využívá plastové polymery, které mohou obsahovat příměsi jiných materiálů ve formě vláken nebo práškové příměsi. Tento materiál je prodáván ve formě tiskových strun o průměru 1,75~mm nebo 2,85~mm navinutých na cívku. Tato struna je odvíjena extruderem a vytlačena rozehřátou tryskou. Tryska způsobí tavení termoplastu a dojde tak k vytlačení přesného množství materiálu, které je řízeno průměrem otvoru trysky, rychlostí pohybu tiskové hlavy vůči tiskové podložce a rychlostí vytlačování materiálu. Tisková hlava nanáší materiál v definovaných vrstvách na tiskovou podložku. Tato podložka je většinou vyhřívaná, což zabraňuje deformaci tiskového výrobku a jeho případné oddělení od tiskové plochy. \cite{mcae_fff}
|
||||
|
||||
\section{Části 3D tiskárny}
|
||||
|
||||
\subsection{Tisková hlava}
|
||||
Tisková hlava slouží k zahřátí a následnému vytlačení tiskového materiálu. Pohybem tiskové hlavy nebo podložky dochází k vytvoření tenké vrstvy materiálu na tiskovou podložku. Složením těchto vrstev vzniká tisknutý výrobek.
|
||||
|
||||
Filament je extruderem vtlačován do hotendu skládající se z PTFE trubičky, která je zavedena do pasivního chladiče, který je chlazen ventilátorem. Tento ventilátor zabraňuje tavení materiálu mimo hotend. Následně je filament protlačován tepelným izolátorem, který odděluje studenou a teplou zónu. Tepelný izolátor je kovová trubička na jejíž koncích jsou vnější závity, a tak spojuje chladič a topný blok. Tepelný izolátor slouží hlavně k omezení přenosu tepla do předchozích částí hotendu. Posledními částmi jsou topný blok a tisková tryska. Topný blok má kromě průchozího otvoru pro materiál další dva otvory, jeden pro topnou patronu a druhý pro termistor, který slouží k monitorování aktuální teploty tepelného bloku potažmo trysky. Tryska se společně s krokovým motorem, tloušťkou tiskové struny podílejí na množství vytlačovaného materiálu. \cite{Prusa_Zaklady_3D_tisku}
|
||||
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=0.5\textwidth]{images/1_teoreticka_cast/extruder.png}
|
||||
\caption{Detailní pohled na tiskovou hlavu s přímím extruderem (direct-drive): (1) PTFE trubička, (2) Pasivní chladič (heatsink), (3) Ventilátor pro chlazení materiálu (part fan), (4) Ventilátor k chlazení extruderu, (5) Tepelný izolátor (heat break), (6) Topný blok (heat block) \cite{Prusa_Zaklady_3D_tisku}}
|
||||
\label{fig:hotend}
|
||||
\end{figure}
|
||||
|
||||
Podstatnou částí tiskové hlavy je ventilátor, který chladí tiskový materiál po jeho vytlačení z trysky. Tento ventilátor zabraňuje deformaci výtisku a redukuje stringing. Správné nastavení tohoto ventilátoru je relativně podstatné pro kvalitu výtisku. Při správném nastavení je tiskárna schopna překlenout relativně velké mezery bez použití podpůrných struktur. \cite{Choudhary_Analysis}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=0.75\textwidth]{images/1_teoreticka_cast/part-cooling.jpg}
|
||||
\caption{Detailní pohled na depozici vrstvy: (a) s ventilátorem pro chlazení materiálu a (b) bez ventilátoru \cite{Choudhary_Analysis}}
|
||||
\label{fig:part-cooling}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Tisková podložka}
|
||||
Tisková podložka je část 3D tiskárny, na kterou je nanášen materiál. Tato podložka je zpravidla vyhřívaná, aby nedocházelo k deformaci výtisku a nedošlo tak k jeho oddělení od tiskové podložky.
|
||||
|
||||
Vyhřívání podložky je realizováno několika způsoby. Jedním z nich je například topná DPS (deska plošných spojů). Může jít například o běžně používaný kompozitní materiál FR-4 se skleněným jádrem nebo MCPCB (Metal Core PCB)/IMS (Insulated Metal Substrate) s jádrem hliníkovým. V tomto případě jako topné těleso slouží vodivá cesta ve tvaru meandru nebo spirály. Na DPS je poté připevněna tisková podložka případně jako tisková podložka slouží samotná DPS.
|
||||
|
||||
Dalším způsobem vyhřívání je hliníková deska se silikonovým topným tělesem, které je přilepeno k její spodní straně. Alternativou silikonového topného tělesa můžou být i topné patrony. Na tuto hliníkovou desku je připevněna tisková podložka.
|
||||
|
||||
Tiskových podložek existuje několik druhů. Tiskové podložky mohou být vyrobené z různých materiálů, jako je například PEI (polyetherimid) ve formě přířezu nebo pružinové oceli s práškově lakovaným PEI povrchem. Dalším materiálem je sklo, které se velice hladké, odolné a vlivem jeho nízké tepelné vodivosti dobře rozptyluje teplo. \cite{materialpro3d_typy_povrchu} Dalšími poměrně rozšířenými povrchy jsou různé lepící pásky. Příkladem je například polyimidová páska nebo papírová páska.
|
||||
|
||||
Tiskové podložky se liší i svými povrchy. Například PEI podložky se prodávají v hladké, texturované i variantě se vzorem.
|
||||
|
||||
\subsection{Rám}
|
||||
Rám 3D tiskáren je často realizován pomocí hliníkových profilů stejně jako jiné průmyslové stroje. Tyto profily jsou spojovány pomocí rohových spojek vyrobené z odlévaného hliníku případně tisknutými, tlakově odlévanými nebo vstřikovanými díly. Rámy komerčních 3D tiskáren mají nejčastěji rám zhotovený z tlakově litými hliníkovými díly nebo řezáním, lisováním a tvářením hliníkových nebo ocelových přířezů.
|
||||
|
||||
Konstrukci rámu nelze podcenit. Má totiž přímý vliv na tisknuté výrobky. Málo pevné spoje můžou způsobovat vibrace a nepřesnosti, zatímco profily s nerovným koncem můžou způsobit deformace výtisku klidně i v několika osách.
|
||||
|
||||
\subsection{Krokové motory}
|
||||
Krokové motory zajišťují veškerý pohyb tiskové hlavy vůči poloze na tiskové podložce. Krokové motory se též používají v extruderu pro vytlačování filamentu.
|
||||
|
||||
Krokový motor je ve své podstatě synchronní motor, který přeměňuje vstupní digitální elektrický signál na odpovídající mechanický pohyb. Krokové motory pracují v tzv. otevřené smyčce, tedy nepoužívají zpětnou vazbu. Pro nastavování polohy nebo rychlosti otáčení není totiž u krokových motorů potřeba. Po přivedení impulzu se motor pootočí o přesně definovaný úhel -- krok. Počet těchto pulzů obvykle odpovídá počtu vykonaných kroků. \cite{2016Rarv}
|
||||
|
||||
Běžným úhlem jednoho kroku hybridního krokového motoru používaného v 3D tiskárnách je 1,8 °. Přepočtem tak můžeme zjistit, že takový motor má 200 kroků. Takového úhlu lze docílit díky konstrukci hybridního krokového motoru.
|
||||
|
||||
% TODO: Dopsat více info
|
||||
|
||||
\subsection{Řídící deska}
|
||||
Slouží k propojení zdroje, všech elektricky řízených součástí a senzorů tiskárny. Slouží k napájení vyhřívané podložky (v případě použití vyhřívané podložky napájené síťovým napětím 230V 50Hz pouze řídí spínání relé). Dále se k ni připojují krokové motory a jejich drivery, nejsou-li integrované na řídící desce. K desce jsou připojeny i ventilátory, zejména ty se řízenými otáčkami (ventilátor hotendu a ventilátor pro chlazení materiálu). Dále k ni jsou připojeny koncové spínače, termočlánky a například i osvětlení tiskárny. Řídící desky též slouží k připojení displeje a ovládání uživatelského rozhraní tiskárny. V případě použití firmware Klipper je k desce připojen jednodeskový počítač. Nejčastěji se setkáme s počítačem Raspberry nebo jeho klony. Některé desky umožňují připojení do počítačové sítě rozhraním Ethernet nebo WiFi.
|
||||
|
||||
Řídící desky jsou nejčastěji řízené 8, 16 nebo 32 bitovými mikrokontrolerem. Mikrokontroler zajišťuje čtení z paměťového média, zpracování instrukcí tzv. G-kódu (GCode případně BGCode -- binární formát GCode).
|
||||
|
||||
\chapter{Kinematika}
|
||||
|
||||
\section{Konstrukce FFF 3D tiskáren}
|
||||
|
||||
FFF 3D tiskárny využívají především paralelní kinematiku
|
||||
|
||||
\subsection{Kartézská}
|
||||
Tiskárny s kartézskou kinematikou jsou nejrozšířenější a zároveň nejjednodušším typem kinematiky FFF tiskáren. Kinematika vyžaduje tři krokové motory, jeden pro každou z os. Kartézská kinematika je v současné době nejrozšířenější kinematika a to díky jednoduchosti konstrukce a jednoduchosti kinematické transformace.
|
||||
|
||||
\subsubsection{Portálová kinematika (gantry)}
|
||||
Tato kinematika vyžaduje nejméně čtyři krokové motory, tedy jeden motor pro každou z os a jeden další motor pro jednu z os. Zpravidla to bývá osa Z. Tím se eliminuje prověšení ramene osy X. Ačkoliv jsou tyto tiskárny kompaktní, tak při tisku vyžadují v ose Y větší prostor pro pohyb tiskové podložky. Nejpopulárnější tiskárnou využívající portálovou kinematiku je Prusa i3 navržena Josefem Průšou nebo cenově přívětivější Creality Ender 3.
|
||||
|
||||
\subsubsection{Kinematika CoreXY}
|
||||
Tato kinematika umožňuje díky stacionárním motorům (v osách X a Y) dosáhnout vyšší rychlosti tisku
|
||||
|
||||
\subsubsection{Kinematika CoreXZ}
|
||||
|
||||
\subsection{Kinematika SCARA}
|
||||
|
||||
\subsection{Kinematika Delta}
|
||||
|
||||
\subsection{Polární kinematika}
|
|
@ -1,132 +0,0 @@
|
|||
\chapter{Praktická část}
|
||||
|
||||
\section{3D model}
|
||||
Pro modelování dílů jsem se rozhodl použít CAD software FreeCAD. Pro tento CAD jsem se rozhodl proto, že je open source a tedy dostupný pro každého, kdo jej chce používat. Software FreeCAD byl nedávno vydán ve verzi 1.0, což ve světě open-source mj. znamená připravenost pro použití v praxi.
|
||||
|
||||
FreeCAD je univerzální parametrický modelovací systém vydaný pod licencí LGPL, tudíž jej lze libovolně šířit a modifikovat. FreeCAD je také multiplatformní, tudíž jej lze používat v operačních systémech Windows, Linux i MacOS. FreeCAD je napsán v jazyce C++ a pro manipulaci s geometrií využívá knihovny OpenCASCADE. FreeCAD lze jej rozšiřovat pomocí zásuvných modulů (pluginů). FreeCAD též umožňuje psaní vlastních skriptů v jazyce Python a nahrávání vlastních maker. \cite{FreeCAD_wiki}
|
||||
|
||||
Můj návrh tiskárny vychází z projektu x-scara \cite{x-scara}. Ve svém návrhu jsem použil shodné rozměry hliníkových profilů, trapézových a vodících tyčí. Vzhledem k tomuto faktu se můj návrh projektu x-scara velmi podobá, ačkoliv můj návrh nevyužívá žádný díl z tohoto projektu.
|
||||
|
||||
Model je rozdělen do tří dílčích částí. První je základna, druhou skříň s elektronikou, třetí je rameno a čtvrtou je nástroj -- tisková hlava.
|
||||
|
||||
Soubory ve formátu FCStd (zdrojové soubory modelů) jsou organizovány podle části, do které spadají. Pro generování tiskových souborů ve formátu 3MF (3D Manufacturing Format) vhodného pro slicery slouží python skript. Tento skript postupně otevře, přepočítá a exportuje všechny díly. Skript exportuje pouze ty objekty, které jsou obsažené v kontejneru Std Part. Jako název souboru se volí název dílu, který obsahuje i počet výtisků konkrétního dílu. K výrobě tištěných dílů pak postačí adresář 3mf a soubory, které obsahuje.
|
||||
|
||||
\subsection{Základna}
|
||||
Základna je složena ze hliníkových profilů 20x20mm a 20x40mm. Na základnu je upevněno rameno, které se díky lineárně valivým ložiskům pohybuje po třech vodících tyčích o průměru 8mm. V horní části základny je upevněn krokový motor, který pomocí trapézové tyče o průměru 8mm pohybuje ramenem v ose Z. Druhá strana trapézové tyče je uložena v ložisku ve spodní části základny.
|
||||
|
||||
Pro spojení hliníkových profilů jsem zvolil metodu "Blind Joint", která umožňuje pevné a levné spojení dvou hliníkových profilů. Tuto techniku jsem zvolil i z důvodů snadnější montáže akrylové desky a možnosti zapuštění elektroniky do rámu tiskárny.
|
||||
|
||||
\subsection{Skříň s elektronikou}
|
||||
|
||||
V zadní části základny je umístěna skříň s elektronickými komponentami tiskárny. Ta je od prostoru tiskárny oddělena akrylovou deskou, která je upevněna přítlakem DIN lišt. Pro upevnění elektronických komponent slouží tři DIN lišty upevněné z vnitřní části bočních hliníkových profilů. Elektronika je od okolí oddělena plastovými díly, které společně tvoří skříň, chránící před nechtěným dotykem. Uvnitř skříně najdeme upevněný zdroj, řídící desku, jednodeskový počítač Raspberry Pi a sadu řadových svorek.
|
||||
|
||||
Po obvodu skříně jsou upevněny další části tiskárny. Jednou z nich je dotykový displej BTT PITFT43, který je ke konstrukci skříně upevněn na pohyblivém pantu. Tento pant je realizován pomocí dílu upevněného ke skříni, zadní části krytu displeje, vložky pro jeho dotažení a šroubu SHCS M3x60. V přední části se také nachází kolébkový spínač pro spínání napájení celé tiskárny. Pod spínačem se nachází jeden z ventilátorů jehož účelem je nasát chladný vzduch do skříně. Na opačné straně v horní části je též upevněn ventilátor, který naopak odsává teplý vzduch. Na opačné straně displeji je též upevněn keystone s RJ-45 konektorem pro připojení tiskárny do počítačové sítě. Pod ním se ještě nachází napájecí konektor IEC 60320 C14 s tavnou pojistkou.
|
||||
|
||||
\section{Tisk}
|
||||
|
||||
Nastavení sliceru vychází z nastavení doporučení projektu Voron. Jedná se tedy následující nastavení:
|
||||
|
||||
\begin{itemize}
|
||||
\item Výška vrstvy: \textbf{0,2mm}
|
||||
\item Šířka extruze: \textbf{0,4mm}
|
||||
\item Výplň: \textbf{40\%}
|
||||
\item Typ výplně: mřížka, \textbf{gyroid}, plástev, trojúhelníky nebo kubický
|
||||
\item Počet stěn: \textbf{4}
|
||||
\item Plných vrstev: \textbf{5 vrchních}, \textbf{5 spodních}
|
||||
\end{itemize}
|
||||
\section{Implementace kinematiky SCARA do Klippy}
|
||||
% cSpell:disable-next-line
|
||||
Klippy je část firmwaru Klipper, která běží na počítači uvnitř 3D tiskárny, ke kterému je připojena řídící deska. Kód je napsán převážně v jazyce Python, přičemž některé funkce jsou implementovány v jazyce C. Volání těchto funkcí je realizováno použitím rozhraní CFFI (C Foreign Function Interface). \cite{klipper_code_overview}
|
||||
|
||||
\subsection{Přímá a inverzní kinematika}
|
||||
Kinematické transformace se používají k převodu natočení kloubů na souřadnice koncového bodu (přímá transformace) a naopak (inverzní transformace). Pro výpočet transformace je třeba znát délky ramen \(L_1\) a \(L_2\), offsety ramen \(x_{offset}\) a \(y_{offset}\) a Elbow Crosstalk Ratio (ECR).
|
||||
|
||||
Pro další výpočty je potřebné znát Elbow Crosstalk Ratio (převodový poměr řemenice v ose ramene vůči řemenici v ose kloubu).
|
||||
|
||||
\begin{equation}
|
||||
ECR = \frac { n_S } { n_E }
|
||||
\end{equation}
|
||||
|
||||
\subsubsection{Přímá kinematika}
|
||||
|
||||
\begin{equation}
|
||||
\phi_S = a
|
||||
\end{equation}
|
||||
|
||||
\begin{equation}
|
||||
\phi_E = b - \frac{a}{ECR}
|
||||
\end{equation}
|
||||
|
||||
\begin{equation}
|
||||
a\_sin = - \sin(\phi_S) \cdot L_1
|
||||
\end{equation}
|
||||
|
||||
\begin{equation}
|
||||
a\_cos = \cos(\phi_S) \cdot L_1
|
||||
\end{equation}
|
||||
|
||||
\begin{equation}
|
||||
b\_sin = - \sin(\phi_S + \phi_E) \cdot L_2
|
||||
\end{equation}
|
||||
|
||||
\begin{equation}
|
||||
b\_cos = \cos(\phi_S + \phi_E) \cdot L_2
|
||||
\end{equation}
|
||||
|
||||
Nakonec je potřeba přičíst odsazení souřadného systému nástroje vůči souřadnému systému báze (konkrétně odsazení kloubu ramene vůči počátku tiskové podložky).
|
||||
|
||||
\begin{equation}
|
||||
x = a\_sin + b\_sin + x_{offset}
|
||||
\end{equation}
|
||||
|
||||
\begin{equation}
|
||||
y = a\_cos + b\_cos + y_{offset}
|
||||
\end{equation}
|
||||
|
||||
|
||||
\subsubsection{Inverzní kinematika}
|
||||
Nejprve je třeba kompenzovat offset polohy TCP v osách x a y.
|
||||
|
||||
\begin{equation}
|
||||
x = - (raw_x - x_{offset})
|
||||
\end{equation}
|
||||
|
||||
\begin{equation}
|
||||
y = (raw_y - y_{offset})
|
||||
\end{equation}
|
||||
|
||||
Dalším krokem je výpočet vzdálenosti od počátku.
|
||||
|
||||
\begin{equation}
|
||||
% cSpell:disable-next-line
|
||||
hypot = \sqrt{x^2 + y^2}
|
||||
\end{equation}
|
||||
|
||||
Dále se vypočítají úhly ramen \(\phi_S\) (shoulder) a \(\phi_E\) (elbow).
|
||||
|
||||
\begin{equation}
|
||||
% cSpell:disable-next-line
|
||||
\phi_S = arctan2 \left( x, y \right) - arccos \left( \frac { x^2 + y^2 + L_1^2 - L_2^2 } { 2 \cdot L_1 \cdot hypot } \right) [\si{\radian}]
|
||||
\end{equation}
|
||||
|
||||
kde \(L_1\) a \(L_2\) jsou délky ramen.
|
||||
|
||||
\begin{equation}
|
||||
\phi_E = \frac { \phi_S } { ECR } + arccos \left( \frac { x^2 + y^2 + L_1^2 + L_2^2 } { 2 \cdot L_1 \cdot L_2 } \right) [\si{\radian}]
|
||||
\end{equation}
|
||||
|
||||
kde \(ECR\) je Elbow Crosstalk Ratio, \(L_1\) a \(L_2\) jsou délky ramen.
|
||||
|
||||
Následně stačí převést úhel v radiánech na stupně.
|
||||
|
||||
\begin{equation}
|
||||
\Phi_S = \phi_S \cdot \frac { 180 } { \pi } [\si{\degree}]
|
||||
\end{equation}
|
||||
|
||||
\begin{equation}
|
||||
\Phi_E = \phi_E \cdot \frac { 180 } { \pi } [\si{\degree}]
|
||||
\end{equation}
|
||||
|
||||
\section{Konfigurace tiskárny}
|
||||
|
||||
\section{Kalibrace tiskárny}
|
7
tex/text/4_zaver.tex
Normal file
|
@ -0,0 +1,7 @@
|
|||
\chapter*{Závěr}
|
||||
\phantomsection
|
||||
\addcontentsline{toc}{chapter}{Závěr}
|
||||
|
||||
V rámci semestrální práce jsem se v~teoretické části věnoval principům a~výhodám aditivních výrobních procesů, konstrukci 3D tiskáren a~jejich komponentám. V~praktické části jsem se zabýval návrhem základny a~skříně s~elektronikou. Také jsem vytvořil skript, který generuje automaticky generuje tiskové soubory ve formátu 3MF (3D Manufacturing Format) vhodné pro slicer. Dále jsem se věnoval nastavení sliceru a~implementaci kinematiky SCARA do firmware Klipper.
|
||||
|
||||
V bakalářské práci se budu věnovat návrhu ramene, tiskové hlavy a~vyhřívané podložky. Dále implementuji kinematiku SCARA do firmware Klipper a~nakonec tiskárnu sestavím, zkalibruji a~otestuji.
|
|
@ -1,5 +0,0 @@
|
|||
\chapter*{Závěr}
|
||||
\phantomsection
|
||||
\addcontentsline{toc}{chapter}{Závěr}
|
||||
|
||||
Shrnutí studentské práce.
|
|
@ -3,15 +3,16 @@
|
|||
\phantomsection
|
||||
\addcontentsline{toc}{chapter}{\listofabbrevname}
|
||||
|
||||
\begin{acronym}[KolikMista]
|
||||
\begin{acronym}[DPS/PCB]
|
||||
|
||||
\acro{TCP}{poloha koncového bodu -- Tool Center Point}
|
||||
\acro{FFF}{Fused Filament Fabrication}
|
||||
\acro{SLA}{Stereolithography}
|
||||
\acro{SLS}{Selektivní spékání laserem -- Selective Laser Sintering}
|
||||
\acro{SLA}{Stereolitografie -- Stereolithography}
|
||||
\acro{PEI}{Polyetherimid}
|
||||
\acro{SLS}{Selective Laser Sintering}
|
||||
\acro{DPS/PCB}{Deska plošných spojů -- Printed Circuit Board}
|
||||
\acro{MCPCB}{Metal Core PCB}
|
||||
\acro{IMS}{Insulated Metal Substrate}
|
||||
\acro{SCARA}{Selective Compliance Assembly Robot Arm}
|
||||
|
||||
\end{acronym}
|
6
tex/text/6_prilohy.tex
Normal file
|
@ -0,0 +1,6 @@
|
|||
\chapter{Skripty}
|
||||
|
||||
\section{Skript pro generování 3MF souborů pro slicování}
|
||||
\label{appendix:generate_3mf_files}
|
||||
|
||||
\inputminted[linenos=true,fontsize=\small]{python}{../scripts/generate_3mf_files.py}
|