NovaSpider Tutorials

Tutorial 4:

Example use of FullControl G-code for Designer for Melt-Electrowriting (MEW)

Welcome to our comprehensive guide on “Example use of FullControl G-code for MEW.” In this step-by-step tutorial, we’ll unlock the power of FullControl G-code for Melt Electrowriting (MEW), providing you with the knowledge and skills to create precise and customizable MEW programs. Whether you’re a newcomer to MEW or an experienced user looking to enhance your techniques, this guide will empower you to harness the full potential of FullControl for your MEW projects.

Prerequisites:

Before we begin, make sure you have a basic understanding of Python programming, Melt-electrowriting (MEW), G-code and 3D printing. If you’re new to the subject you can check our previous tutorials to get started with the environment and terminology:


Step-by-Step Guide: Example use of FullControl G-code for MEW

Accessing the Complete Example: Your Starting Point

Before we dive into the step-by-step tutorial, we want to provide you with a solid foundation to build upon. We’ve prepared a full-fledged example, programmed with the help of FullControl, which you can access via the link below:

This example will serve as both your guide and inspiration throughout this tutorial. It’s your starting point for understanding the power of FullControl G-code in Melt-Electrowriting (MEW). Feel free to explore and modify it as you progress, using FullControl’s tutorials and your own creativity to tailor it to your specific MEW projects. Let’s get started!
 

Step 1: Setting Up the Environment

We’ll be writing the program in Python within a Google Colab Jupyter Notebook. The knowledge needed is very basic bt you can find an introductory tutorial here

Jupyter Notebooks are divided into sections called cells. Execute them in order, starting from the first one, to run the program.

In the first cell, we install FullControl and import the necessary libraries. If you plan to use additional Python libraries, include them in this cell as well.

FullControl for MEW example: First Cell of Jupyter Notebook
Fig.1: FullControl for MEW example - First Cell of Jupyter Notebook

Step 2: Writing the Program

The second cell contains the entire program, organized into four sections. Before we delve into the details of each section, let’s provide you with an overview and schematic structure of what to expect when writing your MEW program. Understanding this structure will help you navigate the process more effectively.

Schematic Structure of the MEW Program:

  1. Variable Declaration: This is where you set the initial parameters and variables needed for your MEW print. These variables can be adjusted dynamically, making it easy to experiment with different settings.

  2. Pattern Definition: In this section, you define the patterns that will form the foundation of your MEW print. FullControl provides pre-built, parametrizable patterns accessible in their tutorials and GitHub examples. You can also apply mathematical functions to customize these patterns further.

  3. Pattern Assembly: Once you have defined your patterns, you’ll assemble them to create the path that the printing head will follow. This step involves combining and configuring the patterns as needed.

  4. G-code Conversion and Visualization: Here, you’ll convert the assembled path into G-code, which is the language your MEW printer understands. You’ll also visualize the path to ensure it aligns with your intentions.

Step 2.1 – Variable Declaration

In this initial section, we lay the foundation for our program by declaring variables. These variables can be constants but can also act as parameters that can be easily adjusted to fine-tune the printing process. What makes this section particularly powerful is that these parameters are visible in an interactive interface, situated alongside the code cell.

Imagine this interface as a control panel with sliders and numeric inputs, allowing you to dynamically modify the values. For example, you can chage geometric features, number of layers, add gradients and any parameter you want to introduce right from this interface .

The ability to use parameterized variables provides an invaluable level of flexibility in your designs. It enables you to generate G-codes swiftly and effortlessly, catering to a wide range of parameter combinations. This feature simplifies experimentation and iteration, making it especially useful for exploring the effects of different settings on your MEW prints.

Whether you’re a novice or an experienced MEW user, having these parametric variables at your disposal empowers you to adapt your designs with ease and precision, ultimately leading to more efficient and customized MEW printing.

FullControl for MEW example: Jupyter notebook second cell. Variable declatation and parameters interface
Fig.2: FullControl for MEW example: Jupyter notebook second cell. Variable declatation and parameters interface

Step 2.2 – Pattern Definition

In this crucial section, we define the patterns that will form the basis of our MEW print. FullControl offers a powerful set of predefined, parametrizable patterns that streamline the process. These patterns are readily accessible in FullControl’s tutorials and examples, conveniently hosted on their GitHub repository here.

