Codigos contador de capas para Cura y LCD



  • hay algo para que permanezca el numero como antes?



  • si se puede bien y si no..da igual así esta genial¡¡



  • OK tienes razon ,ahora lo miro y te digo algo es cuando toca el final de carrera del eje X



  • Ale @{prusai3} ya lo tienes arreglado y mandado, espero que este sea el definitivo. Ahora ya se queda el numero de capa y no se borra, eso espero 😄



  • Pues definitivamente es el definitivo¡¡¡ ya la cuenta bien con su capa correspondiente y cuando termina de imprimir para en la ultima capa y se mantiene

    Todo ok y perfecto¡¡



  • ahora el asunto es el tiempo 😕

    tengo el post http://www.mibqyyo.com/comunidad/discussion/65821/tiempo-de-impresión-no-para-o-o/p1

    ahora si puedo cargar el .hex para poder hacer que el tiempo se quede a 00:00 cuando termina de imprimir y que no continue como loco.. he impreso hace nada una polea de 10 minutos y ahora esta en 29 minutos de impresión estando totalmente parada menos los veniladores



  •  1 El codigo esta cambiado para el lcd de la Hephestos.
     2 El Marlin al cual le he echo las modificaciones es el original , no es el de la Hephestos, pero si es la ultima version son iguales.
     3 Te puedo decir lo que tienes que añadir , pero puede ser un poco complicado , los archivos  a los cuales les he añadido codigo han sido :
            Marlin_main.cpp : Aqui es donde le he añadido el nuevo comando M116
            Ultralcd.h :   Aqui es donde declaro la nueva funcion para pasar los datos , void Altura_capa (float capa)
            Ultralcd.cpp : Aqui es donde añado la funcion que pasa los datos y declaro la va. Altura.
                                     float altura;
                                     void Altura_capa ( float dato)
                                                    {
                                                        Altura = dato;
                                                        SERIAL_PROTOCOLLN(dato); // esto es para comprobar que pasa bien
                                                                                                         el dato.
                                                     }
             ULTRALCD_IMPLEMENTATION_HITACHI_HD44780.h : Aqui añado para que imprima en el LCD, lo de                                                                                             rojo es lo que he añadido.
                                                    lcd.print('Z');
                                                   if (axis_known_position[Z_AXIS])
                                                         {
                                                         lcd.print(ftostr32sp(current_position[Z_AXIS] + 0.00001));
                                                         lcd.setCursor(LCD_WIDTH - 4, 0);
                                                         lcd.print('L');
                                                         lcd.print(ftostr3(current_position[Z_AXIS]/Altura));
                                                         }
                                                          else
                                                               lcd_printPGM(PSTR("---.--"));
      4. O me puedes pasar tu Marlin y te lo modifico, con que me pases esos ficheros tengo suficiente.     
    Hola podrias especificar mejor el codigo para los que no tenemos idea de programacion?? Gracias


  • Hola @{josebenito}  a que te refieres con especificar mejor el codigo . A donde esta puesto o que hace cada funcion ¿?.



  • como as añadido el comando M116 y que as escrito, donde escribes todo el codigo que pones
    si escribo el codigo me da error en el buzzer.h



  • A ver :
    En el fichero Marlin_main.cpp :
    Esto entre los comandos case 115 y case 118 sobre la linea de codigo 5959 mas o menos
    case 116:
             // M116
            gcode_M116 ();
            break; 
    Esto donde se definen las funciones de los comandos sobre la linea 4320
    inline void gcode_M116()
        { abrir  llaves
      if (code_seen('S')) Altura_capa (code_value());
       else Altura_capa (0.2);
      
         } cerrar llaves
     En el fichero Ultralcd.cpp :

    sbre la linea 32 al principio donde se declaran las variables
    float JADC ;

    socbtre la linea 1763
    void Altura_capa ( float altura)
     { abrir llaves
      JADC = altura;
      SERIAL_PROTOCOLLN(altura);
      } cerrar llaves
    Y por ultimo en el fichero
    ULTRALCD_IMPLEMENTATION_HITACHI_HD44780.h
                                                  lcd.print('Z');
                                                   if (axis_known_position[Z_AXIS])
                                                        
                                                         lcd.print(ftostr32sp(current_position[Z_AXIS] + 0.00001));
                                                         lcd.setCursor(LCD_WIDTH - 4, 0);
                                                         lcd.print('L');
                                                         lcd.print(ftostr3(current_position[Z_AXIS]/Altura));
                                                        
                                                          else
                                                               lcd_printPGM(PSTR("---.--"));
    LO rojo es lo que hay que añadir.
    Pd El caracter de las llaves no sale no se por que , pero al principio de las funciones y al final hay que poner las llaves   { }



  • me da este error
    'Altura_capa' was not declared in this scope

    (tengo la full smart graphics lcd activada)



  • Los cambios estan hechos para la ULTRA_LCD , osea la pantalla que trae
    por defecto la hephestos. Si tienes puesto otro display , este caso la
    full smart graphics lcd,  ya no son los mismos. De todas formas creo que
    el error ese no te lo tendria que dar, comprueba que la funcion
    Altura_capa () este declara en el fichero ultracd.cpp (respeta
    mayusculas y minusculas).



  • Hola he hecho todo lo que me dices y sigue sin funcionarme, el codigo y yo no nos llevamos bien



  • hola buenas siento reabrir el post..pero estoy intentado agregar tu codigo a marlin 2.5.1 para bq pero me sale el siguiente error:

    make: *** [bin/ultralcd.o] Error 1
    "  CXX   ultralcd.cpp"
    In file included from ultralcd.cpp:110:0:
    ultralcd_implementation_hitachi_HD44780.h: In function 'void lcd_implementation_status_screen()':
    ultralcd_implementation_hitachi_HD44780.h:348:46: error: 'altura' was not declared in this scope
       lcd.print(ftostr3(current_position[Z_AXIS]/altura));
    si alguien me puede ayudar---Gracias¡¡