Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added additional filament vendors. #4232

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
148 changes: 148 additions & 0 deletions scripts/generate_presets_vendors.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
import json
from pathlib import Path
from typing import Dict, List


scripts_dir = Path(__file__).resolve().parent
print(f'Scripts dir: {scripts_dir}')
root_dir = scripts_dir.parent
profiles_dir = root_dir / 'resources' / 'profiles'

printers: Dict[str, List[str]] = {}

print(f'Looking in {profiles_dir.resolve()}')
for entry in profiles_dir.glob('*.json'):
if entry.is_file():
entry_info = json.loads(entry.read_text())
vendor_name = entry_info.get('name', None)
if vendor_name:
models = [machine.get('name', None) for machine in entry_info.get('machine_model_list', []) if machine.get('name', None)]
printers[vendor_name] = models

vendor_names = [f'"{vendor_name}",' for vendor_name in sorted(printers.keys(), key=str.casefold)]
vend_col_width = len(max(vendor_names, key=len))
vendors_formatted = ' {' + '\n '.join(' '.join(f"{vendor_name:{vend_col_width}}" for vendor_name in vendor_names[i:i+5]) for i in range(0, len(vendor_names), 5)).rstrip()[:-1] + '}'
print(vendors_formatted)


models_formatted = ' {'
models_indent = len(models_formatted) + vend_col_width + 2
for vendor_name in sorted(printers.keys(), key=str.casefold):
vendor_formatted = f'"{vendor_name}",'
models_formatted += f'{{{vendor_formatted:{vend_col_width}}{{'

model_names = printers[vendor_name]
model_names_formatted = [f'"{model_name}",' for model_name in model_names]
model_col_width = len(max(model_names_formatted, key=len))
model_names_str = ('\n' + ' ' * models_indent).join(' '.join(f"{model_name:{model_col_width}}" for model_name in model_names_formatted[i:i+5]) for i in range(0, len(model_names), 5)).rstrip()[:-1] + '}'

models_formatted += model_names_str

models_formatted += '},\n '

models_formatted = models_formatted.rstrip()[:-1]
print(models_formatted)



# Filament Vendors
filament_vendors = [
'3Dgenius',
'3DJake',
'3DXTECH',
'3D BEST-Q',
'3D Hero',
'3D-Fuel',
'Aceaddity',
'AddNorth',
'Amazon Basics',
'AMOLEN',
'Ankermake',
'Anycubic',
'Atomic',
'AzureFilm',
'BASF',
'Bblife',
'BCN3D',
'Beyond Plastic',
'California Filament',
'Capricorn',
'CC3D',
'colorFabb',
'Comgrow',
'Cookiecad',
'Creality',
'Das Filament',
'DO3D',
'DOW',
'DSM',
'Duramic',
'ELEGOO',
'Eryone',
'Essentium',
'eSUN',
'Extrudr',
'Fiberforce',
'Fiberlogy',
'FilaCube',
'Filamentive',
'Fillamentum',
'FLASHFORGE',
'Formfortura',
'Francofil',
'GEEETECH',
'Giantarm',
'Gizmo Dorks',
'GreenGate3D',
'HATCHBOX',
'Hello3D',
'IC3D',
'IEMAI',
'IIID Max',
'INLAND',
'iProspect',
'iSANMATE',
'Justmaker',
'Keene Village Plastics',
'Kexcelled',
'MakerBot',
'MatterHackers',
'MIKA3D',
'NinjaTek',
'Nobufil',
'Novamaker',
'OVERTURE',
'OVVNYXE',
'Polymaker',
'Priline',
'Printed Solid',
'Protopasta',
'Prusament',
'Push Plastic',
'R3D',
'Re-pet3D',
'Recreus',
'Regen',
'Sain SMART',
'SliceWorx',
'Snapmaker',
'SnoLabs',
'Spectrum',
'SUNLU',
'TTYT3D',
'UltiMaker',
'Verbatim',
'VO3D',
'Voxelab',
'YOOPAI',
'Yousu',
'Ziro',
'Zyltech',
]

