This commit is contained in:
bubnikv 2019-09-04 16:11:28 +02:00
commit d2ac827137
32 changed files with 1095 additions and 1163 deletions

View file

@ -393,6 +393,10 @@ msgstr "Añadir instancia"
msgid "Add Instance of the selected object"
msgstr "Añadir instancia del objeto seleccionado"
#: src/slic3r/GUI/GUI_ObjectLayers.cpp:162
msgid "Add layer range"
msgstr "Añadir rango de capas"
#: src/slic3r/GUI/GUI_ObjectList.cpp:1950
msgid "Add Layers"
msgstr "Añadir Capas"
@ -406,6 +410,10 @@ msgstr "Añadir modificador"
msgid "Add more perimeters when needed for avoiding gaps in sloping walls. Slic3r keeps adding perimeters, until more than 70% of the loop immediately above is supported."
msgstr "Añadir más perímetros cuando se necesiten para evitar huecos en las paredes inclinadas. Slic3r sigue añadiendo perímetros hasta que más del 70% del perímetro superior sea soportado."
#: src/slic3r/GUI/Plater.cpp:3516
msgid "Add one more instance of the selected object"
msgstr "Añadir una instancia más del objeto seleccionado"
#: src/slic3r/GUI/GUI_ObjectList.cpp:1066
#: src/slic3r/GUI/GUI_ObjectList.cpp:1082
msgid "Add part"
@ -681,6 +689,10 @@ msgstr "Flecha hacia derecha"
msgid "Arrow Up"
msgstr "Flecha hacia arriba"
#: src/slic3r/GUI/GUI_App.cpp:303
msgid "As a workaround, you may run PrusaSlicer with a software rendered 3D graphics by running prusa-slicer.exe with the --sw_renderer parameter."
msgstr "Como solución alternativa, puedes ejecutar PrusaSlicer con un software de gráficos en 3D ejecutando prusaslicer.exe con el parámetro --sw_renderer."
#: src/slic3r/GUI/GUI.cpp:144 src/slic3r/GUI/GUI_App.cpp:743
#: src/slic3r/GUI/Tab.cpp:2798
msgid "Attention!"
@ -787,6 +799,10 @@ msgstr "Base"
msgid "Bed custom model"
msgstr "Modelo de base personalizado"
#: src/libslic3r/PrintConfig.cpp:56
msgid "Bed custom texture"
msgstr "Textura personalizada de la base"
#: src/slic3r/GUI/BedShapeDialog.hpp:45 src/slic3r/GUI/ConfigWizard.cpp:524
msgid "Bed Shape"
msgstr "Forma de la base de impresión"
@ -993,6 +1009,10 @@ msgstr "Cambiar opción %s"
msgid "Change Part Type"
msgstr "Cambiar Tipo de Pieza"
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:925
msgid "Change point head diameter"
msgstr "Cambiar diámetro de la cabeza de punta"
#: src/slic3r/GUI/Plater.cpp:3520
msgid "Change the number of instances of the selected object"
msgstr "Cambiar número de instancias al objeto seleccionado"
@ -1798,10 +1818,22 @@ msgstr "E&xportar"
msgid "edges fixed"
msgstr "esquimas reparadas"
#: src/slic3r/GUI/GUI_ObjectList.cpp:2690
msgid "Edit Height Range"
msgstr "Editar Rango de Alturas"
#: src/slic3r/GUI/GUI_ObjectList.cpp:373
msgid "Editing"
msgstr "Edición"
#: src/libslic3r/PrintConfig.cpp:349
msgid "Elephant foot compensation"
msgstr "Compensación del pie de elefante"
#: src/libslic3r/SLAPrint.cpp:681
msgid "Elevation is too low for object. Use the \"Pad around obect\" feature to print the object without elevation."
msgstr "La elevación es demasiado baja para el objeto. Utiliza la función \"Pad alrededor del objeto\" para imprimir el objeto sin elevación."
#: src/libslic3r/PrintConfig.cpp:1044
msgid "Emit M73 P[percent printed] R[remaining time in minutes] at 1 minute intervals into the G-code to let the firmware show accurate remaining time. As of now only the Prusa i3 MK3 firmware recognizes M73. Also the i3 MK3 firmware supports M73 Qxx Sxx for the silent mode."
msgstr "Emitir M73 P[porcentaje impreso] R[tiempo restante en minutos] en intervalos de 1 minuto en el código G para permitir que el firmware muestre el tiempo restante preciso. A partir de ahora solo el firmware Prusa i3 MK3 reconoce M73. También el firmware i3 MK3 es compatible con M73 Qxx Sxx para el modo silencioso."
@ -1821,7 +1853,7 @@ msgstr "Habilitar ventilador si el tiempo de impresión de la capa está por deb
#: src/libslic3r/PrintConfig.cpp:2321
msgid "Enable horizontal mirroring of output images"
msgstr "Activar espejo horizontar de salida de imágenes"
msgstr "Activar espejo horizontal de salida de imágenes"
#: src/libslic3r/PrintConfig.cpp:1781
msgid "Enable support material generation."
@ -1839,6 +1871,10 @@ msgstr "Habilítelo para obtener un archivo de código G comentado, con cada lí
msgid "Enable variable layer height feature"
msgstr "Habilitar la función de altura de capa variable"
#: src/libslic3r/PrintConfig.cpp:2328
msgid "Enable vertical mirroring of output images"
msgstr "Activar espejo vertical de salida de imágenes"
#: src/slic3r/GUI/Tab.cpp:1570 src/slic3r/GUI/Tab.cpp:1955
#: src/libslic3r/PrintConfig.cpp:359 src/libslic3r/PrintConfig.cpp:369
msgid "End G-code"
@ -1995,6 +2031,10 @@ msgstr "Exportar &Configuración"
msgid "Export &G-code"
msgstr "Exportar &código G"
#: src/slic3r/GUI/MainFrame.cpp:488
msgid "Export &toolpaths as OBJ"
msgstr "Exportar &trayectorias de herramientas como OBJ"
#: src/libslic3r/PrintConfig.cpp:2949
msgid "Export 3MF"
msgstr "Exportar 3MF"
@ -2104,6 +2144,10 @@ msgstr "Exportar el(los) objeto(s) como STL."
msgid "Export the selected object as STL file"
msgstr "Exportar el objeto seleccionado como archivo STL"
#: src/slic3r/GUI/MainFrame.cpp:488
msgid "Export toolpaths as OBJ"
msgstr "Exportar trayectorias de herramientas como OBJ"
#: src/libslic3r/Print.cpp:1517
msgid "Exporting G-code"
msgstr "Exportando código G"
@ -2117,6 +2161,10 @@ msgstr "Exportando el modelo..."
msgid "Exporting source model"
msgstr "Exportando el modelo original"
#: src/libslic3r/SLAPrint.cpp:700
msgid "Exposition time is out of printer profile bounds."
msgstr "Tiempo de exposición inicial fuera de los límites del perfil de impresión."
#: src/slic3r/GUI/Tab.cpp:3306
msgid "Exposure"
msgstr "Exposición"
@ -2277,6 +2325,10 @@ msgstr "Rápida"
msgid "Fast tilt"
msgstr "Inclinación rápida"
#: src/slic3r/GUI/GUI_App.cpp:135
msgid "Fatal error"
msgstr "Error fatal"
#: src/slic3r/GUI/GUI_Preview.cpp:212 src/slic3r/GUI/GUI_Preview.cpp:537
#: src/libslic3r/GCode/PreviewData.cpp:394
msgid "Feature type"
@ -2533,6 +2585,10 @@ msgstr "Forzar la generación de carcasas sólidas entre materiales / volúmenes
msgid "From"
msgstr "Desde"
#: src/slic3r/GUI/GUI_ObjectList.cpp:1853
msgid "From Object List You can't delete the last solid part from object."
msgstr "Desde la Lista de Objetos no puedes eliminar la última parte sólida del objeto."
#: src/slic3r/GUI/MainFrame.cpp:525
msgid "Front"
msgstr "Frontal"
@ -2977,6 +3033,15 @@ msgstr "Incompatible con este %s"
msgid "Increase Instances"
msgstr "Aumentar Instancias"
#. TRN Description for "UNLOCKED LOCK"
#: src/slic3r/GUI/Tab.cpp:3338
msgid ""
"indicates that some settings were changed and are not equal to the system (or default) values for the current option group.\n"
"Click the UNLOCKED LOCK icon to reset all settings for current option group to the system (or default) values."
msgstr ""
"indica que se modificaron algunas configuraciones y no son iguales a los valores del sistema (o predeterminados) para el grupo de opciones actual.\n"
"Haz clic en el icono CANDADO DESBLOQUEADO para restablecer todos los ajustes del grupo de opciones actual a los valores del sistema (o predeterminados)."
#. TRN Description for "LOCKED LOCK"
#: src/slic3r/GUI/Tab.cpp:3334
msgid "indicates that the settings are the same as the system (or default) values for the current option group"
@ -3190,6 +3255,11 @@ msgstr "Idioma"
msgid "Language selection"
msgstr "Selección de idiomas"
#: src/slic3r/GUI/GUI_ObjectList.cpp:1770
#: src/slic3r/GUI/GUI_ObjectList.cpp:1872
msgid "Last instance of an object cannot be deleted."
msgstr "La última instancia de un objeto no puede ser eliminada."
#: src/slic3r/GUI/GUI_ObjectList.cpp:2994
msgid "Layer"
msgstr "Capa"
@ -3270,6 +3340,10 @@ msgstr "Clic izquierdo"
msgid "Left View"
msgstr "Vista izquierda"
#: src/slic3r/GUI/GUI_Preview.cpp:255
msgid "Legend"
msgstr "Leyenda"
#: src/libslic3r/PrintConfig.cpp:1473 src/libslic3r/PrintConfig.cpp:1481
msgid "Length"
msgstr "Largo"
@ -3343,10 +3417,18 @@ msgstr "Cargar pieza"
msgid "Load presets from a bundle"
msgstr "Cargar preajustes de un paquete"
#: src/slic3r/GUI/Plater.cpp:3992
msgid "Load Project"
msgstr "Cargar Proyecto"
#: src/slic3r/GUI/BedShapeDialog.cpp:97
msgid "Load shape from STL..."
msgstr "Cargar forma desde STL..."
#: src/slic3r/GUI/BedShapeDialog.cpp:181 src/slic3r/GUI/BedShapeDialog.cpp:249
msgid "Load..."
msgstr "Cargar..."
#: src/slic3r/GUI/WipeTowerDialog.cpp:235
msgid "loaded"
msgstr "cargado"
@ -3393,6 +3475,10 @@ msgstr "Bloquear soportes bajo nuevas islas"
msgid "LOCKED LOCK"
msgstr "CANDADO CERRADO"
#: src/slic3r/GUI/Tab.cpp:3360
msgid "LOCKED LOCK icon indicates that the settings are the same as the system (or default) values for the current option group"
msgstr "El icono de CANDADO BLOQUEADO indica que los ajustes son los mismos que los valores del sistema (por defecto) para el grupo de opciones actual"
#: src/slic3r/GUI/Tab.cpp:3376
msgid "LOCKED LOCK icon indicates that the value is the same as the system (or default) value."
msgstr "El icono de CANDADO BLOQUEADO indica que el valor es el mismo que el del sistema (por defecto)"
@ -3550,6 +3636,10 @@ msgstr "Máxima aceleración Z"
msgid "Maximum accelerations"
msgstr "Aceleraciones máximas"
#: src/libslic3r/PrintConfig.cpp:2424 src/libslic3r/PrintConfig.cpp:2425
msgid "Maximum exposure time"
msgstr "Tiempo de exposición máximo"
#: src/libslic3r/PrintConfig.cpp:1081
msgid "Maximum feedrate E"
msgstr "Máximo avance E"
@ -3680,7 +3770,7 @@ msgstr "Resolución mínima de detalles, utilizada para simplificar el archivo d
#: src/libslic3r/PrintConfig.cpp:2416 src/libslic3r/PrintConfig.cpp:2417
msgid "Minimum exposure time"
msgstr "Minimar tiempo de exposición"
msgstr "Tiempo de exposición mínimo"
#: src/libslic3r/PrintConfig.cpp:1109 src/libslic3r/PrintConfig.cpp:1111
msgid "Minimum feedrate when extruding"
@ -3907,6 +3997,10 @@ msgstr "Mover el control deslizante actual hacia abajo"
msgid "Move current slider thumb Up"
msgstr "Mover el control deslizante actual hacia arriba"
#: src/slic3r/GUI/GLCanvas3D.cpp:2872
msgid "Move Object"
msgstr "Mover Objeto"
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1231
msgid "Move point"
msgstr "Mover punto"
@ -3991,6 +4085,14 @@ msgstr "Nueva versión de %s disponible"
msgid "New version:"
msgstr "Nueva versión:"
#: src/slic3r/GUI/GLCanvas3D.cpp:3750
msgid "Next Redo action: %1%"
msgstr "Siguiente acción de Rehacer: %1%"
#: src/slic3r/GUI/GLCanvas3D.cpp:3718
msgid "Next Undo action: %1%"
msgstr "Siguiente acción de Deshacer: %1%"
#: src/libslic3r/PrintConfig.cpp:912
msgid "No extrusion"
msgstr "Sin extrusión"
@ -4124,6 +4226,10 @@ msgstr "Nombre del objeto"
msgid "Object or Instance"
msgstr "Objeto o instancia"
#: src/slic3r/GUI/GUI_ObjectList.cpp:1010
msgid "Object reordered"
msgstr "Objetos reordenados"
#: src/slic3r/GUI/GUI_ObjectList.cpp:1868
msgid "Object Settings to modify"
msgstr "Configuraciones de objetos para modificar"
@ -4156,6 +4262,10 @@ msgstr "Versión de OctoPrint"
msgid "of a current Object"
msgstr "del Objeto actual"
#: src/slic3r/GUI/wxExtensions.cpp:2570
msgid "One layer mode"
msgstr "Modo de capa única"
#: src/libslic3r/Print.cpp:1285
msgid "One or more object were assigned an extruder that the printer does not have."
msgstr "Uno o más objetos fueron asignados a un extrusor no existente."
@ -4188,6 +4298,10 @@ msgstr "Solo retraer al cruzar perímetros"
msgid "Ooze prevention"
msgstr "Prevención de goteo"
#: src/libslic3r/Print.cpp:1193
msgid "Ooze prevention is currently not supported with the wipe tower enabled."
msgstr "La prevención de goteo actualmente no es compatible con la torre de limpieza activa."
#: src/slic3r/GUI/MainFrame.cpp:339
msgid "Open a project file"
msgstr "Abrir un archivo de proyecto"
@ -4225,6 +4339,10 @@ msgstr "Abre la página de lanzamientos de software en tu navegador"
msgid "Optimize orientation"
msgstr "Optimizar la orientación"
#: src/slic3r/GUI/Plater.cpp:2643
msgid "Optimize Rotation"
msgstr "Optimizar Rotación"
#: src/slic3r/GUI/Plater.cpp:2994
msgid "Optimize the rotation of the object for better print results."
msgstr "Optimizar la rotación del objeto para obtener mejores resultados de impresión."
@ -4309,6 +4427,22 @@ msgstr "Pad"
msgid "Pad and Support"
msgstr "Pad y soportes"
#: src/libslic3r/PrintConfig.cpp:2732
msgid "Pad around object"
msgstr "Pad alrededor del objeto"
#: src/libslic3r/PrintConfig.cpp:2731
msgid "Pad object connector penetration"
msgstr "Penetración del conector del objeto al Pad"
#: src/libslic3r/PrintConfig.cpp:2711
msgid "Pad object connector stride"
msgstr "Paso del conector del objeto al Pad"
#: src/libslic3r/PrintConfig.cpp:2721
msgid "Pad object connector width"
msgstr "Anchura del conector del pad al objeto"
#: src/libslic3r/PrintConfig.cpp:2700
msgid "Pad object gap"
msgstr "Espacio del pad con el objeto"
@ -4515,6 +4649,14 @@ msgstr ""
" o para ajustar un 5% en la escala Gizmo\n"
" o para ajustar un 1 mm en el movimiento Gizmo"
#: src/slic3r/GUI/KBShortcutsDialog.cpp:147
msgid ""
"Press to scale selection to fit print volume\n"
"in Gizmo scale"
msgstr ""
"Presiona para escalar la selección para cuadrar en el volumen de impresión\n"
"en escala Gizmo"
#: src/slic3r/GUI/KBShortcutsDialog.cpp:127
msgid "Press to select multiple object or move multiple object with mouse"
msgstr "Presiona para seleccionar objetos múltiples o mover objetos múltiples con el ratón"
@ -4576,6 +4718,10 @@ msgstr "Anular la velocidad de impresión"
msgid "Print&er Settings Tab"
msgstr "Configura&ción de Impresión"
#: src/slic3r/GUI/GUI_ObjectList.cpp:1438
msgid "Printable"
msgstr "Imprimible"
#: src/slic3r/GUI/Plater.cpp:685
msgid "Printer"
msgstr "Impresora"
@ -4769,6 +4915,10 @@ msgstr "Ajustes de empuje"
msgid "Random"
msgstr "Aleatorio"
#: src/slic3r/GUI/wxExtensions.cpp:486
msgid "Range"
msgstr "Rango"
#: src/libslic3r/SLAPrint.cpp:72
msgid "Rasterizing layers"
msgstr "Rastrerizando capas"
@ -4793,6 +4943,10 @@ msgstr "Trasera"
msgid "Rear View"
msgstr "Vista trasera"
#: src/slic3r/GUI/MainFrame.cpp:401
msgid "Recent projects"
msgstr "Proyectos recientes"
#: src/slic3r/GUI/PresetHints.cpp:262
#, c-format
msgid "Recommended object thin wall thickness for layer height %.2f and"
@ -4824,6 +4978,17 @@ msgstr "Rejilla rectilínea"
msgid "Redo"
msgstr "Rehacer"
#: src/slic3r/GUI/GLCanvas3D.cpp:3497
#, c-format
msgid "Redo %1$d Action"
msgid_plural "Redo %1$d Actions"
msgstr[0] "Rehacer %1$d Acción"
msgstr[1] "Rehacer %1$d Acciones"
#: src/slic3r/GUI/GLCanvas3D.cpp:3479
msgid "Redo History"
msgstr "Rehacer Historia"
#: src/slic3r/GUI/Tab.cpp:1037
msgid "Reducing printing time"
msgstr "Reduciendo el tiempo de impresión"
@ -4861,6 +5026,10 @@ msgstr "Retirar una copia"
msgid "Remove Instance of the selected object"
msgstr "Retirar instancia del objeto seleccionado"
#: src/slic3r/GUI/GUI_ObjectLayers.cpp:153
msgid "Remove layer range"
msgstr "Retirar rango de capas"
#: src/slic3r/GUI/Plater.cpp:3518
msgid "Remove one instance of the selected object"
msgstr "Eliminar una instancia del objeto seleccionado"
@ -4894,6 +5063,14 @@ msgstr "Eliminar perfiles de usuario - instalar desde cero (se realizará una in
msgid "Rename"
msgstr "Renombrar"
#: src/slic3r/GUI/GUI_ObjectList.cpp:493
msgid "Rename Object"
msgstr "Renombrar Objeto"
#: src/slic3r/GUI/GUI_ObjectList.cpp:493
msgid "Rename Sub-object"
msgstr "Renombrar Sub-Objeto"
#: src/slic3r/GUI/GUI_ObjectList.cpp:2709
msgid "Renaming"
msgstr "Renombrar"
@ -4990,6 +5167,15 @@ msgstr "Reiniciar rotación"
msgid "Reset Rotation"
msgstr "Reiniciar rotación"
#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:285
#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:290
msgid "Reset scale"
msgstr "Reiniciar escala"
#: src/slic3r/GUI/Tab.cpp:2584
msgid "Reset to Filament Color"
msgstr "Reiniciar Filament Color"
#: src/libslic3r/PrintConfig.cpp:1441
msgid "Resolution"
msgstr "Resolución"
@ -5034,6 +5220,10 @@ msgstr "Retracciones"
msgid "Right"
msgstr "Derecha"
#: src/slic3r/GUI/GUI_ObjectList.cpp:381
msgid "Right button click the icon to change the object printable property"
msgstr "Clic con el botón derecho en el icono para cambiar la propiedad imprimible del objeto"
#: src/slic3r/GUI/GUI_ObjectList.cpp:279
msgid "Right button click the icon to change the object settings"
msgstr "Clic del botón derecho en el ícono para cambiar los ajustes del objeto"
@ -5112,6 +5302,10 @@ msgstr "$"
msgid "S&end G-code"
msgstr "E&nviar código G"
#: src/slic3r/GUI/MainFrame.cpp:709
msgid "S&end to print"
msgstr "E&nviar para imprimir"
#. TRN Preset
#: src/slic3r/GUI/Tab.cpp:3264
#, c-format
@ -5216,7 +5410,11 @@ msgstr "Escala los objetos seleccionados para ajustarse al volumen de impresión
#: src/libslic3r/PrintConfig.cpp:3086
msgid "Scale to Fit"
msgstr "Escalar para adaptarse"
msgstr "Escalar para Adaptarse"
#: src/slic3r/GUI/Selection.cpp:947
msgid "Scale To Fit"
msgstr "Escalar para Adaptarse"
#: src/libslic3r/PrintConfig.cpp:3087
msgid "Scale to fit the given volume."
@ -5342,14 +5540,38 @@ msgstr "Selecciona que tipo de pad necesitas"
msgid "Select what kind of support do you need"
msgstr "Selecciona qué clase de soporte necesitas"
#: src/slic3r/GUI/Selection.cpp:146
msgid "Selection-Add"
msgstr "Selección-Añadir"
#: src/slic3r/GUI/Selection.cpp:384
msgid "Selection-Add All"
msgstr "Selección-Añadir todos"
#: src/slic3r/GUI/GUI_ObjectList.cpp:2875
msgid "Selection-Add from list"
msgstr "Selección-Añadir de la lista"
#: src/slic3r/GUI/GLCanvas3D.cpp:5623
msgid "Selection-Add from rectangle"
msgstr "Selección-Añadir del rectángulo"
#: src/slic3r/GUI/Selection.cpp:256
msgid "Selection-Add Instance"
msgstr "Selección-Añadir Instancia"
#: src/slic3r/GUI/Selection.cpp:219
msgid "Selection-Add Object"
msgstr "Selección-Añadir Objeto"
#: src/slic3r/GUI/Selection.cpp:187
msgid "Selection-Remove"
msgstr "Selección-Retirar"
#: src/slic3r/GUI/Selection.cpp:410
msgid "Selection-Remove All"
msgstr "Selección-Retirar todo"
#: src/slic3r/GUI/GUI_ObjectList.cpp:2867
msgid "Selection-Remove from list"
msgstr "Selección-Retirar de la lista"
@ -5358,6 +5580,14 @@ msgstr "Selección-Retirar de la lista"
msgid "Selection-Remove from rectangle"
msgstr "Selección-Retirar del rectángulo"
#: src/slic3r/GUI/Selection.cpp:275
msgid "Selection-Remove Instance"
msgstr "Selección-Retirar Instancia"
#: src/slic3r/GUI/Selection.cpp:238
msgid "Selection-Remove Object"
msgstr "Selección-Retirar Objeto"
#: src/slic3r/GUI/MainFrame.cpp:444
msgid "Selects all objects"
msgstr "Seleccionar todos los objetos"
@ -5370,6 +5600,10 @@ msgstr "Enviar código G"
msgid "Send G-Code to printer host"
msgstr "Enviar el código G al host de impresión"
#: src/slic3r/GUI/MainFrame.cpp:466
msgid "Send to print current plate as G-code"
msgstr "Enviar para imprimir la plataforma actual como código G"
#: src/slic3r/GUI/Plater.cpp:731 src/slic3r/GUI/Plater.cpp:3822
msgid "Send to printer"
msgstr "Enviar a la impresora"
@ -5420,6 +5654,15 @@ msgstr "Coloca el pulgar inferior en el control deslizante actual"
msgid "Set Mirror"
msgstr "Establecer Reflejo"
#: src/slic3r/GUI/Plater.cpp:3520
msgid "Set number of instances"
msgstr "Establecer número de instancias"
#: src/slic3r/GUI/Plater.cpp:4163
#, c-format
msgid "Set numbers of copies to %d"
msgstr "Establecer el número de copias a %d"
#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:746
msgid "Set Orientation"
msgstr "Establecer Orientación"
@ -5428,6 +5671,18 @@ msgstr "Establecer Orientación"
msgid "Set Position"
msgstr "Establecer Posición"
#: src/slic3r/GUI/GUI_ObjectList.cpp:3759
msgid "Set Printable"
msgstr "Establecer Imprimible"
#: src/slic3r/GUI/Selection.cpp:1482
msgid "Set Printable Instance"
msgstr "Establecer Instancia imprimible"
#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:811
msgid "Set Scale"
msgstr "Establecer Escala"
#: src/libslic3r/PrintConfig.cpp:2228
msgid "Set the actual LCD display orientation inside the SLA printer. Portrait mode will flip the meaning of display width and height parameters and the output images will be rotated by 90 degrees."
msgstr "Establece la orientación real de la pantalla LCD dentro de la impresora SLA. El modo retrato cambiará el significado de los parámetros de ancho y alto de la pantalla y las imágenes de salida girarán 90 grados."
@ -5486,7 +5741,7 @@ msgstr "Establecer No imprimible"
#: src/slic3r/GUI/Selection.cpp:1482
msgid "Set Unprintable Instance"
msgstr "Establecer Instancia no imprimible"
msgstr "Establecer Instancia No Imprimible"
#: src/slic3r/GUI/KBShortcutsDialog.cpp:184
msgid "Set upper thumb to current slider thumb"
@ -5496,6 +5751,10 @@ msgstr "Coloca el pulgar superior en el control deslizante actual"
msgid "Settings"
msgstr "Ajustes"
#: src/slic3r/GUI/GUI_ObjectList.cpp:2206
msgid "Settings for height range"
msgstr "Ajustes para rango de alturas"
#: src/slic3r/GUI/BedShapeDialog.cpp:60
msgid "Shape"
msgstr "Aspecto"
@ -5584,6 +5843,10 @@ msgstr "Mostrar esta ayuda."
msgid "Show user configuration folder (datadir)"
msgstr "Mostrar carpeta de configuración de usuario (datadir)"
#: src/slic3r/GUI/KBShortcutsDialog.cpp:185
msgid "Show/Hide (L)egend"
msgstr "Mostrar/Ocultar (L)eyenda"
#: src/slic3r/GUI/GUI_App.cpp:674 src/slic3r/GUI/wxExtensions.cpp:2459
msgid "Simple"
msgstr "Sencillo"
@ -5600,6 +5863,16 @@ msgstr "Ajuste para MM con un solo extrusor"
msgid "Single Extruder Multi Material"
msgstr "Extrusor único de múltiples materiales"
#: src/slic3r/GUI/Tab.cpp:2023
msgid ""
"Single Extruder Multi Material is selected, \n"
"and all extruders must have the same diameter.\n"
"Do you want to change the diameter for all extruders to first extruder nozzle diameter value?"
msgstr ""
"Multi Material en extrusor único seleccionado,\n"
"y todos los extrusores deben tener el mismo diámetro.\n"
"¿Deseas cambiar el diámetro de todos los extrusores al valor del diámetro del nozzle del primer extrusor?"
#: src/slic3r/GUI/Tab.cpp:2240
msgid "Single extruder multimaterial parameters"
msgstr "Parámetros multimaterial para un sólo extrusor"
@ -5639,6 +5912,14 @@ msgstr "Vueltas de la falda"
msgid "SLA gizmo keyboard shortcuts"
msgstr "SLA gizmo atajos de teclado"
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1150
msgid "SLA gizmo turned off"
msgstr "Gizmo SLA apagado"
#: src/slic3r/GUI/Gizmos/GLGizmoSlaSupports.cpp:1115
msgid "SLA gizmo turned on"
msgstr "Gizmo SLA encendido"
#: src/slic3r/GUI/Plater.cpp:684 src/slic3r/GUI/Preset.cpp:1277
msgid "SLA material"
msgstr "Material SLA"
@ -5743,6 +6024,10 @@ msgstr "Laminado terminado"
msgid "Slicing Done!"
msgstr "¡Laminado realizado!"
#: src/libslic3r/SLAPrint.cpp:759
msgid "Slicing had to be stopped due to an internal error: Inconsistent slice index."
msgstr "El laminado se ha tenido que parar debido a un error interno: Índice de laminado inconsistente."
#: src/libslic3r/SLAPrint.cpp:55
msgid "Slicing model"
msgstr "Rebanando modelo"
@ -5808,6 +6093,10 @@ msgstr "Material soluble"
msgid "Soluble material is most likely used for a soluble support."
msgstr "El material soluble se usa muy probablemente para un soporte soluble."
#: src/libslic3r/PrintConfig.cpp:914
msgid "Some G/M-code commands, including temperature control and others, are not universal. Set this option to your printer's firmware to get a compatible output. The \"No extrusion\" flavor prevents PrusaSlicer from exporting any extrusion value at all."
msgstr "Algunos comandos de códigos G/M, incluidos el control de temperatura y otros, no son universales. Configura esta opción en el firmware de tu impresora para obtener una salida compatible. El tipo \"Sin extrusión\" evita que PrusaSlicer exporte ningún valor de extrusión."
#: src/slic3r/GUI/GLCanvas3D.cpp:721
msgid "Some objects are not visible when editing supports"
msgstr "Algunos objetos no son visibles cuando al editar soportes"
@ -5959,6 +6248,10 @@ msgstr "Partir en Varias Piezas"
msgid "Split to parts"
msgstr "Separar en piezas"
#: src/slic3r/GUI/GUI_ObjectList.cpp:1904
msgid "Split to Parts"
msgstr "Separar en Piezas"
#: src/libslic3r/PrintConfig.cpp:799
msgid "Stars"
msgstr "Estrellas"
@ -5967,6 +6260,10 @@ msgstr "Estrellas"
msgid "Start a new project"
msgstr "Empezar un nuevo proyecto"
#: src/slic3r/GUI/GUI_ObjectLayers.cpp:27
msgid "Start at height"
msgstr "Comenzar en altura"
#: src/slic3r/GUI/Tab.cpp:1564 src/slic3r/GUI/Tab.cpp:1949
#: src/libslic3r/PrintConfig.cpp:1736 src/libslic3r/PrintConfig.cpp:1751
msgid "Start G-code"
@ -6001,6 +6298,10 @@ msgstr "modo silencioso"
msgid "STL file exported to %s"
msgstr "Archivo STL exportado a %s"
#: src/slic3r/GUI/GUI_ObjectLayers.cpp:27
msgid "Stop at height"
msgstr "Parar en altura"
#: src/slic3r/GUI/Tab.cpp:1716 src/slic3r/GUI/Tab.cpp:1901
msgid "Success!"
msgstr "¡Éxito!"
@ -6017,6 +6318,10 @@ msgstr "Diámetro de la base del soporte"
msgid "Support base height"
msgstr "Altura de la base del soporte"
#: src/libslic3r/PrintConfig.cpp:2566
msgid "Support base safety distance"
msgstr "Distancia de seguridad de la base de soportes"
#: src/slic3r/GUI/GUI_ObjectList.cpp:2547
msgid "Support Blocker"
msgstr "Bloqueo de soporte"
@ -6328,6 +6633,10 @@ msgstr "La distancia máxima entre dos pilares par que se unan entre si. Un valo
msgid "The max length of a bridge"
msgstr "La longitud máxima de un puente"
#: src/libslic3r/PrintConfig.cpp:2569
msgid "The minimum distance of the pillar base from the model in mm. Makes sense in zero elevation mode where a gap according to this parameter is inserted between the model and the pad."
msgstr "La distancia mínima del modelo a la base de pilares en mm. Tiene sentido en el modo de cero elevación donde hay un hueco de acuerdo a cuando este parámetro se introduce entre el modelo y el pad."
#: src/libslic3r/PrintConfig.cpp:2176
msgid "The object will be grown/shrunk in the XY plane by the configured value (negative = inwards, positive = outwards). This might be useful for fine-tuning hole sizes."
msgstr "El objeto se crecerá / reducirá en el plano XY por el valor configurado (negativo = hacia adentro, positivo = hacia afuera). Esto podría ser útil para ajustar el tamaño de los orificios."
@ -6370,6 +6679,10 @@ msgstr "El objeto seleccionado no se puede dividir porque contiene más de un vo
msgid "The selected object couldn't be split because it contains only one part."
msgstr "El objeto seleccionado no se pudo dividir porque contiene solo una parte."
#: src/slic3r/GUI/MainFrame.cpp:410
msgid "The selected project is no more available"
msgstr "El proyecto seleccionado no está diponible"
#: src/libslic3r/PrintConfig.cpp:2570
msgid "The slope of the pad wall relative to the bed plane. 90 degrees means straight walls."
msgstr "La pendiente de la pared del pad en relación con el plano de la cama. 90 grados significa paredes rectas."
@ -6681,6 +6994,14 @@ msgstr "Esta configuración representa la velocidad máxima de su ventilador."
msgid "This setting represents the minimum PWM your fan needs to work."
msgstr "Este ajuste representa el PWM mínimo que el ventilador necesita para funcionar."
#: src/libslic3r/PrintConfig.cpp:1801
msgid "This start procedure is inserted at the beginning, after any printer start gcode (and after any toolchange to this filament in case of multi-material printers). This is used to override settings for a specific filament. If PrusaSlicer detects M104, M109, M140 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all PrusaSlicer settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want. If you have multiple extruders, the gcode is processed in extruder order."
msgstr "Este procedimiento de inicio se inserta al principio, después de que cualquier impresora inicie un código G(y después de cualquier cambio de herramienta a este filamento en el caso de impresoras de materiales múltiples). Esto se utiliza para anular la configuración de un filamento específico. Si PrusaSlicer detecta un M104, M109, M140 o M190 en tus códigos personalizados, dichos comandos no se agregarán automáticamente, por lo que puede personalizar el orden de los comandos de calentamiento y otras acciones personalizadas. Ten en cuenta que puedes usar variables de marcador de posición para todas las configuraciones de PrusaSlicer, por lo que puedes colocar un comando \"M109 S [first_layer_temperature]\" donde lo desees. Si tienes varias extrusorrs, el código G se procesa en el orden del extrusor."
#: src/libslic3r/PrintConfig.cpp:1786
msgid "This start procedure is inserted at the beginning, after bed has reached the target temperature and extruder just started heating, and before extruder has finished heating. If PrusaSlicer detects M104 or M190 in your custom codes, such commands will not be prepended automatically so you're free to customize the order of heating commands and other custom actions. Note that you can use placeholder variables for all PrusaSlicer settings, so you can put a \"M109 S[first_layer_temperature]\" command wherever you want."
msgstr "Este procedimiento de inicio se inserta al principio, después de que la bse ha alcanzado la temperatura objetivo y el extrusor acaba de comenzar a calentar, y antes de que el extrusor haya terminado de calentar. Si PrusaSlicer detecta un M104 o M190 en tus códigos personalizados, dichos comandos no se agregarán automáticamente, por lo que se puede personalizar el orden de los comandos de calentamiento y otras acciones personalizadas. Ten en cuenta que puedes usar variables de marcador de posición para todas las configuraciones de PrusaSlicer, por lo que puedes colocar un comando \"M109 S [first_layer_temperature]\" donde lo desees."
#: src/libslic3r/PrintConfig.cpp:664
msgid "This string is edited by RammingDialog and contains ramming specific parameters."
msgstr "Esta cadena se modifica con el Diálogo de Empuje y contiene parámetros específicos de empuje."
@ -6761,6 +7082,11 @@ msgstr "A los objetos"
msgid "To parts"
msgstr "A las piezas"
#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:212
#, c-format
msgid "Toggle %c axis mirroring"
msgstr "Activar reflejo del eje %c"
#: src/libslic3r/Zipper.cpp:37
msgid "too many files"
msgstr "demasiados archivos"
@ -6861,6 +7187,10 @@ msgid_plural "Undo %1$d Actions"
msgstr[0] "Deshacer %1$d Acción"
msgstr[1] "Deshacer %1$d Acciones"
#: src/slic3r/GUI/GLCanvas3D.cpp:3479
msgid "Undo History"
msgstr "Deshacer Historia"
#: src/libslic3r/Zipper.cpp:59
msgid "unexpected decompressed size"
msgstr "tamaño de descompresión inesperado"
@ -6897,6 +7227,14 @@ msgstr ""
"El icono de CANDADO DESBLOQUEADO indica que se cambiaron algunas configuraciones y no son iguales a los valores del sistema (o predeterminados) para el grupo de opciones actual.\n"
"Haz clic para restablecer todas las configuraciones para el grupo de opciones actual a los valores del sistema (o predeterminados)."
#: src/slic3r/GUI/Tab.cpp:3377
msgid ""
"UNLOCKED LOCK icon indicates that the value was changed and is not equal to the system (or default) value.\n"
"Click to reset current value to the system (or default) value."
msgstr ""
"El icono de CANDADO DESBLOQUEADO indica que se cambiaron algunas configuraciones y no son iguales a los valores del sistema (o predeterminados).\n"
"Haz clic para reiniciar el valor actual a los del sistema (o predeterminados)"
#: src/slic3r/GUI/GUI_Preview.cpp:245
msgid "Unretractions"
msgstr "Desretracciones"
@ -7121,10 +7459,18 @@ msgstr "Volumen"
msgid "Volume to purge (mm³) when the filament is being"
msgstr "Volumen a purgar (mm³) cuando el filamento está siendo"
#: src/slic3r/GUI/GUI_ObjectList.cpp:1010
msgid "Volumes in Object reordered"
msgstr "Volúmenes en Objetos reordenados"
#: src/slic3r/GUI/PresetHints.cpp:216
msgid "Volumetric"
msgstr "Volumétrico"
#: src/slic3r/GUI/Tab.cpp:1800
msgid "Volumetric flow hints not available"
msgstr "Sugerencias de flujo volumétrico no disponibles"
#: src/slic3r/GUI/GUI_Preview.cpp:216
msgid "Volumetric flow rate"
msgstr "Tasa de caudal volumétrico"
@ -7232,6 +7578,10 @@ msgstr "Ancho desde el centro de la esfera trasera al centro de la esfera delant
msgid "Width of a wipe tower"
msgstr "Ancho de la torre de limpieza"
#: src/libslic3r/PrintConfig.cpp:2761
msgid "Width of the connector sticks which connect the object and the generated pad."
msgstr "Ancho de los palitos de apoyo que conectan la pieza y la base generada."
#: src/libslic3r/PrintConfig.cpp:2203
msgid "Width of the display"
msgstr "Ancho de la pantalla"
@ -7385,11 +7735,19 @@ msgstr "Puedes usar todas las opciones de configuración como las variables dent
msgid "You can't change a type of the last solid part of the object."
msgstr "No puede cambiar un tipo de la última parte sólida del objeto."
#: src/slic3r/GUI/Plater.cpp:2243
msgid "You can't load SLA project if there is at least one multi-part object on the bed"
msgstr "No puede cargar el proyecto SLA si hay al menos un objeto de varias partes en la base"
#: src/slic3r/GUI/Plater.cpp:1746
#, c-format
msgid "You can't to add the object(s) from %s because of one or some of them is(are) multi-part"
msgstr "No puede agregar el(los) objeto(s) desde % s porque uno o algunos de ellos son de varias piezas"
#: src/slic3r/GUI/GUI_ObjectManipulation.cpp:565
msgid "You cannot use non-uniform scaling mode for multiple objects/parts selection"
msgstr "No puedes usar el modo de escala no uniforme para la selección de múltiples objetos/partes"
#: src/slic3r/GUI/GUI_App.cpp:300
msgid "You may need to update your graphics card driver."
msgstr "Puede que necesites actualizar tu tarjeta de gráficos."

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,8 +1,13 @@
min_slic3r_version = 2.1.0-alpha0
1.0.0 Updated end G-code for the MMU2 profiles to lift the extruder at the end of print. Wipe tower bridging distance was made smaller for soluble supports.
1.0.0-beta1 Updated color for the ASA filaments to differ from the other filaments. Single extruder printers now have no extruder color assigned, obects and toolpaths will be colored with the color of the active filament.
1.0.0-beta0 Printer model checks in start G-codes, ASA filament profiles, limits on min / max SL1 exposition times
1.0.0-alpha2 Printer model and nozzle diameter check
1.0.0-alpha1 Added Prusament ASA profile
1.0.0-alpha0 Filament specific retract for PET and similar copolymers, and for FLEX
min_slic3r_version = 1.42.0-alpha6
0.8.5 Updated SL1 printer and material settings
0.8.4 Added Prusament ASA profile
0.8.3 FW version and SL1 materials update
0.8.2 FFF and SL1 settings update
0.8.1 Output settings and SLA materials update

