mirror of
https://github.com/vofy/fekt-scara.git
synced 2025-06-27 21:49:22 +02:00
Fixed compilation issues
This commit is contained in:
parent
ebadedc7da
commit
c9a0142a1a
4 changed files with 62 additions and 3 deletions
59
prilohy/generate_step_files.py
Normal file
59
prilohy/generate_step_files.py
Normal file
|
@ -0,0 +1,59 @@
|
|||
#!/usr/bin/freecadcmd
|
||||
|
||||
import os
|
||||
import shutil
|
||||
import subprocess
|
||||
import FreeCAD as App # type: ignore
|
||||
import Mesh # type: ignore
|
||||
|
||||
project_root = os.path.abspath(
|
||||
os.path.join(os.path.dirname(os.path.realpath(__file__)), os.pardir)
|
||||
)
|
||||
|
||||
printed_cad_dir = os.path.join(project_root, "printed")
|
||||
printed_out_dir = os.path.join(project_root, "step")
|
||||
|
||||
if os.path.exists(printed_out_dir):
|
||||
shutil.rmtree(printed_out_dir, ignore_errors=True)
|
||||
|
||||
os.makedirs(printed_out_dir, exist_ok=True)
|
||||
|
||||
failed_files = []
|
||||
|
||||
for root, dirs, files in os.walk(printed_cad_dir):
|
||||
for file in files:
|
||||
if file.endswith(".FCStd"):
|
||||
file_path = os.path.join(root, file)
|
||||
|
||||
App.Console.PrintMessage(f"\nProcessing {file_path}\n")
|
||||
|
||||
doc = App.openDocument(file_path)
|
||||
App.setActiveDocument(doc.Name)
|
||||
App.ActiveDocument.recompute()
|
||||
|
||||
for obj in doc.Objects:
|
||||
if obj.TypeId == "App::Part":
|
||||
output_path = os.path.join(
|
||||
printed_out_dir,
|
||||
os.path.relpath(root, printed_cad_dir),
|
||||
f"{obj.Label}.step",
|
||||
)
|
||||
os.makedirs(os.path.dirname(output_path), exist_ok=True)
|
||||
|
||||
try:
|
||||
obj.Shape.exportStep(output_path)
|
||||
App.Console.PrintMessage(
|
||||
f"Exported {obj.Label} to {output_path}\n"
|
||||
)
|
||||
except Exception as e:
|
||||
App.Console.PrintError(f"Error exporting {obj.Label}: {e}\n")
|
||||
failed_files.append(file_path)
|
||||
|
||||
App.closeDocument(doc.Name)
|
||||
|
||||
if failed_files:
|
||||
App.Console.PrintError("\nThe following files failed to export:\n")
|
||||
for file in failed_files:
|
||||
App.Console.PrintError(f" - {file}\n")
|
||||
else:
|
||||
App.Console.PrintMessage("\nAll files have been exported successfully.\n")
|
Binary file not shown.
|
@ -9,7 +9,7 @@ Můj návrh tiskárny vychází z~projektu x-scara~\cite{x-scara}. Ve svém náv
|
|||
|
||||
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.
|
||||
Soubory ve formátu FCStd (zdrojové soubory modelů) jsou organizovány podle části, do které spadají. Pro generování souborů ve formátu STEP 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.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
\chapter{Skripty}
|
||||
|
||||
\section{Skript pro generování 3MF souborů pro slicování}
|
||||
\label{appendix:generate_3mf_files}
|
||||
\label{appendix:generate_step_files}
|
||||
|
||||
\inputminted[linenos=true,fontsize=\small]{python}{../scripts/generate_3mf_files.py}
|
||||
\inputminted[linenos=true,fontsize=\small]{python}{../prilohy/generate_step_files.py}
|
Loading…
Reference in a new issue