filament_vendors_formatted = [f'"{vendor_name}",' for vendor_name in filament_vendors]
fil_col_width = len(max(filament_vendors_formatted, key=len))
filaments_formatted = ' {'
filament_indent = len(filaments_formatted)
filaments_formatted += ('\n' + ' ' * filament_indent).join(' '.join(f'{vendor_name:{fil_col_width}}' for vendor_name in filament_vendors_formatted[i:i+5]) for i in range(0, len(filament_vendors), 5)).rstrip()[:-1] + '};'
print(filaments_formatted)
48 changes: 35 additions & 13 deletions src/slic3r/GUI/CreatePresetsDialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,30 @@
namespace Slic3r {
namespace GUI {

static const std::vector<std::string> filament_vendors = {"Polymaker", "OVERTURE", "Kexcelled", "HATCHBOX", "eSUN", "SUNLU", "Prusament", "Creality", "Protopasta",
"Anycubic", "Basf", "ELEGOO", "INLAND", "FLASHFORGE", "AMOLEN", "MIKA3D", "3DXTECH", "Duramic",
"Priline", "Eryone", "3Dgunius", "Novamaker", "Justmaker", "Giantarm", "iProspect"};

static const std::vector<std::string> filament_types = {"PLA", "PLA+", "PLA Tough", "PETG", "ABS", "ASA", "FLEX", "HIPS", "PA", "PACF",
"NYLON", "PVA", "PC", "PCABS", "PCTG", "PCCF", "PP", "PEI", "PET", "PETG",
"PETGCF", "PTBA", "PTBA90A", "PEEK", "TPU93A", "TPU75D", "TPU", "TPU92A", "TPU98A", "Misc",
static const std::vector<std::string> filament_vendors =
{"3Dgenius", "3DJake", "3DXTECH", "3D BEST-Q", "3D Hero",
"3D-Fuel", "Aceaddity", "AddNorth", "Amazon Basics", "AMOLEN",
"Ankermake", "Anycubic", "Atomic", "AzureFilm", "BASF",
"Bblife", "BCN3D", "Beyond Plastic", "California Filament", "Capricorn",
"CC3D", "colorFabb", "Comgrow", "Cookiecad", "Creality",
"Das Filament", "DO3D", "DOW", "DSM", "Duramic",
"ELEGOO", "Eryone", "Essentium", "eSUN", "Extrudr",
"Fiberforce", "Fiberlogy", "FilaCube", "Filamentive", "Fillamentum",
"FLASHFORGE", "Formfortura", "Francofil", "GEEETECH", "Giantarm",
"Gizmo Dorks", "GreenGate3D", "HATCHBOX", "Hello3D", "IC3D",
"IEMAI", "IIID Max", "INLAND", "iProspect", "iSANMATE",
"Justmaker", "Keene Village Plastics", "Kexcelled", "MakerBot", "MatterHackers",
"MIKA3D", "NinjaTek", "Nobufil", "Novamaker", "OVERTURE",
"OVVNYXE", "Polymaker", "Priline", "Printed Solid", "Protopasta",
"Prusament", "Push Plastic", "R3D", "Re-pet3D", "Recreus",
"Regen", "Sain SMART", "SliceWorx", "Snapmaker", "SnoLabs",
"Spectrum", "SUNLU", "TTYT3D", "UltiMaker", "Verbatim",
"VO3D", "Voxelab", "YOOPAI", "Yousu", "Ziro",
"Zyltech"};

static const std::vector<std::string> filament_types = {"PLA", "PLA+", "PLA Tough", "PETG", "ABS", "ASA", "FLEX", "HIPS", "PA", "PACF",
"NYLON", "PVA", "PC", "PCABS", "PCTG", "PCCF", "PHA", "PP", "PEI", "PET", "PETG",
"PETGCF", "PTBA", "PTBA90A", "PEEK", "TPU93A", "TPU75D", "TPU", "TPU92A", "TPU98A", "Misc",
"TPE", "GLAZE", "Nylon", "CPE", "METAL", "ABST", "Carbon Fiber"};

static const std::vector<std::string> system_filament_types = {"PLA", "ABS", "TPU", "PC", "ASA", "PA-CF", "PA6-CF", "PET-CF", "PETG", "PETG-CF",
Expand All @@ -57,13 +74,18 @@ static std::unordered_map<std::string, std::string> system_filament_types_map =
{"HIPS", "HIPS"}, {"PPS", "PPS"}, {"PPS-CF", "PPS-CF"},
{"PVA", "PVA"}};

static const std::vector<std::string> printer_vendors = {"Anycubic", "Artillery", "BIBO", "BIQU", "Creality ENDER", "Creality CR", "Creality SERMOON",
"FLSun", "gCreate", "Geeetech", "INAT", "Infinity3D", "Jubilee", "LNL3D",
"LulzBot", "MakerGear", "Original Prusa", "Papapiu", "Print4Taste", "RatRig", "Rigid3D",
"Snapmaker", "Sovol", "TriLAB", "Trimaker", "Ultimaker", "Voron", "Zonestar"};
static const std::vector<std::string> printer_vendors =
{"Anker", "Anycubic", "Artillery", "Bambulab", "BIQU",
"Comgrow", "Creality", "Custom Printer", "Elegoo", "Flashforge",
"FLSun", "FlyingBear", "Folgertech", "InfiMech", "Kingroon",
"Orca Arena Printer", "Peopoly", "Prusa", "Qidi", "Raise3D",
"RatRig", "SecKit", "Snapmaker", "Sovol", "Tronxy",
"TwoTrees", "UltiMaker", "Vivedino", "Voron", "Voxelab",
"Vzbot", "Wanhao"};

static const std::unordered_map<std::string, std::vector<std::string>> printer_model_map =
{{"Anycubic", {"Kossel Linear Plus", "Kossel Pulley(Linear)", "Mega Zero", "i3 Mega", "Predator"}},
{{"Anker", {"Anker M5", "Anker M5 All-Metal Hot End", "Anker M5C"}},
{"Anycubic", {"Kossel Linear Plus", "Kossel Pulley(Linear)", "Mega Zero", "i3 Mega", "Predator"}},
{"Artillery", {"sidewinder X1", "Genius", "Hornet"}},
{"BIBO", {"BIBO2 Touch"}},
{"BIQU", {"BX"}},
Expand Down Expand Up @@ -748,7 +770,7 @@ wxBoxSizer *CreateFilamentPresetDialog::create_type_item()
horizontal_sizer->Add(optionSizer, 0, wxEXPAND | wxALL | wxALIGN_CENTER_VERTICAL, FromDIP(5));

wxArrayString filament_type;
for (const wxString &filament : system_filament_types) {
for (const wxString &filament : filament_types) {
filament_type.Add(filament);
}

Expand Down
Loading