1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-03 06:04:53 +00:00

New port: cad/PrusaSlicer

PrusaSlicer takes 3D models (STL, OBJ, AMF) and converts them into G-code
instructions for FFF printers or PNG layers for mSLA 3D printers. It's
compatible with any modern printer based on the RepRap toolchain, including
all those based on the Marlin, Prusa, Sprinter and Repetier firmware.
It also works with Mach3, LinuxCNC and Machinekit controllers.

PR:		243528
Submitted by:	Teodor Sigaev <teodor@sigaev.ru>
This commit is contained in:
Eugene Grosbein 2020-01-24 18:26:04 +00:00
parent dcd43ef8e0
commit 06408f8fae
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=523977
9 changed files with 355 additions and 0 deletions

View File

@ -82,6 +82,7 @@
SUBDIR += p5-Verilog-Perl
SUBDIR += pcb
SUBDIR += pdnmesh
SUBDIR += PrusaSlicer
SUBDIR += py-gdspy
SUBDIR += py-lcapy
SUBDIR += py-phidl

36
cad/PrusaSlicer/Makefile Normal file
View File

@ -0,0 +1,36 @@
# $FreeBSD$
PORTNAME= PrusaSlicer
DISTVERSIONPREFIX= version_
DISTVERSION= 2.1.1
CATEGORIES= cad
MAINTAINER= teodor@sigaev.ru
COMMENT= Slicing application for 3D printers
LICENSE= AGPLv3
LICENSE_FILE= ${WRKSRC}/LICENSE
LIB_DEPENDS= libtbb.so:devel/tbb \
libnlopt.so:math/nlopt \
libwx_gtk3u_core-3.1.so:x11-toolkits/wxgtk31 \
libcurl.so:ftp/curl \
libexpat.so:textproc/expat2
BUILD_DEPENDS= cereal>=1.2.2:devel/cereal \
eigen>=3.3:math/eigen3 \
googletest>=1.7:devel/googletest \
boost-libs>=1.64:devel/boost-libs \
wx31-gtk3>=3.1:x11-toolkits/wxgtk31 \
cmake>=3.2:devel/cmake \
ninja>=1.8.2:devel/ninja
USES= cmake gettext
CMAKE_ARGS+= -DwxWidgets_CONFIG_EXECUTABLE=${LOCALBASE}/bin/wxgtk3u-3.1-config
CMAKE_INSTALL_PREFIX= ${PREFIX}/${PORTNAME}
USE_GITHUB= yes
USE_GL= glew
GH_ACCOUNT= prusa3d
.include <bsd.port.mk>

3
cad/PrusaSlicer/distinfo Normal file
View File

@ -0,0 +1,3 @@
TIMESTAMP = 1579717070
SHA256 (prusa3d-PrusaSlicer-version_2.1.1_GH0.tar.gz) = 79d0681fbf3f4158cac25595522dcea330e0fa960934053ac929a15fa13c1072
SIZE (prusa3d-PrusaSlicer-version_2.1.1_GH0.tar.gz) = 27551136

View File

@ -0,0 +1,11 @@
--- src/avrdude/libavrdude.h.orig 2019-12-10 15:09:10 UTC
+++ src/avrdude/libavrdude.h
@@ -950,6 +950,8 @@ int read_config_builtin();
// Header file for alloca()
#if defined(WIN32NATIVE)
# include <malloc.h>
+#elif defined __FreeBSD__
+#include <stdlib.h>
#else
# include <alloca.h>
#endif

View File

@ -0,0 +1,11 @@
--- src/slic3r/GUI/GUI_App.cpp.orig 2019-12-10 15:09:10 UTC
+++ src/slic3r/GUI/GUI_App.cpp
@@ -100,7 +100,7 @@ static void register_dpi_event()
const auto rect = reinterpret_cast<PRECT>(lParam);
const wxRect wxrect(wxPoint(rect->top, rect->left), wxPoint(rect->bottom, rect->right));
- DpiChangedEvent evt(EVT_DPI_CHANGED, dpi, wxrect);
+ DpiChangedEvent evt(psEVT_DPI_CHANGED, dpi, wxrect);
win->GetEventHandler()->AddPendingEvent(evt);
return true;

View File

