Jump to content

Recommended Posts

Posted · 3d Printing through G-code : "Converting" RepRap G-code to Ultimaker 2 G-code

Hi guys,

Few days ago I started looking at this amazing project, called silkworm :

http://projectsilkworm.com/

Essentially using Rhinoceros 3d + Grasshopper ( algorithmic modelling) you can "think" and model a 3d object directly through G-Code. 3d geometries can be converted in G-code and printed with a RepRap Prusa Mendel.

The output of this 3d modelling tool is therefore a gcode for a RepRap. I haven't tried yet to save the generated g-code on the sd to make a print test. Instead I tried to load the G-code with Cura, the result was similar to this :

https://ultimaker.com/en/community/view/6183-opening-external-gcode-in-cura-doesnt-work

I tried to open the file with PrintRun, and it seems it can read the g-code, but if I save it again of course it doesn't change anything...

opening the g-code with the editor it seems to have some substantial difference compared to the Cura generated G-code, maybe in the starting and ending part. I'm pretty sure there should be a way to edit this RepRap G-code and "convert" it to use it without any problem with the Ultimaker 2.

I already check the Marlin and reprap G-code wiki and github, but I can't see many differences...

Any advice or idea where to start to import it in Cura and print it in Uultimaker2 ?

here the reprap G-code i 'd like to use in Cura and Ultimaker2.