What’s remarkable about these patterns is their adaptability. They can be customized to suit your specific needs using Python’s mathematical functions, as demonstrated in the tutorials. This means you can manipulate the patterns mathematically to achieve precisely the outcomes you desire.

A taste of the patters ready to be used and customized in FullControl XYZ
Fig.3: A taste of the patters ready to be used and customized in FullControl XYZ. (Source: FullControl Tutorials)

The significance of this flexibility cannot be overstated, particularly in scientific research and MEW applications. It allows you to:

  1. Enhance Reproducibility: By using standardized and parametrizable patterns, you ensure that your MEW prints can be reproduced accurately, contributing to the credibility of your research.

  2. Accelerate Experimentation: With the ability to modify patterns programmatically, you can quickly experiment with various configurations and settings. This accelerates the research and development process.

  3. Achieve Customization: Tailor your MEW prints to your exact requirements. Whether you need variations in pore sizes, layer thicknesses, or other parameters, this level of customization is invaluable.

In essence, the combination of FullControl’s versatile patterns and Python’s mathematical capabilities empowers you to push the boundaries of what’s achievable with MEW. Your imagination and experience become the only limiting factors, enabling you to explore novel possibilities and drive innovation in your research or creative endeavors.

FullControl for MEW example: Jupyter notebook second cell. Patterns definition
Fig.4: FullControl for MEW example: Jupyter notebook second cell. Patterns definition

Step 2.3 – Pattern Assembly

In this step, we take the patterns we defined earlier and bring them together to create the path the printing head will follow during the MEW process. Think of it as building with building blocks – you combine, repeat, and modify these patterns automatically and in a controlled manner to achieve your desired design.

This section allows for incredible flexibility and precision. You can use loops, parameters, and conditions to manipulate the defined patterns dynamically. For example, you can create a loop with parallel lines, and the distance between these lines can increase automatically based on a specific value. You can also set conditions so that certain parameters, like speed, voltage, or distance, change during the printing process.

Furthermore, you can generate multiple unique samples within a single print. Each sample can differ from the previous one in specific aspects, such as aspect ratio, the number of layers, porosity, and more. This capability is immensely valuable for conducting reliable and repeatable studies on how variations in geometry or manufacturing parameters impact structures designed for specific applications.

In essence, pattern assembly is where you exercise full control over the intricate details of your MEW print, allowing for experimentation and customization that leads to valuable insights in scientific research and tailored fabrication.

FullControl for MEW example: Jupyter notebook second cell. Patterns assembly.
Fig.5: FullControl for MEW example: Jupyter notebook second cell. Patterns assembly.

Step 2.4 – G-code Conversion and Visualization

This section includes the code to convert the assembled path into G-code and visualize it graphically.
FullControl for MEW example: Jupyter notebook second cell. Plotting and G-code generation.
Fig.6: FullControl for MEW example: Jupyter notebook second cell. Plotting and G-code generation.

Step 3: Simulating the Path

Copy and paste the generated G-code into a G-code viewer like NCViewer.com to ensure it matches your expectations.

Step 4: Finalizing the G-code

In this critical step, we’ll put the finishing touches on the programming code of our example use of FullControl G-code for MEW. Here, we’ll combine the generated G-code with essential MEW-specific commands to create a complete and functional G-code file ready for your MEW printer. Let’s dive in!

Open a text editor like Brackets  and add the MEW-specific commands such as movements speed, high voltage, flow rate, temperature, and nozzle distance in the template’s header and footer. After that, place between header and footer the verified G-code generated in the previous step. This “template” shows how it would look like for a NovaSpider printer.

Another option is to reuse a pre-existing G-code “template” that you know works well with your MEW printer. Delete the movement-related G-code from the template and replace it with the verified G-code generated in the previous step.

Finally, save the file with a “.gcode” extension or the format your MEW printer requires.

NovaSpider special commands for MEW and solution electrospinning
Fig.7 - NovaSpider special commands for MEW and solution electrospinning

Automate Process Commands Change within the G-code

Imagine having the ability to dynamically adjust crucial process parameters like flowrate, high voltage, temperature, speed, or nozzle-collector distance while your MEW printer is in action. This level of control can be immensely powerful, and we’ll show you how to make it happen.