View file

@ -5,7 +5,7 @@
name = Prusa Research
# Configuration version of this file. Config file will only be installed, if the config_version differs.
# This means, the server may force the PrusaSlicer configuration to be downgraded.
config_version = 1.0.0-beta1
config_version = 1.0.0
# Where to get the updates from?
config_update_url = http://files.prusa3d.com/wp-content/uploads/repository/PrusaSlicer-settings-master/live/PrusaResearch/
changelog_url = http://files.prusa3d.com/?latest=slicer-profiles&lng=%1%
@ -285,7 +285,7 @@ support_material_interface_spacing = 0.1
support_material_synchronize_layers = 1
support_material_threshold = 80
support_material_with_sheath = 1
wipe_tower_bridging = 8
wipe_tower_bridging = 6
# XXXXXXXXXXXXXXXXXXXX
# XXX--- 0.05mm ---XXX
@ -1295,7 +1295,7 @@ filament_density = 1.23
cooling = 0
fan_always_on = 0
filament_colour = #FFFFD7
filament_max_volumetric_speed = 4
filament_max_volumetric_speed = 3.8
filament_notes = "List of materials tested with standard PVA print settings:\n\nPrimaSelect PVA+\nICE FILAMENTS PVA 'NAUGHTY NATURAL'"
filament_ramming_parameters = "120 100 8.3871 8.6129 8.93548 9.22581 9.48387 9.70968 9.87097 10.0323 10.2258 10.4194 10.6452 10.8065| 0.05 8.34193 0.45 8.73548 0.95 9.34836 1.45 9.78385 1.95 10.0871 2.45 10.5161 2.95 10.8903 3.45 7.6 3.95 7.6 4.45 7.6 4.95 7.6"
filament_soluble = 1
@ -1578,7 +1578,7 @@ filament_diameter = 1.75
filament_load_time = 15
filament_loading_speed = 14
filament_loading_speed_start = 19
filament_max_volumetric_speed = 4
filament_max_volumetric_speed = 3.8
filament_minimal_purge_on_wipe_tower = 5
filament_notes = "List of materials tested with standard PVA print settings:\n\nPrimaSelect PVA+"
filament_ramming_parameters = "120 110 3.83871 3.90323 3.96774 4.03226 4.09677 4.19355 4.3871 4.83871 5.67742 6.93548 8.54839 10.3226 11.9677 13.2581 14.129 14.5806| 0.05 3.8258 0.45 3.89676 0.95 4.05807 1.45 4.23548 1.95 5.18386 2.45 7.80651 2.95 11.5356 3.45 13.9872 3.95 14.7613 4.45 7.6 4.95 7.6"
@ -2384,7 +2384,7 @@ default_print_profile = 0.15mm OPTIMAL MK2.5
default_filament_profile = Prusament PLA
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK2.5\n
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.7.2 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\n; select extruder\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\nG21 ; set units to millimeters\n\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; load to nozzle\nTc\n; purge line\nG1 X55.0 E8.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\nG92 E0.0\n
end_gcode = G1 X0 Y210 F7200\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15.0000 F5800\nG1 E-20.0000 F5500\nG1 E10.0000 F3000\nG1 E-10.0000 F3100\nG1 E10.0000 F3150\nG1 E-10.0000 F3250\nG1 E10.0000 F3300\n\nM702 C\n\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200 F3000 ; home X axis\nM84 ; disable motors
end_gcode = G1 X0 Y210 F7200\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15.0000 F5800\nG1 E-20.0000 F5500\nG1 E10.0000 F3000\nG1 E-10.0000 F3100\nG1 E10.0000 F3150\nG1 E-10.0000 F3250\nG1 E10.0000 F3300\n\nM702 C\n\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n; Lift print head a bit\n{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+30, max_print_height)}{endif} ; Move print head up\nG1 X0 Y200 F3000 ; home X axis\nM84 ; disable motors
[printer:Original Prusa i3 MK2.5 MMU2 Single 0.6 nozzle]
inherits = Original Prusa i3 MK2.5S MMU2S Single 0.6 nozzle
@ -2471,7 +2471,7 @@ default_print_profile = 0.15mm OPTIMAL MK2.5
default_filament_profile = Prusament PLA
printer_notes = Don't remove the following keywords! These keywords are used in the "compatible printer" condition of the print and filament profiles to link the particular print and filament profiles to this printer profile.\nPRINTER_VENDOR_PRUSA3D\nPRINTER_MODEL_MK2.5\n
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.7.2 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\nG21 ; set units to millimeters\n\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nTc\n; purge line\nG1 X55.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\nG92 E0.0\n
end_gcode = G1 X0 Y210 F7200\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15.0000 F5800\nG1 E-20.0000 F5500\nG1 E10.0000 F3000\nG1 E-10.0000 F3100\nG1 E10.0000 F3150\nG1 E-10.0000 F3250\nG1 E10.0000 F3300\n\nM702 C\n\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200 F3000 ; home X axis\nM84 ; disable motors
end_gcode = G1 X0 Y210 F7200\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15.0000 F5800\nG1 E-20.0000 F5500\nG1 E10.0000 F3000\nG1 E-10.0000 F3100\nG1 E10.0000 F3150\nG1 E-10.0000 F3250\nG1 E10.0000 F3300\n\nM702 C\n\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n; Lift print head a bit\n{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+30, max_print_height)}{endif} ; Move print head up\nG1 X0 Y200 F3000 ; home X axis\nM84 ; disable motors
[printer:Original Prusa i3 MK2.5S MMU2S Single 0.6 nozzle]
inherits = Original Prusa i3 MK2.5S MMU2S Single
@ -2635,7 +2635,7 @@ inherits = *mm2*
single_extruder_multi_material = 0
default_filament_profile = Prusament PLA
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.7.2 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\nG21 ; set units to millimeters\n\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nTc\n; purge line\nG1 X55.0 E8.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0.0\n
end_gcode = G1 X0 Y210 F7200\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15.0000 F5800\nG1 E-20.0000 F5500\nG1 E10.0000 F3000\nG1 E-10.0000 F3100\nG1 E10.0000 F3150\nG1 E-10.0000 F3250\nG1 E10.0000 F3300\n\nM702 C\n\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200 F3000 ; home X axis\nM84 ; disable motors
end_gcode = G1 X0 Y210 F7200\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15.0000 F5800\nG1 E-20.0000 F5500\nG1 E10.0000 F3000\nG1 E-10.0000 F3100\nG1 E10.0000 F3150\nG1 E-10.0000 F3250\nG1 E10.0000 F3300\n\nM702 C\n\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n; Lift print head a bit\n{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+30, max_print_height)}{endif} ; Move print head up\nG1 X0 Y200 F3000 ; home X axis\nM84 ; disable motors
[printer:Original Prusa i3 MK3 MMU2 Single 0.6 nozzle]
inherits = Original Prusa i3 MK3 MMU2 Single
@ -2672,7 +2672,7 @@ inherits = *mm2s*
single_extruder_multi_material = 0
default_filament_profile = Prusament PLA
start_gcode = M862.3 P \"[printer_model]\" ; printer model check\nM862.1 P[nozzle_diameter] ; nozzle diameter check\nM115 U3.7.2 ; tell printer latest fw version\nG90 ; use absolute coordinates\nM83 ; extruder relative mode\nM104 S[first_layer_temperature] ; set extruder temp\nM140 S[first_layer_bed_temperature] ; set bed temp\nTx\nM190 S[first_layer_bed_temperature] ; wait for bed temp\nM109 S[first_layer_temperature] ; wait for extruder temp\nG28 W ; home all without mesh bed level\nG80 ; mesh bed leveling\n\nG21 ; set units to millimeters\n\n;go outside print area\nG1 Y-3.0 F1000.0\nG1 Z0.4 F1000.0\n; select extruder\nTc\n; purge line\nG1 X55.0 F2000.0\nG1 Z0.3 F1000.0\nG92 E0.0\nG1 X240.0 E25.0 F2200.0\nG1 Y-2.0 F1000.0\nG1 X55.0 E25 F1400.0\nG1 Z0.20 F1000.0\nG1 X5.0 E4.0 F1000.0\n\nM221 S{if layer_height<0.075}100{else}95{endif}\nG92 E0.0\n
end_gcode = G1 X0 Y210 F7200\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15.0000 F5800\nG1 E-20.0000 F5500\nG1 E10.0000 F3000\nG1 E-10.0000 F3100\nG1 E10.0000 F3150\nG1 E-10.0000 F3250\nG1 E10.0000 F3300\n\nM702 C\n\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\nG1 X0 Y200 F3000 ; home X axis\nM84 ; disable motors
end_gcode = G1 X0 Y210 F7200\nG1 E2 F5000\nG1 E2 F5500\nG1 E2 F6000\nG1 E-15.0000 F5800\nG1 E-20.0000 F5500\nG1 E10.0000 F3000\nG1 E-10.0000 F3100\nG1 E10.0000 F3150\nG1 E-10.0000 F3250\nG1 E10.0000 F3300\n\nM702 C\n\nG4 ; wait\nM104 S0 ; turn off temperature\nM140 S0 ; turn off heatbed\nM107 ; turn off fan\n; Lift print head a bit\n{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+30, max_print_height)}{endif} ; Move print head up\nG1 X0 Y200 F3000 ; home X axis\nM84 ; disable motors
[printer:Original Prusa i3 MK3S MMU2S Single 0.6 nozzle]
inherits = Original Prusa i3 MK3S MMU2S Single

