Extruder offsets

Hi everybody,

I think I need some help again. For reference, my forked and edited repetier repository is in here:

https://github.com/Anteino/Repetier-Firmware/tree/500XL-Minimal/src/ArduinoDUE/Repetier

In ui.cpp you will find my custom bed leveling routine, starting on line 2453. I think the workflow is pretty straightforward. You turn the knob until the nozzle is exactly 5 mm removed from the bed (we have a special 5 mm tool to measure this.. a drill bit). On clicking, the current offset is saved to Extruder::current->offsetZ and Printer::offsetZ and is then saved to the eeprom. This works fine for the first nozzle. However, after that, the printer switches to the right nozzle.

For some reason, I don't know how, the offset of the left nozzle is always added to the offset found for the right nozzle. Let me demonstrate two possible cases with their outcome. 

  • When starting the bed leveling routine, the left extruder is selected firstly. You rotate the button until the display says 5.00 mm. Therefore the offset of the left nozzle becomes 0.00. This isn't correct but bear with me. After this, the right nozzle gets selected, you rotate the button until the nozzle touches the 5.00 mm tool. The display now says 4.75. The offset of the right nozzle is thus -0.25 mm. This is saved to the eeprom. The bed leveling routine is finished.
  • This time we are going to accurately level the left extruder. You rotate until the nozzle touches the tool. The display says 4.00 mm, the offset of the left nozzle becomes -1.00 mm (this is actually correct, I checked). Now you do the same thing for the right nozzle. Again, you turn until the nozzle touches the tool and the display says 4.75 once again. However, the offset now gets saved as -1.25 mm instead of the (correct) value of -0.25 mm. It looks like the offset of the left nozzle is added to that of the right.
As you can see, you can always only get one of the offsets right. Of course I could manually set the values I measured but this bed leveling routine needs to be fool proof since stupid people have to be able to level the printer with very few simple steps. It must be something very obvious I'm missing here. Just subtracting the offset of the left nozzle from that found for the right nozzle seems to fix the problem but it's an awkward solution which is probably going to produce weird results in the future.

You can post your paypal account if you like so I can buy you a beer.