To achieve this, we’ll build upon the concepts discussed in Step 2, Section 3 – Pattern Assembly. By integrating these parameters into your Python code, you can orchestrate changes precisely as your MEW print progresses.

    • Example 1: Imagine you want to vary the voltage during the print. You can introduce a voltage command within the Python loop. For instance, ‘Voltage’ might start at a base value and increment incrementally with each layer. This same principle can be applied to temperature, speed, nozzle-collector distance, and more.
    • Example 2: Consider another scenario, you want to create multiple samples within a single print, each with variations in a specific “process parameter.” This approach allows you to explore how those variations influence your final output.

However, it’s essential to approach this technique with caution. It demands a solid grasp of both G-code intricacies and your MEW printer’s capabilities. Mistakes could result in unintended outcomes, so proceed thoughtfully.

Furthermore, while the concept is relatively straightforward, the actual implementation can become more complex depending on your precise requirements and your printer’s capabilities. For those eager to delve into advanced techniques of parametrizing and automating G-code further, rest assured that we’ll explore these topics comprehensively in future advanced tutorials.

Step 5: Verification and Transfer

Before sending your MEW G-code program to your printer, it’s essential to verify its accuracy and compatibility. This step involves using a G-code viewer, such as NCViewer.com, to ensure that the generated code aligns with your intentions. Once verified, you’ll be ready to transfer the program to your MEW printer. This crucial quality check helps prevent potential issues during the printing process and ensures your MEW project proceeds smoothly.

Step 6: Melt-Electrowrite with Caution

As you embark on the MEW printing process, exercising caution is paramount. Start with conservative parameter values, especially if you’re using new settings or modifications. Carefully observe your MEW printer’s behavior throughout the print job to detect any anomalies or issues promptly.

Remember, you are responsible for the safety and integrity of your MEW printer and the printing process. While this guide provides valuable insights, always approach printing with knowledge and responsibility.

Please note that we cannot assume responsibility for any issues or damages that may occur while using this guide. Your vigilance and expertise are essential to a successful MEW printing experience.

Conclusion

In this tutorial “Example use of FullControl G-code for MEW”, we’ve embarked on a journey to master the art of using FullControl G-code for Melt-Electrowriting (MEW). We’ve explored each step, from pattern creation to parameter automation, empowering you to unleash your creativity and precision in MEW projects.

As you apply these newfound skills, remember that MEW is a dynamic field, continuously evolving. Your feedback is invaluable to us. If you encounter any challenges, require clarification, or have suggestions for further improvement, please don’t hesitate to reach out.

MEW holds the potential for groundbreaking innovations in various fields, from bioprinting to advanced materials. With FullControl and your newfound expertise, you’re well-equipped to explore uncharted territories and make a significant impact in your research, creativity, or scientific endeavors.

Keep pushing the boundaries of what’s possible with MEW, and let us know how we can assist you on your journey to innovation and discovery. Your feedback is our catalyst for improvement and enhancement.

Conclusion

In this tutorial “Example use of FullControl G-code for MEW”, we’ve embarked on a journey to master the art of using FullControl G-code for Melt-Electrowriting (MEW). We’ve explored each step, from pattern creation to parameter automation, empowering you to unleash your creativity and precision in MEW projects.

As you apply these newfound skills, remember that MEW is a dynamic field, continuously evolving. Your feedback is invaluable to us. If you encounter any challenges, require clarification, or have suggestions for further improvement, please don’t hesitate to reach out.

MEW holds the potential for groundbreaking innovations in various fields, from bioprinting to advanced materials. With FullControl and your newfound expertise, you’re well-equipped to explore uncharted territories and make a significant impact in your research, creativity, or scientific endeavors.

Keep pushing the boundaries of what’s possible with MEW, and let us know how we can assist you on your journey to innovation and discovery. Your feedback is our catalyst for improvement and enhancement.

Recommended Sources and References:

  1. FullControlXYZ GitHub Repository
  2. Tutorials – FullControl GCODE Designer
  3. FullControl GCODE Designer – Official Website
  4. Technology: NovaSpider – Melt electrospinning and Solution electrospinning

If you are happy with the job done by FullControl, please cite the original journal paper (https://doi.org/10.1016/j.addma.2021.102109) available to download free from the www.fullcontrolgcode.com website and give Andy Greadall and Dirk Leas some well deserved kudos!

Last updated on October 4th, 2023 by
Javier Latasa Martinez de Irujo
Mechatronic Design | Electrospinning | R&D Projects | PMP®