Many thanks!

 

 G28 ; home all axesM82 ; use absolute distances for extrusionG90 ; use absolute coordinatesG21 ; set units to millimetersG92 E0 ; reset extrusion distanceM104 S185 ; set temperatureM109 S185 ; wait for temperature to be reachedG1 Z0.0 F360 E1G92 E0G1  F7200 X103.08 Y68.22 Z1G1  F7200 X103.08 Y68.22 Z0G1 F360 E1.1G92 E0G1 F540 X131.08 Y68.22 Z0 E2.29G1 F540 X136.08 Y68.22 Z0 E2.69G1 F540 X136.08 Y73.22 Z0 E3.1G1 F540 X136.08 Y143.22 Z0 E8.82G1 F540 X136.08 Y148.22 Z0 E9.22G1 F540 X131.08 Y148.22 Z0 E9.63G1 F540 X61.08 Y148.22 Z0 E15.35G1 F540 X56.08 Y148.22 Z0 E15.76G1 F540 X56.08 Y143.22 Z0 E16.16G1 F540 X56.08 Y73.22 Z0 E21.88G1 F540 X56.08 Y68.22 Z0 E22.29G1 F540 X60.48 Y68.22 Z0 E22.64G1 F540 X103.08 Y68.88 Z0 E26.12G1 F540 X131.08 Y68.88 Z0 E28.41G1 F540 X135.42 Y68.88 Z0 E28.76G1 F540 X135.42 Y73.22 Z0 E29.12G1 F540 X135.42 Y143.22 Z0 E34.83G1 F540 X135.42 Y147.56 Z0 E35.19G1 F540 X131.08 Y147.56 Z0 E35.54G1 F540 X61.08 Y147.56 Z0 E41.25G1 F540 X56.74 Y147.56 Z0 E41.61G1 F540 X56.74 Y143.22 Z0 E41.96G1 F540 X56.74 Y73.22 Z0 E47.68G1 F540 X56.74 Y68.88 Z0 E48.03G1 F540 X60.48 Y68.88 Z0 E48.34G1 F540 X103.08 Y69.54 Z0 E51.81G1 F540 X131.08 Y69.54 Z0 E54.1G1 F540 X134.76 Y69.54 Z0 E54.4G1 F540 X134.76 Y73.22 Z0 E54.7G1 F540 X134.76 Y143.22 Z0 E60.42G1 F540 X134.76 Y146.9 Z0 E60.72G1 F540 X131.08 Y146.9 Z0 E61.02G1 F540 X61.08 Y146.9 Z0 E66.73G1 F540 X57.4 Y146.9 Z0 E67.03G1 F540 X57.4 Y143.22 Z0 E67.33G1 F540 X57.4 Y73.22 Z0 E73.05G1 F540 X57.4 Y69.54 Z0 E73.35G1 F540 X60.48 Y69.54 Z0 E73.6G1 F540 X103.08 Y70.2 Z0 E77.08G1 F540 X131.08 Y70.2 Z0 E79.36G1 F540 X134.1 Y70.2 Z0 E79.61G1 F540 X134.1 Y73.22 Z0 E79.85G1 F540 X134.1 Y143.22 Z0 E85.57G1 F540 X134.1 Y146.24 Z0 E85.82G1 F540 X131.08 Y146.24 Z0 E86.06G1 F540 X61.08 Y146.24 Z0 E91.78G1 F540 X58.06 Y146.24 Z0 E92.02G1 F540 X58.06 Y143.22 Z0 E92.27G1 F540 X58.06 Y73.22 Z0 E97.98G1 F540 X58.06 Y70.2 Z0 E98.23G1 F540 X60.48 Y70.2 Z0 E98.43G92 E0G1 F360 E-1G1  F7200 X60.48 Y70.2 Z1G92 E0G92 E0G1  F7200 X61.08 Y73.22 Z1G1  F7200 X61.08 Y73.22 Z0G1 F360 E1.1G92 E0G1 F540 X131.08 Y73.22 Z0 E5.71G1 F540 X131.08 Y143.22 Z0 E11.43G1 F540 X61.08 Y143.22 Z0 E17.14G1 F540 X61.08 Y73.22 Z0 E22.86G92 E0G1 F360 E-1G1  F7200 X61.08 Y73.22 Z1G92 E0G92 E0G1  F1800 X61.08 Y73.22 Z1G1  F1800 X61.08 Y73.22 Z0G1 F1800 E1.1G92 E0G1 F60 X61.08 Y73.22 Z20 E0.36G92 E0G1 F1800 E-5G1  F1800 X47.22 Y59.36 Z23.96G92 E0G92 E0G1  F1800 X61.08 Y73.22 Z1G1  F1800 X61.08 Y73.22 Z0G1 F1800 E5.1G92 E0G1 F60 X61.08 Y73.22 Z20 E0.36G92 E0G1 F1800 E-5G1  F1800 X47.22 Y59.36 Z23.96G92 E0G92 E0G1  F1800 X61.08 Y73.22 Z1G1  F1800 X61.08 Y73.22 Z0G1 F1800 E5.1G92 E0G1 F60 X61.08 Y73.22 Z20 E0.36G92 E0G1 F1800 E-5G1  F1800 X47.22 Y59.36 Z23.96G92 E0G92 E0G1  F1800 X61.08 Y73.22 Z1G1  F1800 X61.08 Y73.22 Z0G1 F1800 E5.1G92 E0G1 F60 X61.08 Y73.22 Z20 E0.36G92 E0G1 F1800 E-5G1  F1800 X47.22 Y59.36 Z23.96G92 E0G92 E0G1  F1800 X131.08 Y73.22 Z1G1  F1800 X131.08 Y73.22 Z0G1 F1800 E1.1G92 E0G1 F60 X131.08 Y73.22 Z20 E0.36G92 E0G1 F1800 E-5G1  F1800 X144.94 Y59.36 Z23.96G92 E0G92 E0G1  F1800 X131.08 Y73.22 Z1G1  F1800 X131.08 Y73.22 Z0G1 F1800 E5.1G92 E0G1 F60 X131.08 Y73.22 Z20 E0.36G92 E0G1 F1800 E-5G1  F1800 X144.94 Y59.36 Z23.96G92 E0G92 E0G1  F1800 X131.08 Y73.22 Z1G1  F1800 X131.08 Y73.22 Z0G1 F1800 E5.1G92 E0G1 F60 X131.08 Y73.22 Z20 E0.36G92 E0G1 F1800 E-5G1  F1800 X144.94 Y59.36 Z23.96G92 E0G92 E0G1  F1800 X131.08 Y73.22 Z1G1  F1800 X131.08 Y73.22 Z0G1 F1800 E5.1G92 E0G1 F60 X131.08 Y73.22 Z20 E0.36G92 E0G1 F1800 E-5G1  F1800 X144.94 Y59.36 Z23.96G92 E0G92 E0G1  F1800 X61.08 Y143.22 Z1G1  F1800 X61.08 Y143.22 Z0G1 F1800 E1.1G92 E0G1 F60 X61.08 Y143.22 Z20 E0.36G92 E0G1 F1800 E-5G1  F1800 X47.22 Y157.08 Z23.96G92 E0G92 E0G1  F1800 X61.08 Y143.22 Z1G1  F1800 X61.08 Y143.22 Z0G1 F1800 E5.1G92 E0G1 F60 X61.08 Y143.22 Z20 E0.36G92 E0G1 F1800 E-5G1  F1800 X47.22 Y157.08 Z23.96G92 E0G92 E0G1  F1800 X61.08 Y143.22 Z1G1  F1800 X61.08 Y143.22 Z0G1 F1800 E5.1G92 E0G1 F60 X61.08 Y143.22 Z20 E0.36G92 E0G1 F1800 E-5G1  F1800 X47.22 Y157.08 Z23.96G92 E0G92 E0G1  F1800 X61.08 Y143.22 Z1G1  F1800 X61.08 Y143.22 Z0G1 F1800 E5.1G92 E0G1 F60 X61.08 Y143.22 Z20 E0.36G92 E0G1 F1800 E-5G1  F1800 X47.22 Y157.08 Z23.96G92 E0G92 E0G1  F1800 X131.08 Y143.22 Z1G1  F1800 X131.08 Y143.22 Z0G1 F1800 E1.1G92 E0G1 F60 X131.08 Y143.22 Z20 E0.36G92 E0G1 F1800 E-5G1  F1800 X144.94 Y157.08 Z23.96G92 E0G92 E0G1  F1800 X131.08 Y143.22 Z1G1  F1800 X131.08 Y143.22 Z0G1 F1800 E5.1G92 E0G1 F60 X131.08 Y143.22 Z20 E0.36G92 E0G1 F1800 E-5G1  F1800 X144.94 Y157.08 Z23.96G92 E0G92 E0G1  F1800 X131.08 Y143.22 Z1G1  F1800 X131.08 Y143.22 Z0G1 F1800 E5.1G92 E0G1 F60 X131.08 Y143.22 Z20 E0.36G92 E0G1 F1800 E-5G1  F1800 X144.94 Y157.08 Z23.96G92 E0G92 E0G1  F1800 X131.08 Y143.22 Z1G1  F1800 X131.08 Y143.22 Z0G1 F1800 E5.1G92 E0G1 F60 X131.08 Y143.22 Z20 E0.36G92 E0G1 F1800 E-5G1  F1800 X144.94 Y157.08 Z23.96G92 E0G92 E0G1  F7200 X61.08 Y73.22 Z21G1  F7200 X61.08 Y73.22 Z20G1 F360 E5.2G92 E0G1 F300 X131.08 Y73.22 Z20 E5.71G1 F300 X131.08 Y143.22 Z20 E11.43G1 F300 X61.08 Y143.22 Z20 E17.14G1 F300 X61.08 Y73.22 Z20 E22.86G92 E0G1 F-5 E-1G1  F7200 X61.08 Y73.22 Z21G92 E0G92 E0 ; reset extrusion distanceM104 S0 ; turn off temperatureG28 X0  ; home X axisM84     ; disable motors

 

  • Link to post
    Share on other sites

    Posted · 3d Printing through G-code : "Converting" RepRap G-code to Ultimaker 2 G-code

    As you pointed out the generated gcode is missing UM2 characteristic start and end gcode. There must be a thread here on the forum, started by @Nicolinux iirc, about how to implement standard UM2 start procedure by RepRap gcode.

    The UM2 might need volumetric RepRap gcode (I'm not sure about this because I always use UltiGCode on the UM2). From what you posted I think this GCODE uses rather filament lenth than filament volume for extrusion.

    • Like 1
    Link to post
    Share on other sites

    Posted · 3d Printing through G-code : "Converting" RepRap G-code to Ultimaker 2 G-code

    Hi thanks,

    I found few interesting post as well talking about the start_gcode or prefix, from @DidierKlein and @Das_enginer...

    https://ultimaker.com/en/community/view/6190-startgcode-for-um2-not-changing

    https://ultimaker.com/en/community/view/7885-kisslicer-1407

    I found also the start_gcoce and the end_gcode in the github of the gcode generetor:

    https://github.com/ProjectSilkworm/Silkworm/blob/master/GeneratorComponent.cs

     

     //Add Custom Commands at Start               string header = Settings["start_gcode"];                              //Char[] splitChar = new Char[] {'\\','\n', 'n'};           string[] splitChar = new string[] { "\\n" };           string[] parts = header.Split(splitChar,StringSplitOptions.RemoveEmptyEntries);                          if (parts != null)               {                   for (int i = 0; i < parts.Length; i++)                   {                       sGCode.Add(new GH_String(parts[i]));                   }               }               else               {                   sGCode.Add(new GH_String(header));               }           if (int.Parse(Settings["absolute_extrudersteps"]) == 1) //if true use absolute distances for extrusion, otherwise use relative           {               sGCode.Add(new GH_String("M82 ; use absolute distances for extrusion"));            }                      sGCode.Add(new GH_String("G90 ; use absolute coordinates"));           sGCode.Add(new GH_String("G21 ; set units to millimeters"));           sGCode.Add(new GH_String("G92 E0 ; reset extrusion distance"));                      //Set Temperature           double temp = double.Parse(Settings["temperature"]);           sGCode.Add(new GH_String("M104 S" + temp + " ; set temperature"));           sGCode.Add(new GH_String("M109 S" + temp + " ; wait for temperature to be reached"));           //Extrude a bit of plastic before start           sGCode.Add(new GH_String("G1 Z0.0 F360 E1"));           #endregion                      for (int z = 0; z <= sMovements.GetUpperBound(0); z++)           {               foreach (SilkwormMovement movement in sMovements[z])               {                   sGCode.AddRange(movement.ToGCode());               }           }                                 #region FOOTER           sGCode.Add(new GH_String("G92 E0 ; reset extrusion distance"));                      //Add Custom Commands at End           string footer = Settings["end_gcode"];           string[] fparts = footer.Split(splitChar, StringSplitOptions.RemoveEmptyEntries);                      if (fparts != null)           {               for (int i = 0; i < fparts.Length; i++)               {                   sGCode.Add(new GH_String(fparts[i]));               }           }           else           {               sGCode.Add(new GH_String(footer));           }                          #endregion

     

    the good news is that the Ultimaker 2 can read this gcode, tha bad one is that when i tried to print a test, the nozzle hitted the printind bed... basically the gcode override the machine settings...

    What is the problem at this point? the g-code has a wrong z axis i can edit somehow or the g-code has a wrong "effect" on the um2 overriding the setting of the machine....

    the example g-code above is this, a wireframe box lenght printing...If i can solve the problem of the nozzle hitting the printing bed i may be able to make a proper print test..

    http://projectsilkworm.com/wp-content/uploads/2012/10/wireframe.jpg

  • Link to post
    Share on other sites

    • 4 weeks later...
    Posted · 3d Printing through G-code : "Converting" RepRap G-code to Ultimaker 2 G-code

    Regarding the nozzle hitting the bed:

    The gcode is trying to print at Z0, so unless you have adjusted your limit switch to trip at least a minimum layer height above contact, that's an issue. It's much better to actually zero your bed for contact, or just shy, then print at a defined positive Z value.

  • Link to post
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now
    • Our picks

      • UltiMaker Cura 5.9 stable released!
        Here comes Cura 5.9 and in this stable release we have lots of material and printer profiles for UltiMaker printers, including the newly released Sketch Sprint. Additionally, scarf seams have been introduced alongside even more print settings and improvements.  Check out the rest of this article to find out the details on all of that and more
          • Like
        • 5 replies
      • Introducing the UltiMaker Factor 4
        We are happy to announce the next evolution in the UltiMaker 3D printer lineup: the UltiMaker Factor 4 industrial-grade 3D printer, designed to take manufacturing to new levels of efficiency and reliability. Factor 4 is an end-to-end 3D printing solution for light industrial applications
          • Heart
          • Thanks
          • Like
        • 4 replies
    ×
    ×
    • Create New...