Comments

  • i do not understand why you are constantly changing z offsets for autoleveling. Sounds more like you calibrate extruder offsets.

    Extruder 0 zOffset should always be 0 as this is the reference. All other extruders z offset is relative to this extruder height. So to calibrate extruder offsets just set e0 to 0 and calibrate on your 5mm. Switch extruder (which changes z already to compensate to current z offset without changing coordinates), measure correction to your 5mm and add correction to z offset. That is how you should calibrate extruder offsets. Do not start with also adding G92 offsets. That might confuse easily.
  • Repetier said:
    i do not understand why you are constantly changing z offsets for autoleveling. Sounds more like you calibrate extruder offsets.
    I am indeed calibrating them. I cannot set extruder0 offsetZ to zero because then it will want to go "through" the plate. In other words, after homing the Z axis the distance between extruder0 and the build plate is -0.25 mm. 
  • So you have misused extruder offset to calibrate homing position?

    I mean you can change it at Z=10 and it will work there not going through plate. Then of course you need to calibrate z min endstop (i think you have that) or z probe height so that z homing is at the right height for extruder 0 and then start calibrating the reminding extruders. 

    Having to many offsets correcting errors they were not designed for just makes everything very complicated.
  • I guess so then. How'd you suggest going around this problem? By the way, why is there an extruder0 offset when it may only be zero?
  • Because all extruders have the same class and data. And I do not say it is not possible to set it, but then you have no reference any more resp. have to add values to all others to get right reference.

    Solution is what I already said. Make e0 offset 0 and calibrate homing for that offset and then continue. How depends on homing direction and if you use z probe of endstop.
  • Repetier said:
    Solution is what I already said. Make e0 offset 0 and calibrate homing for that offset and then continue. How depends on homing direction and if you use z probe of endstop.
    I have an endstop in the Z-direction. I guess my real question is: how would I go about calibrating homing when offsetZ e0 = 0? The first thing that pops into my mind is to use G92 but you already told me not to mess with that.
  • In which z direction? For max you just change z length by the offset you remove. For min direction you should be able to adjust endstop position/trigger point or bed height with some screws.
  • Repetier said:
    For min direction you should be able to adjust endstop position/trigger point or bed height with some screws.
    That is not possible for us unfortunately. I think I will add a new entry in the eeprom to account for this offset instead of using offset0.
  • You can set home to go a bit up after homing and then take that at 0. Would work at least and no extra variable. Or always remember to add extruder0 offset. Adding a new var seems overkill.
  • I agree but that a bit up after homing needs to be variable so it can be calibrated with a wizard.
  • edited January 2018
    Well, I searched my ass off but nowhere can I find something like this: Extruder::current->zOffset = extruder[0]->zOffset + extruder[Extruder::current->id]->zOffset like I expected. Where is the extruder offset for tool 1 defined relative to tool 0?

    I would like to NOT define extruder1->zOffset relative to extruder0->zOffset but rather define both of them to absolute zero since I have no way of physically calibrating my endstop position.
  • It's done in Extruder::selectExtruderById

        if(Printer::isHomedAll() && next->zOffset < current->zOffset) { // prevent extruder from hitting bed - move bed down a bit

            Printer::offsetZ = -next->zOffset * Printer::invAxisStepsPerMM[Z_AXIS];

    is one case. There is another one if new offset is higher then current. So it is relative to current selected. And I guess on homing it uses the offset of current to add to z as well.



  • edited January 2018
    You're a life saver! This has been bugging me for quite some weeks now. I donated 20 euros for all your help over the last few months.
  • Also I had these (dutch) translations ready. 

    #define UI_TEXT_ON_NL               "Aan"
    #define UI_TEXT_OFF_NL              "Uit"
    #define UI_TEXT_NA_NL               "Nvt" // Output for not available
    #define UI_TEXT_YES_NL              "Ja"
    #define UI_TEXT_NO_NL               "Nee"
    #define UI_TEXT_PRINT_POS_NL        "Printen..."
    #define UI_TEXT_PRINTING_NL         "Printen"
    #define UI_TEXT_IDLE_NL             "Rust"
    #define UI_TEXT_NOSDCARD_NL         "Geen SD kaart"
    #define UI_TEXT_ERROR_NL            "**** FOUT ****"
    #define UI_TEXT_BACK_NL             "Terug " cUP
    #define UI_TEXT_QUICK_SETTINGS_NL   "Snelle instellingen"
    #define UI_TEXT_ERRORMSG_NL         "%oe"
    #define UI_TEXT_CONFIGURATION_NL    "Configuratie"
    #define UI_TEXT_POSITION_NL         "Positie"
    #define UI_TEXT_EXTRUDER_NL         "Extruder"
    #define UI_TEXT_SD_CARD_NL          "Print"
    #define UI_TEXT_DEBUGGING_NL        "Debugging"
    #define UI_TEXT_HOME_DELTA_NL       "Home delta"
    #define UI_TEXT_HOME_ALL_NL         "Home alles"
    #define UI_TEXT_HOME_X_NL           "Home X"
    #define UI_TEXT_HOME_Y_NL           "Home Y"
    #define UI_TEXT_HOME_Z_NL           "Home Z"
    #define UI_TEXT_PREHEAT_PLA_NL      "Voorverwarmen PLA"
    #define UI_TEXT_PREHEAT_ABS_NL      "Voorverwarmen ABS"
    #define UI_TEXT_LIGHTS_ONOFF_NL     "Lichten:%lo"
    #define UI_TEXT_COOLDOWN_NL         "Koel af"
    #define UI_TEXT_SET_TO_ORIGIN_NL    "Zet nulpunt"
    #define UI_TEXT_DISABLE_STEPPER_NL  "Zet motor uit"
    #define UI_TEXT_X_POSITION_NL       "X positie"
    #define UI_TEXT_X_POS_FAST_NL       "X pos. snel"
    #define UI_TEXT_Y_POSITION_NL       "Y positie"
    #define UI_TEXT_Y_POS_FAST_NL       "Y pos. snel"
    #define UI_TEXT_Z_POSITION_NL       "Z positie"
    #define UI_TEXT_Z_POS_FAST_NL       "Z pos. snel"
    #define UI_TEXT_E_POSITION_NL       "Extra positie"
    #define UI_TEXT_BED_TEMP_NL         "Bed temp:%eb/%Eb" cDEG "C"
    #define UI_TEXT_EXTR0_TEMP_NL       "Temp. 1 :%e0/%E0" cDEG "C"
    #define UI_TEXT_EXTR1_TEMP_NL       "Temp. 2 :%e1/%E1" cDEG "C"
    #define UI_TEXT_EXTR2_TEMP_NL       "Temp. 3 :%e2/%E2" cDEG "C"
    #define UI_TEXT_EXTR0_OFF_NL        "Extruder 1 uit"
    #define UI_TEXT_EXTR1_OFF_NL        "Extruder 2 uit"
    #define UI_TEXT_EXTR2_OFF_NL        "Extruder 3 uit"
    #define UI_TEXT_EXTR0_SELECT_NL     "%X0 Select extr. 1"
    #define UI_TEXT_EXTR1_SELECT_NL     "%X1 Select extr. 2"
    #define UI_TEXT_EXTR2_SELECT_NL     "%X2 Select extr. 3"
    #define UI_TEXT_EXTR_ORIGIN_NL      "Zet nulpunt"
    #define UI_TEXT_PRINT_X_NL          "Print X:%ax"
    #define UI_TEXT_PRINT_Y_NL          "Print Y:%ay"
    #define UI_TEXT_PRINT_Z_NL          "Print Z:%az"
    #define UI_TEXT_PRINT_Z_DELTA_NL    "Print:%az"
    #define UI_TEXT_MOVE_X_NL           "Beweeg X:%aX"
    #define UI_TEXT_MOVE_Y_NL           "Beweeg Y:%aY"
    #define UI_TEXT_MOVE_Z_NL           "Beweeg Z:%aZ"
    #define UI_TEXT_MOVE_Z_DELTA_NL     "Beweeg:%aZ"
    #define UI_TEXT_JERK_NL             "Ruk:%aj"
    #define UI_TEXT_ZJERK_NL            "Z-Ruk:%aJ"
    #define UI_TEXT_ACCELERATION_NL     "Acceleratie"
    #define UI_TEXT_STORE_TO_EEPROM_NL  "Opslaan naar EEPROM"
    #define UI_TEXT_LOAD_EEPROM_NL      "Laden van EEPROM"
    #define UI_TEXT_DBG_ECHO_NL         "Echo     :%do"
    #define UI_TEXT_DBG_INFO_NL         "Info     :%di"
    #define UI_TEXT_DBG_ERROR_NL        "Fouten   :%de"
    #define UI_TEXT_DBG_DRYRUN_NL       "Droogloop:%dd"
    #define UI_TEXT_DBG_ENDSTOP_NL      "EndStop  :%dp"
    #define UI_TEXT_OPS_OFF_NL          "%O0 OPS Uit"
    #define UI_TEXT_OPS_CLASSIC_NL      "%O1 OPS Klassiek"
    #define UI_TEXT_OPS_FAST_NL         "%O2 OPS Snel"
    #define UI_TEXT_OPS_RETRACT_NL      "Terugtrekken:%Or"
    #define UI_TEXT_OPS_BACKSLASH_NL    "Backsl. :%Ob"
    #define UI_TEXT_OPS_MINDIST_NL      "Min. afstand:%Od"
    #define UI_TEXT_OPS_MOVE_AFTER_NL   "Beweeg na:%Oa"
    #define UI_TEXT_ANTI_OOZE_NL        "Anti lek"
    #define UI_TEXT_PRINT_FILE_NL       "Print bestand"
    #define UI_TEXT_PAUSE_PRINT_NL      "Pauzeer print"
    #define UI_TEXT_CONTINUE_PRINT_NL   "Zet print voort"
    #define UI_TEXT_UNMOUNT_CARD_NL     "Ontkoppel kaart"
    #define UI_TEXT_MOUNT_CARD_NL       "Koppel kaart"
    #define UI_TEXT_DELETE_FILE_NL      "Verw. bestand"
    #define UI_TEXT_FEEDRATE_NL         "Beweeg snelheid"
    #define UI_TEXT_FEED_MAX_X_NL       "Max X:%fx"
    #define UI_TEXT_FEED_MAX_Y_NL       "Max Y:%fy"
    #define UI_TEXT_FEED_MAX_Z_NL       "Max Z:%fz"
    #define UI_TEXT_FEED_MAX_Z_DELTA_NL "Max:%fz"
    #define UI_TEXT_FEED_HOME_X_NL      "Home X:%fX"
    #define UI_TEXT_FEED_HOME_Y_NL      "Home Y:%fY"
    #define UI_TEXT_FEED_HOME_Z_NL      "Home Z:%fZ"
    #define UI_TEXT_FEED_HOME_Z_DELTA_NL "Home:%fZ"
    #define UI_TEXT_ACTION_XPOSITION4A_NL "X:%x0 mm"
    #define UI_TEXT_ACTION_XPOSITION4B_NL "Min eindst.:%sx"
    #define UI_TEXT_ACTION_XPOSITION4C_NL "Max eindst.:%sX"
    #define UI_TEXT_ACTION_XPOSITION4D_NL ""
    #define UI_TEXT_ACTION_YPOSITION4A_NL "Y:%x1 mm"
    #define UI_TEXT_ACTION_YPOSITION4B_NL "Min eindst.:%sy"
    #define UI_TEXT_ACTION_YPOSITION4C_NL "Max eindst.:%sY"
    #define UI_TEXT_ACTION_YPOSITION4D_NL ""
    #define UI_TEXT_ACTION_ZPOSITION4A_NL "Z:%x2 mm"
    #define UI_TEXT_ACTION_ZPOSITION4B_NL "Min eindst.:%sz"
    #define UI_TEXT_ACTION_ZPOSITION4C_NL "Max eindst.:%sZ"
    #define UI_TEXT_ACTION_ZPOSITION4D_NL ""
    #define UI_TEXT_ACTION_XPOSITION_FAST4A_NL "X:%x0 mm"
    #define UI_TEXT_ACTION_XPOSITION_FAST4B_NL "Min eindst.:%sx"
    #define UI_TEXT_ACTION_XPOSITION_FAST4C_NL "Max eindst.:%sX"
    #define UI_TEXT_ACTION_XPOSITION_FAST4D_NL ""
    #define UI_TEXT_ACTION_YPOSITION_FAST4A_NL "Y:%x1 mm"
    #define UI_TEXT_ACTION_YPOSITION_FAST4B_NL "Min eindst.:%sy"
    #define UI_TEXT_ACTION_YPOSITION_FAST4C_NL "Max eindst.:%sY"
    #define UI_TEXT_ACTION_YPOSITION_FAST4D_NL ""
    #define UI_TEXT_ACTION_ZPOSITION_FAST4A_NL "Z:%x2 mm"
    #define UI_TEXT_ACTION_ZPOSITION_FAST4B_NL "Min eindst.:%sz"
    #define UI_TEXT_ACTION_ZPOSITION_FAST4C_NL "Max eindst.:%sZ"
    #define UI_TEXT_ACTION_ZPOSITION_FAST4D_NL ""
    #define UI_TEXT_ACTION_EPOSITION_FAST2A_NL "E:%x3 mm"
    #define UI_TEXT_ACTION_EPOSITION_FAST2B_NL "1 klik = 1 mm"
    #define UI_TEXT_ACTION_XPOSITION2A_NL "X:%x0 mm"
    #define UI_TEXT_ACTION_XPOSITION2B_NL "Min:%sx Max:%sX"
    #define UI_TEXT_ACTION_YPOSITION2A_NL "Y:%x1 mm"
    #define UI_TEXT_ACTION_YPOSITION2B_NL "Min:%sy Max:%sY"
    #define UI_TEXT_ACTION_ZPOSITION2A_NL "Z:%x2 mm"
    #define UI_TEXT_ACTION_ZPOSITION2B_NL "Min:%sz Max:%sZ"
    #define UI_TEXT_ACTION_XPOSITION_FAST2A_NL "X:%x0 mm"
    #define UI_TEXT_ACTION_XPOSITION_FAST2B_NL "Min:%sx Max:%sX"
    #define UI_TEXT_ACTION_YPOSITION_FAST2A_NL "Y:%x1 mm"
    #define UI_TEXT_ACTION_YPOSITION_FAST2B_NL "Min:%sy Max:%sY"
    #define UI_TEXT_ACTION_ZPOSITION_FAST2A_NL "Z:%x2 mm"
    #define UI_TEXT_ACTION_ZPOSITION_FAST2B_NL "Min:%sz Max:%sZ"
    #define UI_TEXT_FANSPEED_NL          "Fan snelheid"
    #define UI_TEXT_FAN_OFF_NL           "Zet fan uit"
    #define UI_TEXT_ACTION_FANSPEED_NL   "Fan snelheid:%Fs%%%"
    #define UI_TEXT_FAN_25_NL            "Zet fan 25%%%"
    #define UI_TEXT_FAN_50_NL            "Zet fan 50%%%"
    #define UI_TEXT_FAN_75_NL            "Zet fan 75%%%"
    #define UI_TEXT_FAN_FULL_NL          "Zet fan vol aan"
    #define UI_TEXT_STEPPER_INACTIVE_NL  "Motor inactief"
    #define UI_TEXT_STEPPER_INACTIVE2A_NL "Uit na: %is"
    #define UI_TEXT_STEPPER_INACTIVE2B_NL "[min] 0=Off"
    #define UI_TEXT_POWER_INACTIVE_NL    "Max. inactief"
    #define UI_TEXT_POWER_INACTIVE2A_NL   "Zet uit na: %ip"
    #define UI_TEXT_POWER_INACTIVE2B_NL   "[min] 0=Off"
    #define UI_TEXT_GENERAL_NL           "Algemeen"
    #define UI_TEXT_BAUDRATE_NL          "Baudrate:%oc"
    #define UI_TEXT_EXTR_STEPS_NL        "Stappen/MM:%Se"
    #define UI_TEXT_EXTR_START_FEED_NL   "Start sn.:%Xf"
    #define UI_TEXT_EXTR_MAX_FEED_NL     "Max sn.:%XF"
    #define UI_TEXT_EXTR_ACCEL_NL        "Accel:%XA"
    #define UI_TEXT_EXTR_WATCH_NL        "Stab.tijd:%Xw"
    #define UI_TEXT_EXTR_ADVANCE_L_NL    "Advance lin:%Xl"
    #define UI_TEXT_EXTR_ADVANCE_K_NL    "Advance quad:%Xa"
    #define UI_TEXT_EXTR_MANAGER_NL      "Control:%Xh"
    #define UI_TEXT_EXTR_PGAIN_NL        "PID P:%Xp"
    #define UI_TEXT_EXTR_DEADTIME_NL     "Dode tijd:%Xp"
    #define UI_TEXT_EXTR_DMAX_DT_NL      "Controle PWM:%XM"
    #define UI_TEXT_EXTR_IGAIN_NL        "PID I:%Xi"
    #define UI_TEXT_EXTR_DGAIN_NL        "PID D:%Xd"
    #define UI_TEXT_EXTR_DMIN_NL         "Drive min:%Xm"
    #define UI_TEXT_EXTR_DMAX_NL         "Drive max:%XM"
    #define UI_TEXT_EXTR_PMAX_NL         "PID max:%XD"
    #define UI_TEXT_EXTR_XOFF_NL         "X-Offset:%Xx"
    #define UI_TEXT_EXTR_YOFF_NL         "Y-Offset:%Xy"
    #define UI_TEXT_EXTR_ZOFF_NL         "Z-Offset:%Xz"
    #define UI_TEXT_STRING_HM_BANGBANG_NL "BangBang"
    #define UI_TEXT_STRING_HM_PID_NL     "PID"
    #define UI_TEXT_STRING_ACTION_NL     "Actie:%la"
    #define UI_TEXT_HEATING_EXTRUDER_NL  "Opwarmen extr."
    #define UI_TEXT_HEATING_BED_NL       "Opwarmen bed"
    #define UI_TEXT_KILLED_NL            "Uitgeschakeld"
    #define UI_TEXT_STEPPER_DISABLED_NL  "Motor uitgezet"
    #define UI_TEXT_EEPROM_STOREDA_NL     "Configuratie"
    #define UI_TEXT_EEPROM_STOREDB_NL     "Opgeslagen in EEPROM"
    #define UI_TEXT_EEPROM_LOADEDA_NL     "Configuratie"
    #define UI_TEXT_EEPROM_LOADEDB_NL     "EEPROM ingeladen"
    #define UI_TEXT_UPLOADING_NL         "Uploaden..."
    #define UI_TEXT_PAGE_BUFFER_NL       "Buffer:%oB"
    #define UI_TEXT_PAGE_EXTRUDER_NL     " E:%ec/%Ec" cDEG "C" cARROW "%oC"
    #define UI_TEXT_PAGE_EXTRUDER1_NL     "E1:%e0/%E0" cDEG "C" cARROW "%o0"
    #define UI_TEXT_PAGE_EXTRUDER2_NL     "E2:%e1/%E1" cDEG "C" cARROW "%o1"
    #define UI_TEXT_PAGE_EXTRUDER3_NL     "E3:%e2/%E2" cDEG "C" cARROW "%o2"
    #define UI_TEXT_PAGE_BED_NL          " B:%eb/%Eb" cDEG "C" cARROW "%ob"
    #define UI_TEXT_SPEED_MULTIPLY_NL    "Snelh. mul.:%om%%%"
    #define UI_TEXT_FLOW_MULTIPLY_NL     "Flow mul.:%of%%%"
    #define UI_TEXT_SHOW_MEASUREMENT_NL  "Laat meting zien"
    #define UI_TEXT_RESET_MEASUREMENT_NL "Herstel meting"
    #define UI_TEXT_SET_MEASURED_ORIGIN_NL "Zet Z=0"
    #define UI_TEXT_ZCALIB_NL             "Z calib."
    #define UI_TEXT_SET_P1_NL            "Zet P1"
    #define UI_TEXT_SET_P2_NL            "Zet P2"
    #define UI_TEXT_SET_P3_NL            "Zet P3"
    #define UI_TEXT_CALCULATE_LEVELING_NL "Bereken leveling"
    #define UI_TEXT_LEVEL_NL             "Level delta"
    #define UI_TEXT_EXTR_WAIT_RETRACT_TEMP_NL "Wacht temp. %XT" cDEG "C"
    #define UI_TEXT_EXTR_WAIT_RETRACT_UNITS_NL "Wacht retr.:%XU mm"
    #define UI_TEXT_SD_REMOVED_NL       "SD-kaart verwijderd"
    #define UI_TEXT_SD_INSERTED_NL      "SD-kaart geplaatst"
    #define UI_TEXT_PRINTER_READY_NL    "Printer klaar."
    // Printtime output gets aggregated like <Days_5gisgits>UI_TEXT_PRINTTIME_DAYS<Hours>UI_TEXT_PRINTTIME_HOURS<Minutes>UI_TEXT_PRINTTIME_MINUTES
    // ___88 days 12:45
    #define UI_TEXT_PRINTTIME_DAYS_NL   " dagen "
    #define UI_TEXT_PRINTTIME_HOURS_NL  ":"
    #define UI_TEXT_PRINTTIME_MINUTES_NL ""
    #define UI_TEXT_PRINT_TIME_NL     "Print tijd"
    #define UI_TEXT_PRINT_FILAMENT_NL "Filament geprint"
    #define UI_TEXT_PRINTED_NL           "geprint"
    #define UI_TEXT_POWER_NL            "ATX power aan/uit"
    #define UI_TEXT_STRING_HM_DEADTIME_NL     "Dode tijd"
    #define UI_TEXT_STRING_HM_SLOWBANG_NL     "SlowBang"
    #define UI_TEXT_STOP_PRINT_NL "Stop print"
    #define UI_TEXT_Z_BABYSTEPPING_NL "Z babystep.:%oYmm"
    #define UI_TEXT_CHANGE_FILAMENT_NL "Wissel filament"
    #define UI_TEXT_WIZ_CH_FILAMENT1_NL "Wissel filament:"
    #define UI_TEXT_WIZ_CH_FILAMENT2_NL "Draai filament"
    #define UI_TEXT_WIZ_CH_FILAMENT3_NL "uit/in met knop"
    #define UI_TEXT_CLICK_DONE_NL "Ga verder met klik"
    #define UI_TEXT_AUTOLEVEL_ONOFF_NL  "Autolevel: %ll"
    #define UI_TEXT_SERVOPOS_NL "Servo-pos.: %oS"
    #define UI_TEXT_IGNORE_M106_NL      "Negeer M106 %Fi"
    #define UI_TEXT_WIZ_REHEAT1_NL "Klik om extruder"
    #define UI_TEXT_WIZ_REHEAT2_NL "te verwarmen."
    #define UI_TEXT_WIZ_WAITTEMP1_NL "Wachten op"
    #define UI_TEXT_WIZ_WAITTEMP2_NL "doeltemperatuur..."
    #define UI_TEXT_EXTRUDER_JAM_NL "Extruder jam"
    #define UI_TEXT_STANDBY_NL "Standby"
    #define UI_TEXT_BED_COATING_NL "Bed bedekking"
    #define UI_TEXT_BED_COATING_SET1_NL "Bed ingesteld op"
    #define UI_TEXT_BED_COATING_SET2_NL ""
    #define UI_TEXT_NOCOATING_NL "Geen bedekking"
    #define UI_TEXT_BUILDTAK_NL "BuildTak"
    #define UI_TEXT_KAPTON_NL "Kapton"
    #define UI_TEXT_BLUETAPE_NL "Blauw afplakband"
    #define UI_TEXT_PETTAPE_NL "Groene PET Tape"
    #define UI_TEXT_GLUESTICK_NL "Lijmstift"
    #define UI_TEXT_CUSTOM_NL "Custom"
    #define UI_TEXT_COATING_CUSTOM_NL "Custom:%BCmm"
    #define UI_TEXT_LANGUAGE_NL "Taal"

    #if NUM_EXTRUDER > 2 || MIXING_EXTRUDER != 0
    #define UI_TEXT_MAINPAGE6_1_NL "\xa %ec/%Ec\xb0 X:%x0"
    #define UI_TEXT_MAINPAGE6_1_NL "\xa %e0/%E0\xb0 X:%x0"
    #endif // NUM_EXTRUDER
    #if NUM_EXTRUDER == 2 && MIXING_EXTRUDER == 0
    #define UI_TEXT_MAINPAGE6_2_NL "\xa %e1/%E1\xb0 Y:%x1"
    #define UI_TEXT_MAINPAGE6_2_NL "\xe %eb/%Eb\xb0 Y:%x1"
    #if NUM_EXTRUDER == 2 && MIXING_EXTRUDER == 0
    #define UI_TEXT_MAINPAGE6_3_NL "\xe %eb/%Eb\xb0 Z:%x2"
    #elif FEATURE_DITTO_PRINTING
    #define UI_TEXT_MAINPAGE6_3_NL "Kopieen: %ed   Z:%x2"
    #define UI_TEXT_MAINPAGE6_3_NL "Flow:\xfd %of%%%   Z:%x2"
    #define UI_TEXT_MAINPAGE6_4_NL "Mul: %om%%% \xfd   E: %x4m"
    #define UI_TEXT_MAINPAGE6_5_NL "Buf: %oB"
    #define UI_TEXT_MAINPAGE6_6_NL "%os"
    #define UI_TEXT_MAINPAGE_TEMP_BED_NL cTEMP "%ec/%Ec" cDEG "B%eB/%Eb" cDEG
    #define UI_TEXT_MAINPAGE_BED_NL "B%eB/%Eb" cDEG
    #define UI_TEXT_MAINPAGE_Z_BUF_NL "Z:%x2  Buf : %oB"
    #define UI_TEXT_MAINPAGE_MUL_EUSAGE_NL "Mul: %om   E:%x4"
    #define UI_TEXT_MAINPAGE_XY_NL "X:%x0 Y:%x1"
    #define UI_TEXT_PRINT_TIME_VALUE_NL "%Ut"
    #define UI_TEXT_PRINT_FILAMENT_VALUE_NL "%Uf m"
    #define UI_TEXT_METER_PRINTED_NL "%Uf m " UI_TEXT_PRINTED_NL
    #define UI_TEXT_STATUS_NL "%os"
    #define UI_TEXT_EMPTY_NL ""
    #define UI_TEXT_TEMP_SET_NL cTEMP "%ec/%Ec" cDEG
    #define UI_TEXT_CURRENT_TEMP_NL cTEMP "%ec" cDEG
    #define UI_TEXT_COATING_THICKNESS_NL " %BCmm"
    #define UI_TEXT_EXTR3_TEMP_NL "Temp. 4 :%e3/%E3" cDEG "C"
    #define UI_TEXT_EXTR4_TEMP_NL "Temp. 5 :%e4/%E4" cDEG "C"
    #define UI_TEXT_EXTR5_TEMP_NL "Temp. 6 :%e5/%E5" cDEG "C"
    #define UI_TEXT_EXTR3_OFF_NL "Extruder 4 Uit"
    #define UI_TEXT_EXTR4_OFF_NL "Extruder 5 Uit"
    #define UI_TEXT_EXTR5_OFF_NL "Extruder 6 Uit"
    #define UI_TEXT_EXTR3_SELECT_NL "%X3 Select Extr. 4"
    #define UI_TEXT_EXTR4_SELECT_NL "%X4 Select Extr. 5"
    #define UI_TEXT_EXTR5_SELECT_NL "%X5 Select Extr. 6"
    #define UI_TEXT_DITTO_0_NL "%D0 Geen Kopieen"
    #define UI_TEXT_DITTO_1_NL "%D1 1 Kopie"
    #define UI_TEXT_DITTO_2_NL "%D2 2 Kopieën"
    #define UI_TEXT_DITTO_3_NL "%D3 3 Kopieën"
    #define UI_TEXT_ZPROBE_HEIGHT_NL "Z-probe hoogte:%zh"
  • We already have dutch translations. Are these a improved version with added missing translation or what is the difference?
  • Yep they are improved
  • Ok, thanks. Will include them in following updates.
Sign In or Register to comment.