@@ -46,6 +46,7 @@ def settings():
|
||||
default_support = request.form.get('default_support', 'false')
|
||||
default_support_pattern = request.form.get('default_support_pattern', 'tree')
|
||||
default_quality = request.form.get('default_quality', 'base_global_standard.inst.cfg')
|
||||
default_material = request.form.get('default_material', '')
|
||||
gcode_upload_folder = request.form.get('gcode_upload_folder', '').strip()
|
||||
slicer_engine = request.form.get('slicer_engine', 'cura')
|
||||
build_plate_model_path = request.form.get('build_plate_model_path', '').strip()
|
||||
@@ -59,6 +60,7 @@ def settings():
|
||||
('default_support', default_support),
|
||||
('default_support_pattern', default_support_pattern),
|
||||
('default_quality', default_quality),
|
||||
('default_material', default_material),
|
||||
('gcode_upload_folder', gcode_upload_folder),
|
||||
('slicer_engine', slicer_engine),
|
||||
('build_plate_model_path', build_plate_model_path),
|
||||
|
||||
@@ -355,10 +355,11 @@ def plater():
|
||||
default_support = configs.get('default_support', 'false')
|
||||
default_support_pattern = configs.get('default_support_pattern', 'tree')
|
||||
default_quality = configs.get('default_quality', 'base_global_standard.inst.cfg')
|
||||
default_material = configs.get('default_material', '')
|
||||
|
||||
user_files = PrintFile.query.filter_by(user_id=current_user.id, file_type='stl').order_by(PrintFile.created_at.desc()).all()
|
||||
models = [{'id': f.id, 'name': f.original_filename, 'status': f.status, 'url': url_for('main.serve_proxy_file', file_id=f.id), 'transform_matrix': f.transform_matrix} for f in user_files]
|
||||
return render_template('slice/plater.html', w=w, h=h, hd=hd, last_quality=default_quality, models=models, offset_x=offset_x, offset_y=offset_y, default_infill=default_infill, default_support=default_support, default_support_pattern=default_support_pattern, quota_exceeded=quota_exceeded, configs=configs)
|
||||
return render_template('slice/plater.html', w=w, h=h, hd=hd, last_quality=default_quality, last_material=default_material, models=models, offset_x=offset_x, offset_y=offset_y, default_infill=default_infill, default_support=default_support, default_support_pattern=default_support_pattern, quota_exceeded=quota_exceeded, configs=configs)
|
||||
|
||||
@main_bp.route('/file/<int:file_id>')
|
||||
@login_required
|
||||
@@ -390,6 +391,7 @@ def merge_and_slice():
|
||||
data = request.json
|
||||
pieces = data.get('pieces', [])
|
||||
quality = data.get('quality', 'base_global_standard.inst.cfg')
|
||||
material = data.get('material', '')
|
||||
infill_density = data.get('infill', '20')
|
||||
support_enable = data.get('support', 'false')
|
||||
support_pattern = data.get('support_pattern', 'lines')
|
||||
@@ -427,6 +429,7 @@ def merge_and_slice():
|
||||
"matrix": p['raw_matrix'],
|
||||
"settings": {
|
||||
"quality": quality,
|
||||
"material": material,
|
||||
"infill": infill_density,
|
||||
"support": support_enable,
|
||||
"support_pattern": support_pattern
|
||||
@@ -450,6 +453,7 @@ def merge_and_slice():
|
||||
"parts": [],
|
||||
"settings": {
|
||||
"quality": quality,
|
||||
"material": material,
|
||||
"infill": infill_density,
|
||||
"support": support_enable,
|
||||
"support_pattern": support_pattern
|
||||
@@ -471,6 +475,7 @@ def merge_and_slice():
|
||||
"matrix": pieces[0].get('raw_matrix', pieces[0]['matrix']),
|
||||
"settings": {
|
||||
"quality": quality,
|
||||
"material": material,
|
||||
"infill": infill_density,
|
||||
"support": support_enable,
|
||||
"support_pattern": support_pattern
|
||||
@@ -482,7 +487,7 @@ def merge_and_slice():
|
||||
temp_filename = f"temp_edit_{uuid.uuid4().hex}.stl"
|
||||
temp_filepath = os.path.join(current_app.config['UPLOAD_FOLDER'], temp_filename)
|
||||
|
||||
merge_and_slice_task(target_file_id, inputs, temp_filepath, quality, infill_density, support_enable, support_pattern, delete_stl=True)
|
||||
merge_and_slice_task(target_file_id, inputs, temp_filepath, quality, material, infill_density, support_enable, support_pattern, delete_stl=True)
|
||||
elif len(inputs) == 1 and is_edit:
|
||||
target_file_id = pieces[0]['file_id']
|
||||
print_file = PrintFile.query.get(target_file_id)
|
||||
@@ -495,7 +500,7 @@ def merge_and_slice():
|
||||
temp_filename = f"temp_{uuid.uuid4().hex}.stl"
|
||||
temp_filepath = os.path.join(current_app.config['UPLOAD_FOLDER'], temp_filename)
|
||||
|
||||
merge_and_slice_task(target_file_id, inputs, temp_filepath, quality, infill_density, support_enable, support_pattern, delete_stl=True)
|
||||
merge_and_slice_task(target_file_id, inputs, temp_filepath, quality, material, infill_density, support_enable, support_pattern, delete_stl=True)
|
||||
else:
|
||||
# Multiple models, create a new "Merged Slice" PrintFile entry to keep track of combination
|
||||
timestamp = datetime.now().strftime('%Y%m%d%H%M%S')
|
||||
@@ -508,6 +513,7 @@ def merge_and_slice():
|
||||
"parts": [],
|
||||
"settings": {
|
||||
"quality": quality,
|
||||
"material": material,
|
||||
"infill": infill_density,
|
||||
"support": support_enable,
|
||||
"support_pattern": support_pattern
|
||||
@@ -534,7 +540,7 @@ def merge_and_slice():
|
||||
db.session.add(print_file)
|
||||
db.session.commit()
|
||||
|
||||
merge_and_slice_task(print_file.id, inputs, merged_filepath, quality, infill_density, support_enable, support_pattern, delete_stl=False)
|
||||
merge_and_slice_task(print_file.id, inputs, merged_filepath, quality, material, infill_density, support_enable, support_pattern, delete_stl=False)
|
||||
|
||||
return jsonify({'success': True, 'message': 'Plater slice queued!'})
|
||||
|
||||
@@ -553,5 +559,6 @@ def engine_options(engine_name):
|
||||
from app.utils.slice_engines import get_slicer_engine
|
||||
engine = get_slicer_engine(engine_name)
|
||||
presets = engine.get_quality_presets(current_app)
|
||||
patterns = engine.get_support_patterns()
|
||||
return jsonify({'presets': presets, 'support_patterns': patterns})
|
||||
patterns = engine.get_support_patterns(current_app)
|
||||
materials = engine.get_materials(current_app) if hasattr(engine, 'get_materials') else []
|
||||
return jsonify({'presets': presets, 'support_patterns': patterns, 'materials': materials})
|
||||
|
||||
Reference in New Issue
Block a user