View file

@ -1738,13 +1738,9 @@ void GCode::process_layer(
// This extrusion is part of certain Region, which tells us which extruder should be used for it:
int correct_extruder_id = Print::get_extruder(*fill, region);
//FIXME what is this?
entity_type=="infills" ?
std::max<int>(0, (is_solid_infill(fill->entities.front()->role()) ? region.config().solid_infill_extruder : region.config().infill_extruder) - 1) :
std::max<int>(region.config().perimeter_extruder.value - 1, 0);
// Let's recover vector of extruder overrides:
const ExtruderPerCopy* entity_overrides = const_cast<LayerTools&>(layer_tools).wiping_extrusions().get_extruder_overrides(fill, correct_extruder_id, (int)layer_to_print.object()->copies().size());
const ExtruderPerCopy* entity_overrides = const_cast<LayerTools&>(layer_tools).wiping_extrusions().get_extruder_overrides(fill, correct_extruder_id, layer_to_print.object()->copies().size());
// Now we must add this extrusion into the by_extruder map, once for each extruder that will print it:
for (unsigned int extruder : layer_tools.extruders)
@ -3027,7 +3023,7 @@ const std::vector<GCode::ObjectByExtruder::Island::Region>& GCode::ObjectByExtru
// This function takes the eec and appends its entities to either perimeters or infills of this Region (depending on the first parameter)
// It also saves pointer to ExtruderPerCopy struct (for each entity), that holds information about which extruders should be used for which copy.
void GCode::ObjectByExtruder::Island::Region::append(const std::string& type, const ExtrusionEntityCollection* eec, const ExtruderPerCopy* copies_extruder, unsigned int object_copies_num)
void GCode::ObjectByExtruder::Island::Region::append(const std::string& type, const ExtrusionEntityCollection* eec, const ExtruderPerCopy* copies_extruder, size_t object_copies_num)
{
// We are going to manipulate either perimeters or infills, exactly in the same way. Let's create pointers to the proper structure to not repeat ourselves:
ExtrusionEntityCollection* perimeters_or_infills = &infills;

View file

@ -246,7 +246,7 @@ protected:
std::vector<const ExtruderPerCopy*> perimeters_overrides;
// Appends perimeter/infill entities and writes don't indices of those that are not to be extruder as part of perimeter/infill wiping
void append(const std::string& type, const ExtrusionEntityCollection* eec, const ExtruderPerCopy* copy_extruders, unsigned int object_copies_num);
void append(const std::string& type, const ExtrusionEntityCollection* eec, const ExtruderPerCopy* copy_extruders, size_t object_copies_num);
};
std::vector<Region> by_region; // all extrusions for this island, grouped by regions

View file

@ -458,14 +458,14 @@ float WipingExtrusions::mark_wiping_extrusions(const Print& print, unsigned int
continue;
}
const auto& object = object_list[i];
const PrintObject* object = object_list[i];
// Finds this layer:
auto this_layer_it = std::find_if(object->layers().begin(), object->layers().end(), [&lt](const Layer* lay) { return std::abs(lt.print_z - lay->print_z)<EPSILON; });
if (this_layer_it == object->layers().end())
continue;
const Layer* this_layer = *this_layer_it;
unsigned int num_of_copies = object->copies().size();
size_t num_of_copies = object->copies().size();
for (unsigned int copy = 0; copy < num_of_copies; ++copy) { // iterate through copies first, so that we mark neighbouring infills to minimize travel moves
@ -494,7 +494,7 @@ float WipingExtrusions::mark_wiping_extrusions(const Print& print, unsigned int
if ((!is_entity_overridden(fill, copy) && fill->total_volume() > min_infill_volume)) { // this infill will be used to wipe this extruder
set_extruder_override(fill, copy, new_extruder, num_of_copies);
volume_to_wipe -= fill->total_volume();
volume_to_wipe -= float(fill->total_volume());
}
}
}
@ -512,7 +512,7 @@ float WipingExtrusions::mark_wiping_extrusions(const Print& print, unsigned int
if ((!is_entity_overridden(fill, copy) && fill->total_volume() > min_infill_volume)) {
set_extruder_override(fill, copy, new_extruder, num_of_copies);
volume_to_wipe -= fill->total_volume();
volume_to_wipe -= float(fill->total_volume());
}
}
}
@ -540,9 +540,9 @@ void WipingExtrusions::ensure_perimeters_infills_order(const Print& print)
if (this_layer_it == object->layers().end())
continue;
const Layer* this_layer = *this_layer_it;
unsigned int num_of_copies = object->copies().size();
size_t num_of_copies = object->copies().size();
for (unsigned int copy = 0; copy < num_of_copies; ++copy) { // iterate through copies first, so that we mark neighbouring infills to minimize travel moves
for (size_t copy = 0; copy < num_of_copies; ++copy) { // iterate through copies first, so that we mark neighbouring infills to minimize travel moves
for (size_t region_id = 0; region_id < object->region_volumes.size(); ++ region_id) {
const auto& region = *object->print()->regions()[region_id];
@ -598,7 +598,7 @@ void WipingExtrusions::ensure_perimeters_infills_order(const Print& print)
// so -1 was used as "print as usual".
// The resulting vector has to keep track of which extrusions are the ones that were overridden and which were not. In the extruder is used as overridden,
// its number is saved as it is (zero-based index). Usual extrusions are saved as -number-1 (unfortunately there is no negative zero).
const std::vector<int>* WipingExtrusions::get_extruder_overrides(const ExtrusionEntity* entity, int correct_extruder_id, int num_of_copies)
const std::vector<int>* WipingExtrusions::get_extruder_overrides(const ExtrusionEntity* entity, int correct_extruder_id, size_t num_of_copies)
{
auto entity_map_it = entity_map.find(entity);
if (entity_map_it == entity_map.end())

View file

@ -24,7 +24,7 @@ public:
}
// This is called from GCode::process_layer - see implementation for further comments:
const std::vector<int>* get_extruder_overrides(const ExtrusionEntity* entity, int correct_extruder_id, int num_of_copies);
const std::vector<int>* get_extruder_overrides(const ExtrusionEntity* entity, int correct_extruder_id, size_t num_of_copies);
// This function goes through all infill entities, decides which ones will be used for wiping and
// marks them by the extruder id. Returns volume that remains to be wiped on the wipe tower:
@ -44,7 +44,7 @@ private:
void set_extruder_override(const ExtrusionEntity* entity, unsigned int copy_id, int extruder, unsigned int num_of_copies);
// Returns true in case that entity is not printed with its usual extruder for a given copy:
bool is_entity_overridden(const ExtrusionEntity* entity, int copy_id) const {
bool is_entity_overridden(const ExtrusionEntity* entity, size_t copy_id) const {
return (entity_map.find(entity) == entity_map.end() ? false : entity_map.at(entity).at(copy_id) != -1);
}

View file

@ -184,7 +184,7 @@ public:
if (f != 0.f && f != m_current_feedrate) {
if (limit_volumetric_flow) {
float e_speed = e / (((len == 0) ? std::abs(e) : len) / f * 60.f);
float e_speed = e / (((len == 0.f) ? std::abs(e) : len) / f * 60.f);
f /= std::max(1.f, e_speed / m_filpar[m_current_tool].max_e_speed);
}
m_gcode += set_format_F(f);
@ -194,7 +194,7 @@ public:
m_current_pos.y() = y;
// Update the elapsed time with a rough estimate.
m_elapsed_time += ((len == 0) ? std::abs(e) : len) / m_current_feedrate * 60.f;
m_elapsed_time += ((len == 0.f) ? std::abs(e) : len) / m_current_feedrate * 60.f;
m_gcode += "\n";
return *this;
}
@ -387,14 +387,14 @@ public:
}
WipeTowerWriter& set_fan(unsigned int speed)
WipeTowerWriter& set_fan(unsigned speed)
{
if (speed == m_last_fan_speed)
return *this;
if (speed == 0)
m_gcode += "M107\n";
else
m_gcode += "M106 S" + std::to_string((size_t)(255.0 * speed / 100.0)) + "\n";
m_gcode += "M106 S" + std::to_string(unsigned(255.0 * speed / 100.0)) + "\n";
m_last_fan_speed = speed;
return *this;
}
@ -417,7 +417,7 @@ private:
float m_y_shift = 0.f;
float m_wipe_tower_width = 0.f;
float m_wipe_tower_depth = 0.f;
float m_last_fan_speed = 0.f;
unsigned m_last_fan_speed = 0.f;
int current_temp = -1;
const float m_default_analyzer_line_width;
float m_used_filament_length = 0.f;
@ -466,12 +466,12 @@ private:
WipeTower::WipeTower(const PrintConfig& config, const std::vector<std::vector<float>>& wiping_matrix, size_t initial_tool) :
m_semm(config.single_extruder_multi_material.value),
m_wipe_tower_pos(config.wipe_tower_x, config.wipe_tower_y),
m_wipe_tower_width(config.wipe_tower_width),
m_wipe_tower_rotation_angle(config.wipe_tower_rotation_angle),
m_wipe_tower_width(float(config.wipe_tower_width)),
m_wipe_tower_rotation_angle(float(config.wipe_tower_rotation_angle)),
m_y_shift(0.f),
m_z_pos(0.f),
m_is_first_layer(false),
m_bridging(config.wipe_tower_bridging),
m_bridging(float(config.wipe_tower_bridging)),
m_gcode_flavor(config.gcode_flavor),
m_current_tool(initial_tool),
wipe_volumes(wiping_matrix)
@ -479,16 +479,16 @@ WipeTower::WipeTower(const PrintConfig& config, const std::vector<std::vector<fl
// If this is a single extruder MM printer, we will use all the SE-specific config values.
// Otherwise, the defaults will be used to turn off the SE stuff.
if (m_semm) {
m_cooling_tube_retraction = config.cooling_tube_retraction;
m_cooling_tube_length = config.cooling_tube_length;
m_parking_pos_retraction = config.parking_pos_retraction;
m_extra_loading_move = config.extra_loading_move;
m_set_extruder_trimpot = config.high_current_on_filament_swap;
m_cooling_tube_retraction = float(config.cooling_tube_retraction);
m_cooling_tube_length = float(config.cooling_tube_length);
m_parking_pos_retraction = float(config.parking_pos_retraction);
m_extra_loading_move = float(config.extra_loading_move);
m_set_extruder_trimpot = config.high_current_on_filament_swap;
}
// Calculate where the priming lines should be - very naive test not detecting parallelograms or custom shapes
const std::vector<Vec2d>& bed_points = config.bed_shape.values;
m_bed_shape = (bed_points.size() == 4 ? RectangularBed : CircularBed);
m_bed_width = BoundingBoxf(bed_points).size().x();
m_bed_width = float(BoundingBoxf(bed_points).size().x());
}
@ -505,21 +505,21 @@ void WipeTower::set_extruder(size_t idx, const PrintConfig& config)
// If this is a single extruder MM printer, we will use all the SE-specific config values.
// Otherwise, the defaults will be used to turn off the SE stuff.
if (m_semm) {
m_filpar[idx].loading_speed = config.filament_loading_speed.get_at(idx);
m_filpar[idx].loading_speed_start = config.filament_loading_speed_start.get_at(idx);
m_filpar[idx].unloading_speed = config.filament_unloading_speed.get_at(idx);
m_filpar[idx].unloading_speed_start = config.filament_unloading_speed_start.get_at(idx);
m_filpar[idx].delay = config.filament_toolchange_delay.get_at(idx);
m_filpar[idx].loading_speed = float(config.filament_loading_speed.get_at(idx));
m_filpar[idx].loading_speed_start = float(config.filament_loading_speed_start.get_at(idx));
m_filpar[idx].unloading_speed = float(config.filament_unloading_speed.get_at(idx));
m_filpar[idx].unloading_speed_start = float(config.filament_unloading_speed_start.get_at(idx));
m_filpar[idx].delay = float(config.filament_toolchange_delay.get_at(idx));
m_filpar[idx].cooling_moves = config.filament_cooling_moves.get_at(idx);
m_filpar[idx].cooling_initial_speed = config.filament_cooling_initial_speed.get_at(idx);
m_filpar[idx].cooling_final_speed = config.filament_cooling_final_speed.get_at(idx);
m_filpar[idx].cooling_initial_speed = float(config.filament_cooling_initial_speed.get_at(idx));
m_filpar[idx].cooling_final_speed = float(config.filament_cooling_final_speed.get_at(idx));
}
m_filpar[idx].filament_area = float((M_PI/4.f) * pow(config.filament_diameter.get_at(idx), 2)); // all extruders are assumed to have the same filament diameter at this point
float nozzle_diameter = config.nozzle_diameter.get_at(idx);
float nozzle_diameter = float(config.nozzle_diameter.get_at(idx));
m_filpar[idx].nozzle_diameter = nozzle_diameter; // to be used in future with (non-single) multiextruder MM
float max_vol_speed = config.filament_max_volumetric_speed.get_at(idx);
float max_vol_speed = float(config.filament_max_volumetric_speed.get_at(idx));
if (max_vol_speed!= 0.f)
m_filpar[idx].max_e_speed = (max_vol_speed / filament_area());
@ -548,7 +548,7 @@ std::vector<WipeTower::ToolChangeResult> WipeTower::prime(
const std::vector<unsigned int> &tools,
// If true, the last priming are will be the same as the other priming areas, and the rest of the wipe will be performed inside the wipe tower.
// If false, the last priming are will be large enough to wipe the last extruder sufficiently.
bool last_wipe_inside_wipe_tower)
bool /*last_wipe_inside_wipe_tower*/)
{
this->set_layer(first_layer_height, first_layer_height, tools.size(), true, false);
this->m_current_tool = tools.front();
@ -683,7 +683,7 @@ WipeTower::ToolChangeResult WipeTower::tool_change(unsigned int tool, bool last_
box_coordinates cleaning_box(
Vec2f(m_perimeter_width / 2.f, m_perimeter_width / 2.f),
m_wipe_tower_width - m_perimeter_width,
(tool != (unsigned int)(-1) ? /*m_layer_info->depth*/wipe_area+m_depth_traversed-0.5*m_perimeter_width
(tool != (unsigned int)(-1) ? /*m_layer_info->depth*/wipe_area+m_depth_traversed-0.5f*m_perimeter_width
: m_wipe_tower_depth-m_perimeter_width));
WipeTowerWriter writer(m_layer_height, m_perimeter_width, m_gcode_flavor, m_filpar);
@ -789,7 +789,7 @@ WipeTower::ToolChangeResult WipeTower::toolchange_Brim(bool sideOnly, float y_of
// Extrude 4 rounds of a brim around the future wipe tower.
box_coordinates box(wipeTower_box);
for (size_t i = 0; i < 4; ++ i) {
box.expand(m_perimeter_width - m_layer_height*(1.f-M_PI_4)); // the brim shall have 'normal' spacing with no extra void space
box.expand(m_perimeter_width - m_layer_height*float(1.-M_PI_4)); // the brim shall have 'normal' spacing with no extra void space
writer.travel (box.ld, 7000)
.extrude(box.lu, 2100).extrude(box.ru)
.extrude(box.rd ).extrude(box.ld);
@ -898,8 +898,8 @@ void WipeTower::toolchange_Unload(
const float x = volume_to_length(m_filpar[m_current_tool].ramming_speed[i] * 0.25f, line_width, m_layer_height);
const float e = m_filpar[m_current_tool].ramming_speed[i] * 0.25f / filament_area(); // transform volume per sec to E move;
const float dist = std::min(x - e_done, remaining); // distance to travel for either the next 0.25s, or to the next turnaround
const float actual_time = dist/x * 0.25;
writer.ram(writer.x(), writer.x() + (m_left_to_right ? 1.f : -1.f) * dist, 0, 0, e * (dist / x), dist / (actual_time / 60.));
const float actual_time = dist/x * 0.25f;
writer.ram(writer.x(), writer.x() + (m_left_to_right ? 1.f : -1.f) * dist, 0.f, 0.f, e * (dist / x), dist / (actual_time / 60.f));
remaining -= dist;
if (remaining < WT_EPSILON) { // we reached a turning point
@ -1078,21 +1078,21 @@ void WipeTower::toolchange_Wipe(
float traversed_x = writer.x();
if (m_left_to_right)
writer.extrude(xr - (i % 4 == 0 ? 0 : 1.5*m_perimeter_width), writer.y(), wipe_speed * wipe_coeff);
writer.extrude(xr - (i % 4 == 0 ? 0 : 1.5f*m_perimeter_width), writer.y(), wipe_speed * wipe_coeff);
else
writer.extrude(xl + (i % 4 == 1 ? 0 : 1.5*m_perimeter_width), writer.y(), wipe_speed * wipe_coeff);
writer.extrude(xl + (i % 4 == 1 ? 0 : 1.5f*m_perimeter_width), writer.y(), wipe_speed * wipe_coeff);
if (writer.y()+EPSILON > cleaning_box.lu.y()-0.5f*m_perimeter_width)
if (writer.y()+float(EPSILON) > cleaning_box.lu.y()-0.5f*m_perimeter_width)
break; // in case next line would not fit
traversed_x -= writer.x();
x_to_wipe -= fabs(traversed_x);
x_to_wipe -= std::abs(traversed_x);
if (x_to_wipe < WT_EPSILON) {
writer.travel(m_left_to_right ? xl + 1.5*m_perimeter_width : xr - 1.5*m_perimeter_width, writer.y(), 7200);
writer.travel(m_left_to_right ? xl + 1.5f*m_perimeter_width : xr - 1.5f*m_perimeter_width, writer.y(), 7200);
break;
}
// stepping to the next line:
writer.extrude(writer.x() + (i % 4 == 0 ? -1.f : (i % 4 == 1 ? 1.f : 0.f)) * 1.5*m_perimeter_width, writer.y() + dy);
writer.extrude(writer.x() + (i % 4 == 0 ? -1.f : (i % 4 == 1 ? 1.f : 0.f)) * 1.5f*m_perimeter_width, writer.y() + dy);
m_left_to_right = !m_left_to_right;
}
@ -1175,7 +1175,7 @@ WipeTower::ToolChangeResult WipeTower::finish_layer()
writer.travel(fill_box.ld + Vec2f(m_perimeter_width * 2, 0.f))
.extrude(fill_box.lu + Vec2f(m_perimeter_width * 2, 0.f), 2900 * speed_factor);
const int n = 1+(right-left)/(m_bridging);
const int n = 1+int((right-left)/m_bridging);
const float dx = (right-left)/n;
for (int i=1;i<=n;++i) {
float x=left+dx*i;
@ -1254,7 +1254,7 @@ void WipeTower::plan_tower()
for (auto& layer : m_plan)
layer.depth = 0.f;
for (int layer_index = m_plan.size() - 1; layer_index >= 0; --layer_index)
for (int layer_index = int(m_plan.size()) - 1; layer_index >= 0; --layer_index)
{
float this_layer_depth = std::max(m_plan[layer_index].depth, m_plan[layer_index].toolchanges_depth());
m_plan[layer_index].depth = this_layer_depth;

View file

@ -108,7 +108,6 @@ static inline bool opts_equal(const DynamicConfig &config_old, const DynamicConf
std::vector<std::string> PlaceholderParser::config_diff(const DynamicPrintConfig &rhs)
{
const ConfigDef *def = rhs.def();
std::vector<std::string> diff_keys;
for (const t_config_option_key &opt_key : rhs.keys())
if (! opts_equal(m_config, rhs, opt_key))
@ -124,7 +123,6 @@ std::vector<std::string> PlaceholderParser::config_diff(const DynamicPrintConfig
// a current extruder ID is used.
bool PlaceholderParser::apply_config(const DynamicPrintConfig &rhs)
{
const ConfigDef *def = rhs.def();
bool modified = false;
for (const t_config_option_key &opt_key : rhs.keys()) {
if (! opts_equal(m_config, rhs, opt_key)) {

View file

@ -2049,7 +2049,7 @@ void PrintConfigDef::init_fff_params()
{
int threads = (unsigned int)boost::thread::hardware_concurrency();
def->set_default_value(new ConfigOptionInt(threads > 0 ? threads : 2));
def->cli == ConfigOptionDef::nocli;
def->cli = ConfigOptionDef::nocli;
}
def = this->add("toolchange_gcode", coString);

View file

@ -83,12 +83,14 @@ void PrintRegion::collect_object_printing_extruders(const PrintConfig &print_con
void PrintRegion::collect_object_printing_extruders(std::vector<unsigned int> &object_extruders) const
{
auto num_extruders = (int)print()->config().nozzle_diameter.size();
// PrintRegion, if used by some PrintObject, shall have all the extruders set to an existing printer extruder.
// If not, then there must be something wrong with the Print::apply() function.
#ifndef NDEBUG
auto num_extruders = (int)print()->config().nozzle_diameter.size();
assert(this->config().perimeter_extruder <= num_extruders);
assert(this->config().infill_extruder <= num_extruders);
assert(this->config().solid_infill_extruder <= num_extruders);
#endif
collect_object_printing_extruders(print()->config(), this->config(), object_extruders);
}

View file

@ -185,8 +185,6 @@ private:
SLAAutoSupports::Config m_config;
float m_supports_force_total = 0.f;
void process(const std::vector<ExPolygons>& slices, const std::vector<float>& heights);
void uniformly_cover(const ExPolygons& islands, Structure& structure, PointGrid3D &grid3d, bool is_new_island = false, bool just_one = false);
void project_onto_mesh(std::vector<sla::SupportPoint>& points) const;

View file

@ -676,7 +676,7 @@ std::string SLAPrint::validate() const
if(supports_en && !builtinpad.enabled && elv < pinhead_width )
return L(
"Elevation is too low for object. Use the \"Pad around "
"obect\" feature to print the object without elevation.");
"object\" feature to print the object without elevation.");
if(supports_en && builtinpad.enabled &&
cfg.pillar_base_safety_distance_mm < builtinpad.object_gap_mm) {

View file

@ -179,8 +179,7 @@ bool GUI_App::on_init_inner()
wxCHECK_MSG(wxDirExists(resources_dir), false,
wxString::Format("Resources path does not exist or is not a directory: %s", resources_dir));
//SetAppName(SLIC3R_APP_KEY);
SetAppName(SLIC3R_APP_KEY "-beta");
SetAppName(SLIC3R_APP_KEY);
SetAppDisplayName(SLIC3R_APP_NAME);
// Enable this to get the default Win32 COMCTRL32 behavior of static boxes.

View file

@ -135,7 +135,7 @@ wxSizer* ObjectLayers::create_layer(const t_layer_height_range& range)
auto temp = new wxStaticText(m_parent, wxID_ANY, _(L("mm")));
temp->SetBackgroundStyle(wxBG_STYLE_PAINT);
temp->SetFont(wxGetApp().normal_font());
sizer->Add(temp, 0, wxLEFT|wxRIGHT, wxGetApp().em_unit());
sizer->Add(temp, 0, wxLEFT, wxGetApp().em_unit());
m_grid_sizer->Add(sizer);
@ -154,16 +154,16 @@ void ObjectLayers::create_layers_list()
sizer->Add(del_btn, 0, wxRIGHT | wxLEFT, em_unit(m_parent));
del_btn->Bind(wxEVT_BUTTON, [this, range](wxEvent &event) {
del_btn->Bind(wxEVT_BUTTON, [range](wxEvent &) {
wxGetApp().obj_list()->del_layer_range(range);
});
auto add_btn = new ScalableButton(m_parent, wxID_ANY, m_bmp_add);
add_btn->SetToolTip(_(L("Add layer range")));
sizer->Add(add_btn, 0, wxRIGHT, em_unit(m_parent));
sizer->Add(add_btn);
add_btn->Bind(wxEVT_BUTTON, [this, range](wxEvent &event) {
add_btn->Bind(wxEVT_BUTTON, [range](wxEvent &) {
wxGetApp().obj_list()->add_layer_range_after_current(range);
});
}

View file

@ -2500,15 +2500,18 @@ void ObjectList::remove()
auto delete_item = [this](wxDataViewItem item)
{
wxDataViewItem parent = m_objects_model->GetParent(item);
if (m_objects_model->GetItemType(item) & itObject)
ItemType type = m_objects_model->GetItemType(item);
if (type & itObject)
delete_from_model_and_list(itObject, m_objects_model->GetIdByItem(item), -1);
else {
if (m_objects_model->GetItemType(item) & itLayer) {
if (type & (itLayer | itInstance)) {
// In case there is just one layer or two instances and we delete it, del_subobject_item will
// also remove the parent item. Selection should therefore pass to the top parent (object).
wxDataViewItemArray children;
if (m_objects_model->GetChildren(parent, children) == 1)
if (m_objects_model->GetChildren(parent, children) == (type & itLayer ? 1 : 2))
parent = m_objects_model->GetTopParent(item);
}
del_subobject_item(item);
}

View file

@ -625,6 +625,14 @@ void ObjectManipulation::update_reset_buttons_visibility()
m_reset_rotation_button->Show(show_rotation);
m_reset_scale_button->Show(show_scale);
m_drop_to_bed_button->Show(show_drop_to_bed);
// Because of CallAfter we need to layout sidebar after Show/hide of reset buttons one more time
Sidebar& panel = wxGetApp().sidebar();
if (!panel.IsFrozen()) {
panel.Freeze();
panel.Layout();
panel.Thaw();
}
});
}

View file

@ -634,7 +634,7 @@ void Preview::update_double_slider(const std::vector<double>& layers_z, bool kee
bool force_sliders_full_range = was_empty;
if (!keep_z_range)
{
bool span_changed = layers_z.empty() || std::abs(layers_z.back() - m_slider->GetMaxValueD()) > 1e-6;
bool span_changed = layers_z.empty() || std::abs(layers_z.back() - m_slider->GetMaxValueD()) > DoubleSlider::epsilon()/*1e-6*/;
force_sliders_full_range |= span_changed;
}
bool snap_to_min = force_sliders_full_range || m_slider->is_lower_at_min();
@ -650,12 +650,12 @@ void Preview::update_double_slider(const std::vector<double>& layers_z, bool kee
int idx_high = m_slider->GetMaxValue();
if (! layers_z.empty()) {
if (! snap_to_min) {
int idx_new = find_close_layer_idx(layers_z, z_low, 1e-6);
int idx_new = find_close_layer_idx(layers_z, z_low, DoubleSlider::epsilon()/*1e-6*/);
if (idx_new != -1)
idx_low = idx_new;
}
if (! snap_to_max) {
int idx_new = find_close_layer_idx(layers_z, z_high, 1e-6);
int idx_new = find_close_layer_idx(layers_z, z_high, DoubleSlider::epsilon()/*1e-6*/);
if (idx_new != -1)
idx_high = idx_new;
}
@ -691,7 +691,12 @@ void Preview::fill_slider_values(std::vector<std::pair<int, double>> &values,
std::vector<double> &ticks_from_config = (wxGetApp().preset_bundle->project_config.option<ConfigOptionFloats>("colorprint_heights"))->values;
unsigned int old_size = ticks_from_config.size();
ticks_from_config.erase(std::remove_if(ticks_from_config.begin(), ticks_from_config.end(),
[values](double val) { return values.back().second < val; }),
[values](double val)
{
return (values.back().second < val &&
// we can't ignore tick on last layer
fabs(values.back().second - val) > DoubleSlider::epsilon());
}),
ticks_from_config.end());
if (ticks_from_config.size() != old_size)
m_schedule_background_process();

View file

@ -308,7 +308,7 @@ void GLGizmoSlaSupports::render_points(const Selection& selection, bool picking)
}
else {
render_color[3] = 1.f;
if ((m_hover_id == i && m_editing_mode)) { // ignore hover state unless editing mode is active
if ((size_t(m_hover_id) == i && m_editing_mode)) { // ignore hover state unless editing mode is active
render_color[0] = 0.f;
render_color[1] = 1.0f;
render_color[2] = 1.0f;
@ -330,7 +330,7 @@ void GLGizmoSlaSupports::render_points(const Selection& selection, bool picking)
// Inverse matrix of the instance scaling is applied so that the mark does not scale with the object.
glsafe(::glPushMatrix());
glsafe(::glTranslated(support_point.pos(0), support_point.pos(1), support_point.pos(2)));
glsafe(::glTranslatef(support_point.pos(0), support_point.pos(1), support_point.pos(2)));
glsafe(::glMultMatrixd(instance_scaling_matrix_inverse.data()));
if (vol->is_left_handed())
@ -347,16 +347,16 @@ void GLGizmoSlaSupports::render_points(const Selection& selection, bool picking)
Eigen::AngleAxisd aa(q);
glsafe(::glRotated(aa.angle() * (180. / M_PI), aa.axis()(0), aa.axis()(1), aa.axis()(2)));
const float cone_radius = 0.25f; // mm
const float cone_height = 0.75f;
const double cone_radius = 0.25; // mm
const double cone_height = 0.75;
glsafe(::glPushMatrix());
glsafe(::glTranslatef(0.f, 0.f, support_point.head_front_radius * RenderPointScale));
::gluCylinder(m_quadric, 0.f, cone_radius, cone_height, 24, 1);
::gluCylinder(m_quadric, 0., cone_radius, cone_height, 24, 1);
glsafe(::glTranslatef(0.f, 0.f, cone_height));
::gluDisk(m_quadric, 0.0, cone_radius, 24, 1);
glsafe(::glPopMatrix());
}
::gluSphere(m_quadric, support_point.head_front_radius * RenderPointScale, 24, 12);
::gluSphere(m_quadric, (double)support_point.head_front_radius * RenderPointScale, 24, 12);
if (vol->is_left_handed())
glFrontFace(GL_CCW);
@ -777,7 +777,7 @@ std::vector<const ConfigOption*> GLGizmoSlaSupports::get_config_options(const st
}
void GLGizmoSlaSupports::update_cache_entry_normal(unsigned int i) const
void GLGizmoSlaSupports::update_cache_entry_normal(size_t i) const
{
int idx = 0;
Eigen::Matrix<float, 1, 3> pp = m_editing_cache[i].support_point.pos;

View file

@ -30,7 +30,7 @@ private:
ObjectID m_model_object_id = 0;
int m_active_instance = -1;
float m_active_instance_bb_radius; // to cache the bb
mutable float m_z_shift = 0.f;
mutable double m_z_shift = 0.f;
bool unproject_on_mesh(const Vec2d& mouse_pos, std::pair<Vec3f, Vec3f>& pos_and_normal);
const float RenderPointScale = 1.f;
@ -99,11 +99,9 @@ private:
void render_clipping_plane(const Selection& selection) const;
bool is_mesh_update_necessary() const;
void update_mesh();
void update_cache_entry_normal(unsigned int i) const;
void update_cache_entry_normal(size_t i) const;
bool unsaved_changes() const;
EState m_no_hover_state = Off;
EState m_no_hover_old_state = Off;
bool m_lock_unique_islands = false;
bool m_editing_mode = false; // Is editing mode active?
bool m_old_editing_state = false; // To keep track of whether the user toggled between the modes (needed for imgui refreshes).

View file

@ -1495,13 +1495,16 @@ void PresetBundle::update_platter_filament_ui(unsigned int idx_extruder, GUI::Pr
// To avoid the errors of number rounding for different combination of monitor configuration,
// let use scaled 8px, as a smallest icon unit
const int icon_unit = 8 * scale_f + 0.5f;
const int icon_height = 2 * icon_unit; //16 * scale_f + 0.5f;
const int normal_icon_width = 2 * icon_unit; //16 * scale_f + 0.5f;
const int thin_icon_width = icon_unit; //8 * scale_f + 0.5f;
const int wide_icon_width = 3 * icon_unit; //24 * scale_f + 0.5f;
const int space_icon_width = 2 * scale_f + 0.5f;
// To avoid asserts, each added bitmap to wxBitmapCombobox should be the same size, so
// set a bitmap height to m_bitmapLock->GetHeight()
const int icon_height = m_bitmapLock->GetHeight();//2 * icon_unit; //16 * scale_f + 0.5f;
for (int i = this->filaments().front().is_visible ? 0 : 1; i < int(this->filaments().size()); ++i) {
const Preset &preset = this->filaments.preset(i);
bool selected = this->filament_presets[idx_extruder] == preset.name;

View file

@ -545,6 +545,9 @@ void TabSLAMaterial::init_options_list()
void Tab::get_sys_and_mod_flags(const std::string& opt_key, bool& sys_page, bool& modified_page)
{
auto opt = m_options_list.find(opt_key);
if (opt == m_options_list.end())
return;
if (sys_page) sys_page = (opt->second & osSystemValue) != 0;
modified_page |= (opt->second & osInitValue) == 0;
}

View file

@ -2201,9 +2201,10 @@ std::vector<double> DoubleSlider::GetTicksValues() const
{
std::vector<double> values;
const int val_size = m_values.size();
if (!m_values.empty())
for (auto tick : m_ticks) {
if (tick > m_values.size())
for (int tick : m_ticks) {
if (tick > val_size)
break;
values.push_back(m_values[tick].second);
}
@ -2221,9 +2222,10 @@ void DoubleSlider::SetTicksValues(const std::vector<double>& heights)
m_ticks.clear();
unsigned int i = 0;
for (auto h : heights) {
while (i < m_values.size() && m_values[i].second - 1e-6 < h)
while (i < m_values.size() && m_values[i].second - epsilon()/*1e-6*/ < h)
++i;
if (i == m_values.size())
// don't miss last layer if it is
if (i == m_values.size() && fabs(m_values[i-1].second - h) > epsilon())
return;
m_ticks.insert(i-1);
}
@ -2298,6 +2300,10 @@ void DoubleSlider::draw_action_icon(wxDC& dc, const wxPoint pt_beg, const wxPoin
{
const int tick = m_selection == ssLower ? m_lower_value : m_higher_value;
// suppress add tick on first layer
if (tick == 0)
return;
wxBitmap* icon = m_is_action_icon_focesed ? &m_bmp_add_tick_off.bmp() : &m_bmp_add_tick_on.bmp();
if (m_ticks.find(tick) != m_ticks.end())
icon = m_is_action_icon_focesed ? &m_bmp_del_tick_off.bmp() : &m_bmp_del_tick_on.bmp();

View file

@ -720,6 +720,9 @@ public:
const wxString& name = wxEmptyString);
~DoubleSlider() {}
// permissible error for layer height
static double epsilon() { return 0.0011;}
void msw_rescale();
int GetMinValue() const { return m_min_value; }

View file

@ -3,7 +3,7 @@
set(SLIC3R_APP_NAME "PrusaSlicer")
set(SLIC3R_APP_KEY "PrusaSlicer")
set(SLIC3R_VERSION "2.1.0-beta3")
set(SLIC3R_VERSION "2.1.0-rc")
set(SLIC3R_BUILD_ID "PrusaSlicer-${SLIC3R_VERSION}+UNKNOWN")
set(SLIC3R_RC_VERSION "2,1,0,0")
set(SLIC3R_RC_VERSION_DOTS "2.1.0.0")