Merge branch 'dev' of https://github.com/Prusa3d/PrusaSlicer into dev
This commit is contained in:
commit
d2ac827137
32 changed files with 1095 additions and 1163 deletions
Binary file not shown.
|
@ -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."
|
||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
File diff suppressed because it is too large
Load diff
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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(), [<](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())
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)) {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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).
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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; }
|
||||
|
|
|
@ -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")
|
||||
|
|
Loading…
Reference in a new issue