@ -0,0 +1,20 @@
--- src/slic3r/GUI/GUI_Utils.cpp.orig 2019-12-10 15:09:10 UTC
+++ src/slic3r/GUI/GUI_Utils.cpp
@@ -55,7 +55,7 @@ void on_window_geometry(wxTopLevelWindow *tlw, std::fu
#endif
}
-wxDEFINE_EVENT(EVT_DPI_CHANGED, DpiChangedEvent);
+wxDEFINE_EVENT(psEVT_DPI_CHANGED, DpiChangedEvent);
#ifdef _WIN32
template<class F> typename F::FN winapi_get_function(const wchar_t *dll, const char *fn_name) {
@@ -106,7 +106,7 @@ int get_dpi_for_window(wxWindow *window)
if (hdc == NULL) { return DPI_DEFAULT; }
return GetDeviceCaps(hdc, LOGPIXELSX);
}
-#elif defined __linux__
+#elif defined(__linux__) || defined(__FreeBSD__)
// TODO
return DPI_DEFAULT;
#elif defined __APPLE__

View File

@ -0,0 +1,20 @@
--- src/slic3r/GUI/GUI_Utils.hpp.orig 2019-12-10 15:09:10 UTC
+++ src/slic3r/GUI/GUI_Utils.hpp
@@ -50,7 +50,7 @@ struct DpiChangedEvent : public wxEvent {
}
};
-wxDECLARE_EVENT(EVT_DPI_CHANGED, DpiChangedEvent);
+wxDECLARE_EVENT(psEVT_DPI_CHANGED, DpiChangedEvent);
template<class P> class DPIAware : public P
{
@@ -75,7 +75,7 @@ template<class P> class DPIAware : public P (public)
// recalc_font();
- this->Bind(EVT_DPI_CHANGED, [this](const DpiChangedEvent &evt) {
+ this->Bind(psEVT_DPI_CHANGED, [this](const DpiChangedEvent &evt) {
m_scale_factor = (float)evt.dpi / (float)DPI_DEFAULT;
m_new_font_point_size = get_default_font_for_dpi(evt.dpi).GetPointSize();

View File

@ -0,0 +1,7 @@
PrusaSlicer takes 3D models (STL, OBJ, AMF) and converts them into G-code
instructions for FFF printers or PNG layers for mSLA 3D printers. It's
compatible with any modern printer based on the RepRap toolchain, including
all those based on the Marlin, Prusa, Sprinter and Repetier firmware. It also
works with Mach3, LinuxCNC and Machinekit controllers.
WWW: https://www.prusa3d.com/prusaslicer/

246
cad/PrusaSlicer/pkg-plist Normal file
View File

@ -0,0 +1,246 @@
PrusaSlicer/resources/fonts/NotoSans-Regular.ttf
PrusaSlicer/resources/fonts/NotoSansCJK-Regular.ttc
PrusaSlicer/resources/fonts/README.txt
PrusaSlicer/resources/icons/PrusaSlicer.icns
PrusaSlicer/resources/icons/PrusaSlicer.ico
PrusaSlicer/resources/icons/PrusaSlicer.png
PrusaSlicer/resources/icons/PrusaSlicer_128px.png
PrusaSlicer/resources/icons/PrusaSlicer_192px.png
PrusaSlicer/resources/icons/PrusaSlicer_192px_grayscale.png
PrusaSlicer/resources/icons/PrusaSlicer_192px_transparent.png
PrusaSlicer/resources/icons/PrusaSlicer_32px.png
PrusaSlicer/resources/icons/add.svg
PrusaSlicer/resources/icons/add_copies.svg
PrusaSlicer/resources/icons/add_modifier.svg
PrusaSlicer/resources/icons/add_part.svg
PrusaSlicer/resources/icons/advanced_plus.svg
PrusaSlicer/resources/icons/arrange.svg
PrusaSlicer/resources/icons/bed/mini.svg
PrusaSlicer/resources/icons/bed/mk2.svg
PrusaSlicer/resources/icons/bed/mk3.svg
PrusaSlicer/resources/icons/bed/sl1.svg
PrusaSlicer/resources/icons/browse.svg
PrusaSlicer/resources/icons/bullet_black.png
PrusaSlicer/resources/icons/bullet_blue.png
PrusaSlicer/resources/icons/bullet_white.png
PrusaSlicer/resources/icons/cog.svg
PrusaSlicer/resources/icons/cog_go.png
PrusaSlicer/resources/icons/colorchange_add_off.png
PrusaSlicer/resources/icons/colorchange_add_on.png
PrusaSlicer/resources/icons/colorchange_delete_off.png
PrusaSlicer/resources/icons/colorchange_delete_on.png
PrusaSlicer/resources/icons/cooling.svg
PrusaSlicer/resources/icons/copy.svg
PrusaSlicer/resources/icons/copy_menu.svg
PrusaSlicer/resources/icons/cross.svg
PrusaSlicer/resources/icons/cross_focus.svg
PrusaSlicer/resources/icons/cut.svg
PrusaSlicer/resources/icons/delete.svg
PrusaSlicer/resources/icons/delete_all.svg
PrusaSlicer/resources/icons/delete_all_menu.svg
PrusaSlicer/resources/icons/dot.svg
PrusaSlicer/resources/icons/dot_white.svg
PrusaSlicer/resources/icons/down_half_circle.png
PrusaSlicer/resources/icons/drop_to_bed.svg
PrusaSlicer/resources/icons/editor.svg
PrusaSlicer/resources/icons/edit_layers_all.svg
PrusaSlicer/resources/icons/edit_layers_some.svg
PrusaSlicer/resources/icons/editor_menu.svg
PrusaSlicer/resources/icons/exclamation.svg
PrusaSlicer/resources/icons/export_config.svg
PrusaSlicer/resources/icons/export_config_bundle.svg
PrusaSlicer/resources/icons/export_gcode.svg
PrusaSlicer/resources/icons/export_plater.svg
PrusaSlicer/resources/icons/eye_closed.svg
PrusaSlicer/resources/icons/eye_open.svg
PrusaSlicer/resources/icons/flag_green.svg
PrusaSlicer/resources/icons/flag_red.svg
PrusaSlicer/resources/icons/funnel.svg
PrusaSlicer/resources/icons/gcode.icns
PrusaSlicer/resources/icons/import_config.svg
PrusaSlicer/resources/icons/import_config_bundle.svg
PrusaSlicer/resources/icons/import_plater.svg
PrusaSlicer/resources/icons/infill.svg
PrusaSlicer/resources/icons/instance_add.svg
PrusaSlicer/resources/icons/instance_remove.svg
PrusaSlicer/resources/icons/layers.svg
PrusaSlicer/resources/icons/layers_white.svg
PrusaSlicer/resources/icons/left_half_circle.png
PrusaSlicer/resources/icons/lock_closed.svg
PrusaSlicer/resources/icons/lock_closed_f.svg
PrusaSlicer/resources/icons/lock_closed_white.svg
PrusaSlicer/resources/icons/lock_open.svg
PrusaSlicer/resources/icons/lock_open_f.svg
PrusaSlicer/resources/icons/mark_X.svg
PrusaSlicer/resources/icons/mark_Y.svg
PrusaSlicer/resources/icons/mark_Z.svg
PrusaSlicer/resources/icons/mirroring_off.svg
PrusaSlicer/resources/icons/mirroring_on.svg
PrusaSlicer/resources/icons/mirroring_transparent.png
PrusaSlicer/resources/icons/mode_advanced_.png
PrusaSlicer/resources/icons/mode_advanced_sq.png
PrusaSlicer/resources/icons/mode_expert_.png
PrusaSlicer/resources/icons/mode_expert_sq.png
PrusaSlicer/resources/icons/mode_simple_.png
PrusaSlicer/resources/icons/mode_simple_sq.png
PrusaSlicer/resources/icons/move.svg
PrusaSlicer/resources/icons/note.svg
PrusaSlicer/resources/icons/number_of_copies.svg
PrusaSlicer/resources/icons/one_layer_lock_off.png
PrusaSlicer/resources/icons/one_layer_lock_on.png
PrusaSlicer/resources/icons/one_layer_unlock_off.png
PrusaSlicer/resources/icons/one_layer_unlock_on.png
PrusaSlicer/resources/icons/open.svg
PrusaSlicer/resources/icons/output+page_white.svg
PrusaSlicer/resources/icons/pad.svg
PrusaSlicer/resources/icons/paste.svg
PrusaSlicer/resources/icons/paste_menu.svg
PrusaSlicer/resources/icons/place.svg
PrusaSlicer/resources/icons/plater.svg
PrusaSlicer/resources/icons/preview.svg
PrusaSlicer/resources/icons/preview_menu.svg
PrusaSlicer/resources/icons/printer.svg
PrusaSlicer/resources/icons/printer_white.svg
PrusaSlicer/resources/icons/printers/PrusaResearch_MINI.png
PrusaSlicer/resources/icons/printers/PrusaResearch_MK2.5.png
PrusaSlicer/resources/icons/printers/PrusaResearch_MK2.5MMU2.png
PrusaSlicer/resources/icons/printers/PrusaResearch_MK2.5S.png
PrusaSlicer/resources/icons/printers/PrusaResearch_MK2.5SMMU2S.png
PrusaSlicer/resources/icons/printers/PrusaResearch_MK2S.png
PrusaSlicer/resources/icons/printers/PrusaResearch_MK2SMM.png
PrusaSlicer/resources/icons/printers/PrusaResearch_MK3.png
PrusaSlicer/resources/icons/printers/PrusaResearch_MK3MMU2.png
PrusaSlicer/resources/icons/printers/PrusaResearch_MK3S.png
PrusaSlicer/resources/icons/printers/PrusaResearch_MK3SMMU2S.png
PrusaSlicer/resources/icons/printers/PrusaResearch_SL1.png
PrusaSlicer/resources/icons/question.svg
PrusaSlicer/resources/icons/re_slice.svg
PrusaSlicer/resources/icons/redo.svg
PrusaSlicer/resources/icons/redo_menu.svg
PrusaSlicer/resources/icons/redo_toolbar.svg
PrusaSlicer/resources/icons/remove.svg
PrusaSlicer/resources/icons/remove_copies.svg
PrusaSlicer/resources/icons/remove_menu.svg
PrusaSlicer/resources/icons/resin.svg
PrusaSlicer/resources/icons/right_half_circle.png
PrusaSlicer/resources/icons/rotate.svg
PrusaSlicer/resources/icons/row.png
PrusaSlicer/resources/icons/save.svg
PrusaSlicer/resources/icons/scale.svg
PrusaSlicer/resources/icons/set_separate_obj.svg
PrusaSlicer/resources/icons/shape_ungroup.png
PrusaSlicer/resources/icons/skirt+brim.svg
PrusaSlicer/resources/icons/sla_supports.svg
PrusaSlicer/resources/icons/split_object_SMALL.svg
PrusaSlicer/resources/icons/split_objects.svg
PrusaSlicer/resources/icons/split_parts.svg
PrusaSlicer/resources/icons/split_parts_SMALL.svg
PrusaSlicer/resources/icons/spool.svg
PrusaSlicer/resources/icons/stl.icns
PrusaSlicer/resources/icons/support.svg
PrusaSlicer/resources/icons/support_blocker.svg
PrusaSlicer/resources/icons/support_enforcer.svg
PrusaSlicer/resources/icons/table.png
PrusaSlicer/resources/icons/test.svg
PrusaSlicer/resources/icons/time.svg
PrusaSlicer/resources/icons/toolbar_background.png
PrusaSlicer/resources/icons/undo.svg
PrusaSlicer/resources/icons/undo_menu.svg
PrusaSlicer/resources/icons/undo_toolbar.svg
PrusaSlicer/resources/icons/up_half_circle.png
PrusaSlicer/resources/icons/upload_queue.svg
PrusaSlicer/resources/icons/variable_layer_height_reset.png
PrusaSlicer/resources/icons/variable_layer_height_tooltip.png
PrusaSlicer/resources/icons/white/add_copies.svg
PrusaSlicer/resources/icons/white/add_modifier.svg
PrusaSlicer/resources/icons/white/add_part.svg
PrusaSlicer/resources/icons/white/advanced+wrench.svg
PrusaSlicer/resources/icons/white/advanced_plus.svg
PrusaSlicer/resources/icons/white/cog.svg
PrusaSlicer/resources/icons/white/cooling.svg
PrusaSlicer/resources/icons/white/copy_menu.svg
PrusaSlicer/resources/icons/white/delete.svg
PrusaSlicer/resources/icons/white/delete_all_menu.svg
PrusaSlicer/resources/icons/white/editor_menu.svg
PrusaSlicer/resources/icons/white/export_config.svg
PrusaSlicer/resources/icons/white/export_config_bundle.svg
PrusaSlicer/resources/icons/white/export_gcode.svg
PrusaSlicer/resources/icons/white/export_plate.svg
PrusaSlicer/resources/icons/white/export_plater.svg
PrusaSlicer/resources/icons/white/extruder+funnel.svg
PrusaSlicer/resources/icons/white/flag_green.svg
PrusaSlicer/resources/icons/white/flag_red.svg
PrusaSlicer/resources/icons/white/import_config.svg
PrusaSlicer/resources/icons/white/import_config_bundle.svg
PrusaSlicer/resources/icons/white/import_plate.svg
PrusaSlicer/resources/icons/white/import_plater.svg
PrusaSlicer/resources/icons/white/infill.svg
PrusaSlicer/resources/icons/white/layers.svg
PrusaSlicer/resources/icons/white/lock2_closed.svg
PrusaSlicer/resources/icons/white/lock_closed.svg
PrusaSlicer/resources/icons/white/machine+cog.svg
PrusaSlicer/resources/icons/white/notes.svg
PrusaSlicer/resources/icons/white/number_of_copies.svg
PrusaSlicer/resources/icons/white/open.svg
PrusaSlicer/resources/icons/white/output+page_white.svg
PrusaSlicer/resources/icons/white/pad.svg
PrusaSlicer/resources/icons/white/paste_menu.svg
PrusaSlicer/resources/icons/white/plater.svg
PrusaSlicer/resources/icons/white/preview_menu.svg
PrusaSlicer/resources/icons/white/printer.svg
PrusaSlicer/resources/icons/white/re_slice.svg
PrusaSlicer/resources/icons/white/remove_copies.svg
PrusaSlicer/resources/icons/white/remove_menu.svg
PrusaSlicer/resources/icons/white/resin.svg
PrusaSlicer/resources/icons/white/save.svg
PrusaSlicer/resources/icons/white/set_separate_obj.svg
PrusaSlicer/resources/icons/white/skirt+brim.svg
PrusaSlicer/resources/icons/white/split_object_SMALL.svg
PrusaSlicer/resources/icons/white/split_parts_SMALL.svg
PrusaSlicer/resources/icons/white/spool.svg
PrusaSlicer/resources/icons/white/support.svg
PrusaSlicer/resources/icons/white/support_blocker.svg
PrusaSlicer/resources/icons/white/support_enforcer.svg
PrusaSlicer/resources/icons/white/test.svg
PrusaSlicer/resources/icons/white/time.svg
PrusaSlicer/resources/icons/white/upload_queue.svg
PrusaSlicer/resources/icons/white/wrench.svg
PrusaSlicer/resources/icons/wrench.svg
PrusaSlicer/resources/icons/wrench_white.svg
PrusaSlicer/resources/localization/PrusaSlicer.pot
PrusaSlicer/resources/localization/cs/PrusaSlicer.mo
PrusaSlicer/resources/localization/cs/PrusaSlicer_cs.po
PrusaSlicer/resources/localization/de/PrusaSlicer.mo
PrusaSlicer/resources/localization/de/PrusaSlicer_de.po
PrusaSlicer/resources/localization/es/PrusaSlicer.mo
PrusaSlicer/resources/localization/es/PrusaSlicer_es.po
PrusaSlicer/resources/localization/fr/PrusaSlicer.mo
PrusaSlicer/resources/localization/fr/PrusaSlicer_fr.po
PrusaSlicer/resources/localization/it/PrusaSlicer.mo
PrusaSlicer/resources/localization/it/PrusaSlicer_it.po
PrusaSlicer/resources/localization/ko/PrusaSlicer.mo
PrusaSlicer/resources/localization/ko/PrusaSlicer_ko_KR.po
PrusaSlicer/resources/localization/list.txt
PrusaSlicer/resources/localization/pl/PrusaSlicer.mo
PrusaSlicer/resources/localization/pl/PrusaSlicer_pl.po
PrusaSlicer/resources/localization/tr/PrusaSlicer.mo
PrusaSlicer/resources/localization/tr/PrusaSlicer_tr.po
PrusaSlicer/resources/localization/uk/PrusaSlicer.mo
PrusaSlicer/resources/localization/uk/PrusaSlicer_uk.po
PrusaSlicer/resources/localization/zh_cn/PrusaSlicer.mo
PrusaSlicer/resources/localization/zh_cn/PrusaSlicer_zh_CN.po
PrusaSlicer/resources/localization/zh_tw/PrusaSlicer.mo
PrusaSlicer/resources/localization/zh_tw/PrusaSlicer_zh_TW.po
PrusaSlicer/resources/models/mini_bed.stl
PrusaSlicer/resources/models/mk2_bed.stl
PrusaSlicer/resources/models/mk3_bed.stl
PrusaSlicer/resources/models/sl1_bed.stl
PrusaSlicer/resources/profiles/PrusaResearch.idx
PrusaSlicer/resources/profiles/PrusaResearch.ini
PrusaSlicer/resources/shaders/gouraud.fs
PrusaSlicer/resources/shaders/gouraud.vs
PrusaSlicer/resources/shaders/printbed.fs
PrusaSlicer/resources/shaders/printbed.vs
PrusaSlicer/resources/shaders/variable_layer_height.fs
PrusaSlicer/resources/shaders/variable_layer_height.vs
PrusaSlicer/bin/prusa-slicer