mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-08-10 04:49:02 +08:00
Rename 'NetFabb' to 'Windows repair algorithm' (related to #11199)
This commit is contained in:
parent
0a202dcff3
commit
af7230e496
@ -185,7 +185,7 @@ if(WIN32)
|
|||||||
else()
|
else()
|
||||||
message("WIN10SDK_PATH is invalid: ${WIN10SDK_PATH}")
|
message("WIN10SDK_PATH is invalid: ${WIN10SDK_PATH}")
|
||||||
message("${WIN10SDK_PATH}/include/winrt/windows.graphics.printing3d.h was not found")
|
message("${WIN10SDK_PATH}/include/winrt/windows.graphics.printing3d.h was not found")
|
||||||
message("STL fixing by the Netfabb service will not be compiled")
|
message("STL fixing by WinSDK will not be compiled")
|
||||||
unset(WIN10SDK_PATH)
|
unset(WIN10SDK_PATH)
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
@ -193,16 +193,16 @@ if(WIN32)
|
|||||||
set(WIN10SDK_INCLUDE_PATH "$ENV{WindowsSdkDir}/Include/$ENV{WindowsSDKVersion}")
|
set(WIN10SDK_INCLUDE_PATH "$ENV{WindowsSdkDir}/Include/$ENV{WindowsSDKVersion}")
|
||||||
if (NOT EXISTS "${WIN10SDK_INCLUDE_PATH}/winrt/windows.graphics.printing3d.h")
|
if (NOT EXISTS "${WIN10SDK_INCLUDE_PATH}/winrt/windows.graphics.printing3d.h")
|
||||||
message("${WIN10SDK_INCLUDE_PATH}/winrt/windows.graphics.printing3d.h was not found")
|
message("${WIN10SDK_INCLUDE_PATH}/winrt/windows.graphics.printing3d.h was not found")
|
||||||
message("STL fixing by the Netfabb service will not be compiled")
|
message("STL fixing by WinSDK will not be compiled")
|
||||||
unset(WIN10SDK_INCLUDE_PATH)
|
unset(WIN10SDK_INCLUDE_PATH)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
if(WIN10SDK_INCLUDE_PATH)
|
if(WIN10SDK_INCLUDE_PATH)
|
||||||
message("Building with Win10 Netfabb STL fixing service support")
|
message("Building with Win10 STL fixing service support")
|
||||||
add_definitions(-DHAS_WIN10SDK)
|
add_definitions(-DHAS_WIN10SDK)
|
||||||
include_directories("${WIN10SDK_INCLUDE_PATH}")
|
include_directories("${WIN10SDK_INCLUDE_PATH}")
|
||||||
else()
|
else()
|
||||||
message("Building without Win10 Netfabb STL fixing service support")
|
message("Building without Win10 STL fixing service support")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -785,13 +785,13 @@ void MenuFactory::append_menu_items_osx(wxMenu* menu)
|
|||||||
menu->AppendSeparator();
|
menu->AppendSeparator();
|
||||||
}
|
}
|
||||||
|
|
||||||
wxMenuItem* MenuFactory::append_menu_item_fix_through_netfabb(wxMenu* menu)
|
wxMenuItem* MenuFactory::append_menu_item_fix_through_winsdk(wxMenu* menu)
|
||||||
{
|
{
|
||||||
if (!is_windows10())
|
if (!is_windows10())
|
||||||
return nullptr;
|
return nullptr;
|
||||||
wxMenuItem* menu_item = append_menu_item(menu, wxID_ANY, _L("Fix through the Netfabb"), "",
|
wxMenuItem* menu_item = append_menu_item(menu, wxID_ANY, _L("Fix by Windows repair algorithm"), "",
|
||||||
[](wxCommandEvent&) { obj_list()->fix_through_netfabb(); }, "", menu,
|
[](wxCommandEvent&) { obj_list()->fix_through_winsdk(); }, "", menu,
|
||||||
[]() {return plater()->can_fix_through_netfabb(); }, m_parent);
|
[]() {return plater()->can_fix_through_winsdk(); }, m_parent);
|
||||||
|
|
||||||
return menu_item;
|
return menu_item;
|
||||||
}
|
}
|
||||||
@ -1055,7 +1055,7 @@ void MenuFactory::create_common_object_menu(wxMenu* menu)
|
|||||||
// "Scale to print volume" makes a sense just for whole object
|
// "Scale to print volume" makes a sense just for whole object
|
||||||
append_menu_item_scale_selection_to_fit_print_volume(menu);
|
append_menu_item_scale_selection_to_fit_print_volume(menu);
|
||||||
|
|
||||||
append_menu_item_fix_through_netfabb(menu);
|
append_menu_item_fix_through_winsdk(menu);
|
||||||
append_menu_item_simplify(menu);
|
append_menu_item_simplify(menu);
|
||||||
append_menu_items_mirror(menu);
|
append_menu_items_mirror(menu);
|
||||||
|
|
||||||
@ -1104,7 +1104,7 @@ void MenuFactory::create_part_menu()
|
|||||||
append_menu_item_reload_from_disk(menu);
|
append_menu_item_reload_from_disk(menu);
|
||||||
append_menu_item_replace_with_stl(menu);
|
append_menu_item_replace_with_stl(menu);
|
||||||
append_menu_item_export_stl(menu);
|
append_menu_item_export_stl(menu);
|
||||||
append_menu_item_fix_through_netfabb(menu);
|
append_menu_item_fix_through_winsdk(menu);
|
||||||
append_menu_item_simplify(menu);
|
append_menu_item_simplify(menu);
|
||||||
|
|
||||||
append_menu_item(menu, wxID_ANY, _L("Split"), _L("Split the selected object into individual parts"),
|
append_menu_item(menu, wxID_ANY, _L("Split"), _L("Split the selected object into individual parts"),
|
||||||
@ -1120,7 +1120,7 @@ void MenuFactory::create_text_part_menu()
|
|||||||
|
|
||||||
append_menu_item_delete(menu);
|
append_menu_item_delete(menu);
|
||||||
append_menu_item_edit_text(menu);
|
append_menu_item_edit_text(menu);
|
||||||
append_menu_item_fix_through_netfabb(menu);
|
append_menu_item_fix_through_winsdk(menu);
|
||||||
append_menu_item_simplify(menu);
|
append_menu_item_simplify(menu);
|
||||||
|
|
||||||
append_immutable_part_menu_items(menu);
|
append_immutable_part_menu_items(menu);
|
||||||
@ -1224,7 +1224,7 @@ wxMenu* MenuFactory::multi_selection_menu()
|
|||||||
|
|
||||||
wxMenu* menu = new MenuWithSeparators();
|
wxMenu* menu = new MenuWithSeparators();
|
||||||
|
|
||||||
append_menu_item_fix_through_netfabb(menu);
|
append_menu_item_fix_through_winsdk(menu);
|
||||||
append_menu_item_reload_from_disk(menu);
|
append_menu_item_reload_from_disk(menu);
|
||||||
append_menu_items_convert_unit(menu);
|
append_menu_items_convert_unit(menu);
|
||||||
if (obj_list()->can_merge_to_multipart_object())
|
if (obj_list()->can_merge_to_multipart_object())
|
||||||
|
@ -99,7 +99,7 @@ private:
|
|||||||
wxMenuItem* append_menu_item_printable(wxMenu* menu);
|
wxMenuItem* append_menu_item_printable(wxMenu* menu);
|
||||||
void append_menu_item_invalidate_cut_info(wxMenu *menu);
|
void append_menu_item_invalidate_cut_info(wxMenu *menu);
|
||||||
void append_menu_items_osx(wxMenu* menu);
|
void append_menu_items_osx(wxMenu* menu);
|
||||||
wxMenuItem* append_menu_item_fix_through_netfabb(wxMenu* menu);
|
wxMenuItem* append_menu_item_fix_through_winsdk(wxMenu* menu);
|
||||||
wxMenuItem* append_menu_item_simplify(wxMenu* menu);
|
wxMenuItem* append_menu_item_simplify(wxMenu* menu);
|
||||||
void append_menu_item_export_stl(wxMenu* menu);
|
void append_menu_item_export_stl(wxMenu* menu);
|
||||||
void append_menu_item_reload_from_disk(wxMenu* menu);
|
void append_menu_item_reload_from_disk(wxMenu* menu);
|
||||||
|
@ -483,7 +483,7 @@ MeshErrorsInfo ObjectList::get_mesh_errors_info(const int obj_idx, const int vol
|
|||||||
*sidebar_info = stats.manifold() ? auto_repaired_info : (remaining_info + (stats.repaired() ? ("\n" + auto_repaired_info) : ""));
|
*sidebar_info = stats.manifold() ? auto_repaired_info : (remaining_info + (stats.repaired() ? ("\n" + auto_repaired_info) : ""));
|
||||||
|
|
||||||
if (is_windows10() && !sidebar_info)
|
if (is_windows10() && !sidebar_info)
|
||||||
tooltip += "\n" + _L("Right button click the icon to fix STL through Netfabb");
|
tooltip += "\n" + _L("Right button click the icon to fix STL by Windows repair algorithm");
|
||||||
|
|
||||||
return { tooltip, get_warning_icon_name(stats) };
|
return { tooltip, get_warning_icon_name(stats) };
|
||||||
}
|
}
|
||||||
@ -1002,7 +1002,7 @@ void ObjectList::list_manipulation(const wxPoint& mouse_pos, bool evt_context_me
|
|||||||
{
|
{
|
||||||
if (is_windows10() && m_objects_model->HasWarningIcon(item) &&
|
if (is_windows10() && m_objects_model->HasWarningIcon(item) &&
|
||||||
mouse_pos.x > 2 * wxGetApp().em_unit() && mouse_pos.x < 4 * wxGetApp().em_unit())
|
mouse_pos.x > 2 * wxGetApp().em_unit() && mouse_pos.x < 4 * wxGetApp().em_unit())
|
||||||
fix_through_netfabb();
|
fix_through_winsdk();
|
||||||
else if (evt_context_menu)
|
else if (evt_context_menu)
|
||||||
show_context_menu(evt_context_menu); // show context menu for "Name" column too
|
show_context_menu(evt_context_menu); // show context menu for "Name" column too
|
||||||
}
|
}
|
||||||
@ -4567,7 +4567,7 @@ void ObjectList::rename_item()
|
|||||||
update_name_in_model(item);
|
update_name_in_model(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectList::fix_through_netfabb()
|
void ObjectList::fix_through_winsdk()
|
||||||
{
|
{
|
||||||
// Do not fix anything when a gizmo is open. There might be issues with updates
|
// Do not fix anything when a gizmo is open. There might be issues with updates
|
||||||
// and what is worse, the snapshot time would refer to the internal stack.
|
// and what is worse, the snapshot time would refer to the internal stack.
|
||||||
@ -4587,21 +4587,21 @@ void ObjectList::fix_through_netfabb()
|
|||||||
// clear selections from the non-broken models if any exists
|
// clear selections from the non-broken models if any exists
|
||||||
// and than fill names of models to repairing
|
// and than fill names of models to repairing
|
||||||
if (vol_idxs.empty()) {
|
if (vol_idxs.empty()) {
|
||||||
#if !FIX_THROUGH_NETFABB_ALWAYS
|
#if !FIX_THROUGH_WINSDK_ALWAYS
|
||||||
for (int i = int(obj_idxs.size())-1; i >= 0; --i)
|
for (int i = int(obj_idxs.size())-1; i >= 0; --i)
|
||||||
if (object(obj_idxs[i])->get_repaired_errors_count() == 0)
|
if (object(obj_idxs[i])->get_repaired_errors_count() == 0)
|
||||||
obj_idxs.erase(obj_idxs.begin()+i);
|
obj_idxs.erase(obj_idxs.begin()+i);
|
||||||
#endif // FIX_THROUGH_NETFABB_ALWAYS
|
#endif // FIX_THROUGH_WINSDK_ALWAYS
|
||||||
for (int obj_idx : obj_idxs)
|
for (int obj_idx : obj_idxs)
|
||||||
model_names.push_back(object(obj_idx)->name);
|
model_names.push_back(object(obj_idx)->name);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ModelObject* obj = object(obj_idxs.front());
|
ModelObject* obj = object(obj_idxs.front());
|
||||||
#if !FIX_THROUGH_NETFABB_ALWAYS
|
#if !FIX_THROUGH_WINSDK_ALWAYS
|
||||||
for (int i = int(vol_idxs.size()) - 1; i >= 0; --i)
|
for (int i = int(vol_idxs.size()) - 1; i >= 0; --i)
|
||||||
if (obj->get_repaired_errors_count(vol_idxs[i]) == 0)
|
if (obj->get_repaired_errors_count(vol_idxs[i]) == 0)
|
||||||
vol_idxs.erase(vol_idxs.begin() + i);
|
vol_idxs.erase(vol_idxs.begin() + i);
|
||||||
#endif // FIX_THROUGH_NETFABB_ALWAYS
|
#endif // FIX_THROUGH_WINSDK_ALWAYS
|
||||||
for (int vol_idx : vol_idxs)
|
for (int vol_idx : vol_idxs)
|
||||||
model_names.push_back(obj->volumes[vol_idx]->name);
|
model_names.push_back(obj->volumes[vol_idx]->name);
|
||||||
}
|
}
|
||||||
@ -4645,19 +4645,19 @@ void ObjectList::fix_through_netfabb()
|
|||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
Plater::TakeSnapshot snapshot(plater, _L("Fix through NetFabb"));
|
Plater::TakeSnapshot snapshot(plater, _L("Fix by Windows repair algorithm"));
|
||||||
|
|
||||||
// Open a progress dialog.
|
// Open a progress dialog.
|
||||||
wxProgressDialog progress_dlg(_L("Fixing through NetFabb"), "", 100, find_toplevel_parent(plater),
|
wxProgressDialog progress_dlg(_L("Fixing by Windows repair algorithm"), "", 100, find_toplevel_parent(plater),
|
||||||
wxPD_AUTO_HIDE | wxPD_APP_MODAL | wxPD_CAN_ABORT);
|
wxPD_AUTO_HIDE | wxPD_APP_MODAL | wxPD_CAN_ABORT);
|
||||||
int model_idx{ 0 };
|
int model_idx{ 0 };
|
||||||
if (vol_idxs.empty()) {
|
if (vol_idxs.empty()) {
|
||||||
int vol_idx{ -1 };
|
int vol_idx{ -1 };
|
||||||
for (int obj_idx : obj_idxs) {
|
for (int obj_idx : obj_idxs) {
|
||||||
#if !FIX_THROUGH_NETFABB_ALWAYS
|
#if !FIX_THROUGH_WINSDK_ALWAYS
|
||||||
if (object(obj_idx)->get_repaired_errors_count(vol_idx) == 0)
|
if (object(obj_idx)->get_repaired_errors_count(vol_idx) == 0)
|
||||||
continue;
|
continue;
|
||||||
#endif // FIX_THROUGH_NETFABB_ALWAYS
|
#endif // FIX_THROUGH_WINSDK_ALWAYS
|
||||||
if (!fix_and_update_progress(obj_idx, vol_idx, model_idx, progress_dlg, succes_models, failed_models))
|
if (!fix_and_update_progress(obj_idx, vol_idx, model_idx, progress_dlg, succes_models, failed_models))
|
||||||
break;
|
break;
|
||||||
model_idx++;
|
model_idx++;
|
||||||
@ -4690,7 +4690,7 @@ void ObjectList::fix_through_netfabb()
|
|||||||
}
|
}
|
||||||
if (msg.IsEmpty())
|
if (msg.IsEmpty())
|
||||||
msg = _L("Repairing was canceled");
|
msg = _L("Repairing was canceled");
|
||||||
plater->get_notification_manager()->push_notification(NotificationType::NetfabbFinished, NotificationManager::NotificationLevel::PrintInfoShortNotificationLevel, boost::nowide::narrow(msg));
|
plater->get_notification_manager()->push_notification(NotificationType::RepairFinished, NotificationManager::NotificationLevel::PrintInfoShortNotificationLevel, boost::nowide::narrow(msg));
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObjectList::simplify()
|
void ObjectList::simplify()
|
||||||
|
@ -42,7 +42,7 @@ typedef std::pair<coordf_t, coordf_t> t_layer_height_range;
|
|||||||
typedef std::map<t_layer_height_range, ModelConfig> t_layer_config_ranges;
|
typedef std::map<t_layer_height_range, ModelConfig> t_layer_config_ranges;
|
||||||
|
|
||||||
// Manifold mesh may contain self-intersections, so we want to always allow fixing the mesh.
|
// Manifold mesh may contain self-intersections, so we want to always allow fixing the mesh.
|
||||||
#define FIX_THROUGH_NETFABB_ALWAYS 1
|
#define FIX_THROUGH_WINSDK_ALWAYS 1
|
||||||
|
|
||||||
namespace GUI {
|
namespace GUI {
|
||||||
|
|
||||||
@ -387,7 +387,7 @@ public:
|
|||||||
void instances_to_separated_objects(const int obj_idx);
|
void instances_to_separated_objects(const int obj_idx);
|
||||||
void split_instances();
|
void split_instances();
|
||||||
void rename_item();
|
void rename_item();
|
||||||
void fix_through_netfabb();
|
void fix_through_winsdk();
|
||||||
void simplify();
|
void simplify();
|
||||||
void update_item_error_icon(const int obj_idx, int vol_idx) const ;
|
void update_item_error_icon(const int obj_idx, int vol_idx) const ;
|
||||||
|
|
||||||
|
@ -162,19 +162,19 @@ ObjectManipulation::ObjectManipulation(wxWindow* parent) :
|
|||||||
// Add "Name" label with warning icon
|
// Add "Name" label with warning icon
|
||||||
auto sizer = new wxBoxSizer(wxHORIZONTAL);
|
auto sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||||
|
|
||||||
m_fix_throught_netfab_bitmap = new wxStaticBitmap(parent, wxID_ANY, wxNullBitmap);
|
m_fix_by_winsdk_bitmap = new wxStaticBitmap(parent, wxID_ANY, wxNullBitmap);
|
||||||
if (is_windows10())
|
if (is_windows10())
|
||||||
m_fix_throught_netfab_bitmap->Bind(wxEVT_CONTEXT_MENU, [this](wxCommandEvent& e)
|
m_fix_by_winsdk_bitmap->Bind(wxEVT_CONTEXT_MENU, [this](wxCommandEvent& e)
|
||||||
{
|
{
|
||||||
// if object/sub-object has no errors
|
// if object/sub-object has no errors
|
||||||
if (m_fix_throught_netfab_bitmap->GetBitmap().GetRefData() == wxNullBitmap.GetRefData())
|
if (m_fix_by_winsdk_bitmap->GetBitmap().GetRefData() == wxNullBitmap.GetRefData())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
wxGetApp().obj_list()->fix_through_netfabb();
|
wxGetApp().obj_list()->fix_through_winsdk();
|
||||||
update_warning_icon_state(wxGetApp().obj_list()->get_mesh_errors_info());
|
update_warning_icon_state(wxGetApp().obj_list()->get_mesh_errors_info());
|
||||||
});
|
});
|
||||||
|
|
||||||
sizer->Add(m_fix_throught_netfab_bitmap);
|
sizer->Add(m_fix_by_winsdk_bitmap);
|
||||||
|
|
||||||
auto name_label = new wxStaticText(m_parent, wxID_ANY, _L("Name")+":");
|
auto name_label = new wxStaticText(m_parent, wxID_ANY, _L("Name")+":");
|
||||||
set_font_and_background_style(name_label, wxGetApp().normal_font());
|
set_font_and_background_style(name_label, wxGetApp().normal_font());
|
||||||
@ -895,9 +895,9 @@ void ObjectManipulation::update_warning_icon_state(const MeshErrorsInfo& warning
|
|||||||
!warning_icon_name.empty())
|
!warning_icon_name.empty())
|
||||||
m_manifold_warning_bmp = ScalableBitmap(m_parent, warning_icon_name);
|
m_manifold_warning_bmp = ScalableBitmap(m_parent, warning_icon_name);
|
||||||
const wxString& tooltip = warning.tooltip;
|
const wxString& tooltip = warning.tooltip;
|
||||||
m_fix_throught_netfab_bitmap->SetBitmap(tooltip.IsEmpty() ? wxNullBitmap : m_manifold_warning_bmp.bmp());
|
m_fix_by_winsdk_bitmap->SetBitmap(tooltip.IsEmpty() ? wxNullBitmap : m_manifold_warning_bmp.bmp());
|
||||||
m_fix_throught_netfab_bitmap->SetMinSize(tooltip.IsEmpty() ? wxSize(0,0) : m_manifold_warning_bmp.GetSize());
|
m_fix_by_winsdk_bitmap->SetMinSize(tooltip.IsEmpty() ? wxSize(0,0) : m_manifold_warning_bmp.GetSize());
|
||||||
m_fix_throught_netfab_bitmap->SetToolTip(tooltip);
|
m_fix_by_winsdk_bitmap->SetToolTip(tooltip);
|
||||||
}
|
}
|
||||||
|
|
||||||
wxString ObjectManipulation::coordinate_type_str(ECoordinatesType type)
|
wxString ObjectManipulation::coordinate_type_str(ECoordinatesType type)
|
||||||
@ -1171,9 +1171,9 @@ void ObjectManipulation::msw_rescale()
|
|||||||
msw_rescale_word_local_combo(m_word_local_combo);
|
msw_rescale_word_local_combo(m_word_local_combo);
|
||||||
m_word_local_combo_sizer->SetMinSize(wxSize(-1, m_word_local_combo->GetBestHeight(-1)));
|
m_word_local_combo_sizer->SetMinSize(wxSize(-1, m_word_local_combo->GetBestHeight(-1)));
|
||||||
|
|
||||||
const wxString& tooltip = m_fix_throught_netfab_bitmap->GetToolTipText();
|
const wxString& tooltip = m_fix_by_winsdk_bitmap->GetToolTipText();
|
||||||
m_fix_throught_netfab_bitmap->SetBitmap(tooltip.IsEmpty() ? wxNullBitmap : m_manifold_warning_bmp.bmp());
|
m_fix_by_winsdk_bitmap->SetBitmap(tooltip.IsEmpty() ? wxNullBitmap : m_manifold_warning_bmp.bmp());
|
||||||
m_fix_throught_netfab_bitmap->SetMinSize(tooltip.IsEmpty() ? wxSize(0, 0) : m_manifold_warning_bmp.GetSize());
|
m_fix_by_winsdk_bitmap->SetMinSize(tooltip.IsEmpty() ? wxSize(0, 0) : m_manifold_warning_bmp.GetSize());
|
||||||
|
|
||||||
// rescale label-heights
|
// rescale label-heights
|
||||||
// Text trick to grid sizer layout:
|
// Text trick to grid sizer layout:
|
||||||
|
@ -152,7 +152,7 @@ private:
|
|||||||
choice_ctrl* m_word_local_combo { nullptr };
|
choice_ctrl* m_word_local_combo { nullptr };
|
||||||
|
|
||||||
ScalableBitmap m_manifold_warning_bmp;
|
ScalableBitmap m_manifold_warning_bmp;
|
||||||
wxStaticBitmap* m_fix_throught_netfab_bitmap{ nullptr };
|
wxStaticBitmap* m_fix_by_winsdk_bitmap{ nullptr };
|
||||||
wxStaticBitmap* m_mirror_warning_bitmap{ nullptr };
|
wxStaticBitmap* m_mirror_warning_bitmap{ nullptr };
|
||||||
|
|
||||||
// Currently focused editor (nullptr if none)
|
// Currently focused editor (nullptr if none)
|
||||||
|
@ -119,8 +119,8 @@ enum class NotificationType
|
|||||||
SimplifySuggestion,
|
SimplifySuggestion,
|
||||||
// Change of text will change font to similar one on.
|
// Change of text will change font to similar one on.
|
||||||
UnknownFont,
|
UnknownFont,
|
||||||
// information about netfabb is finished repairing model (blocking proccess)
|
// information that repairing model finished (blocking proccess)
|
||||||
NetfabbFinished,
|
RepairFinished,
|
||||||
// Short meesage to fill space between start and finish of export
|
// Short meesage to fill space between start and finish of export
|
||||||
ExportOngoing,
|
ExportOngoing,
|
||||||
// Progressbar of download from prusaslicer:// url
|
// Progressbar of download from prusaslicer:// url
|
||||||
|
@ -1965,7 +1965,7 @@ struct Plater::priv
|
|||||||
bool can_split_to_volumes() const;
|
bool can_split_to_volumes() const;
|
||||||
bool can_arrange() const;
|
bool can_arrange() const;
|
||||||
bool can_layers_editing() const;
|
bool can_layers_editing() const;
|
||||||
bool can_fix_through_netfabb() const;
|
bool can_fix_through_winsdk() const;
|
||||||
bool can_simplify() const;
|
bool can_simplify() const;
|
||||||
bool can_set_instance_to_object() const;
|
bool can_set_instance_to_object() const;
|
||||||
bool can_mirror() const;
|
bool can_mirror() const;
|
||||||
@ -4815,15 +4815,15 @@ bool Plater::priv::can_delete_all() const
|
|||||||
return !model.objects.empty() && !sidebar->obj_list()->is_editing();
|
return !model.objects.empty() && !sidebar->obj_list()->is_editing();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Plater::priv::can_fix_through_netfabb() const
|
bool Plater::priv::can_fix_through_winsdk() const
|
||||||
{
|
{
|
||||||
std::vector<int> obj_idxs, vol_idxs;
|
std::vector<int> obj_idxs, vol_idxs;
|
||||||
sidebar->obj_list()->get_selection_indexes(obj_idxs, vol_idxs);
|
sidebar->obj_list()->get_selection_indexes(obj_idxs, vol_idxs);
|
||||||
|
|
||||||
#if FIX_THROUGH_NETFABB_ALWAYS
|
#if FIX_THROUGH_WINSDK_ALWAYS
|
||||||
// Fixing always.
|
// Fixing always.
|
||||||
return ! obj_idxs.empty() || ! vol_idxs.empty();
|
return ! obj_idxs.empty() || ! vol_idxs.empty();
|
||||||
#else // FIX_THROUGH_NETFABB_ALWAYS
|
#else // FIX_THROUGH_WINSDK_ALWAYS
|
||||||
// Fixing only if the model is not manifold.
|
// Fixing only if the model is not manifold.
|
||||||
if (vol_idxs.empty()) {
|
if (vol_idxs.empty()) {
|
||||||
for (auto obj_idx : obj_idxs)
|
for (auto obj_idx : obj_idxs)
|
||||||
@ -4837,7 +4837,7 @@ bool Plater::priv::can_fix_through_netfabb() const
|
|||||||
if (model.objects[obj_idx]->get_repaired_errors_count(vol_idx) > 0)
|
if (model.objects[obj_idx]->get_repaired_errors_count(vol_idx) > 0)
|
||||||
return true;
|
return true;
|
||||||
return false;
|
return false;
|
||||||
#endif // FIX_THROUGH_NETFABB_ALWAYS
|
#endif // FIX_THROUGH_WINSDK_ALWAYS
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Plater::priv::can_simplify() const
|
bool Plater::priv::can_simplify() const
|
||||||
@ -7833,7 +7833,7 @@ bool Plater::can_delete_all() const { return p->can_delete_all(); }
|
|||||||
bool Plater::can_increase_instances() const { return p->can_increase_instances(); }
|
bool Plater::can_increase_instances() const { return p->can_increase_instances(); }
|
||||||
bool Plater::can_decrease_instances(int obj_idx/* = -1*/) const { return p->can_decrease_instances(obj_idx); }
|
bool Plater::can_decrease_instances(int obj_idx/* = -1*/) const { return p->can_decrease_instances(obj_idx); }
|
||||||
bool Plater::can_set_instance_to_object() const { return p->can_set_instance_to_object(); }
|
bool Plater::can_set_instance_to_object() const { return p->can_set_instance_to_object(); }
|
||||||
bool Plater::can_fix_through_netfabb() const { return p->can_fix_through_netfabb(); }
|
bool Plater::can_fix_through_winsdk() const { return p->can_fix_through_winsdk(); }
|
||||||
bool Plater::can_simplify() const { return p->can_simplify(); }
|
bool Plater::can_simplify() const { return p->can_simplify(); }
|
||||||
bool Plater::can_split_to_objects() const { return p->can_split_to_objects(); }
|
bool Plater::can_split_to_objects() const { return p->can_split_to_objects(); }
|
||||||
bool Plater::can_split_to_volumes() const { return p->can_split_to_volumes(); }
|
bool Plater::can_split_to_volumes() const { return p->can_split_to_volumes(); }
|
||||||
|
@ -375,7 +375,7 @@ public:
|
|||||||
bool can_increase_instances() const;
|
bool can_increase_instances() const;
|
||||||
bool can_decrease_instances(int obj_idx = -1) const;
|
bool can_decrease_instances(int obj_idx = -1) const;
|
||||||
bool can_set_instance_to_object() const;
|
bool can_set_instance_to_object() const;
|
||||||
bool can_fix_through_netfabb() const;
|
bool can_fix_through_winsdk() const;
|
||||||
bool can_simplify() const;
|
bool can_simplify() const;
|
||||||
bool can_split_to_objects() const;
|
bool can_split_to_objects() const;
|
||||||
bool can_split_to_volumes() const;
|
bool can_split_to_volumes() const;
|
||||||
|
@ -245,7 +245,7 @@ void fix_model_by_win10_sdk(const std::string &path_src, const std::string &path
|
|||||||
unsigned num_meshes = 0;
|
unsigned num_meshes = 0;
|
||||||
hr = meshes->get_Size(&num_meshes);
|
hr = meshes->get_Size(&num_meshes);
|
||||||
|
|
||||||
on_progress(L("Repairing model by the Netfabb service"), 40);
|
on_progress(L("Repairing model by Windows repair algorithm"), 40);
|
||||||
|
|
||||||
Microsoft::WRL::ComPtr<ABI::Windows::Foundation::IAsyncAction> repairAsync;
|
Microsoft::WRL::ComPtr<ABI::Windows::Foundation::IAsyncAction> repairAsync;
|
||||||
hr = model->RepairAsync(repairAsync.GetAddressOf());
|
hr = model->RepairAsync(repairAsync.GetAddressOf());
|
||||||
@ -369,7 +369,7 @@ bool fix_model_by_win10_sdk_gui(ModelObject &model_object, int volume_idx, wxPro
|
|||||||
ModelObject *mo = model.add_object();
|
ModelObject *mo = model.add_object();
|
||||||
mo->add_volume(*volumes[ivolume]);
|
mo->add_volume(*volumes[ivolume]);
|
||||||
|
|
||||||
// We are about to save a 3mf, fix it by netfabb and load the fixed 3mf back.
|
// We are about to save a 3mf, fix it by winsdk and load the fixed 3mf back.
|
||||||
// store_3mf currently bakes the volume transformation into the mesh itself.
|
// store_3mf currently bakes the volume transformation into the mesh itself.
|
||||||
// If we then loaded the repaired 3mf and pushed the mesh into the original ModelVolume
|
// If we then loaded the repaired 3mf and pushed the mesh into the original ModelVolume
|
||||||
// (which remembers the matrix the whole time), the transformation would be used twice.
|
// (which remembers the matrix the whole time), the transformation would be used twice.
|
||||||
|
@ -782,7 +782,7 @@ using MyMesh = Slic3r::MeshBoolean::cgal2::CGALMesh;
|
|||||||
|
|
||||||
// Second Idea
|
// Second Idea
|
||||||
// Store original its inside of text configuration[optional]
|
// Store original its inside of text configuration[optional]
|
||||||
// Cause problem with next editation of object -> cut, simplify, Netfabb, Hollow, ...(transform original vertices)
|
// Cause problem with next editation of object -> cut, simplify, repair by WinSDK, Hollow, ...(transform original vertices)
|
||||||
TEST_CASE("Emboss extrude cut", "[Emboss-Cut]")
|
TEST_CASE("Emboss extrude cut", "[Emboss-Cut]")
|
||||||
{
|
{
|
||||||
std::string font_path = get_font_filepath();
|
std::string font_path = get_font_filepath();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user