Leveraging optical profilometry to characterize dimensional fidelity in direct ink write additive manufacturing
Introduction
“Printability” is a common metric of interest referred to in additive manufacturing (AM) literature, especially when dealing with bespoke printers and formulations [1-10]. “Printability”, however, has no formal definition — it varies by configuration and need. There is no well documented definition beyond “if it prints, it is printable”. When working to make new formulations for direct ink write (DIW) AM, it can be especially difficult to formulate useful materials to be printed with when the target is unknown. Additionally, when dealing with complex materials like dense pastes, defined as suspensions with > 50vol% solids [11], the problem is further complicated by time-dependent and memory-effect properties of the material at hand.
In hobbyist additive manufacturing, like SLA or FFF, there are benchmark artifacts used to calibrate a printer when using a known material like PLA or ABS. The much beloved Benchy [12] comes to mind. When printed, a Benchy is qualitatively evaluated by the user according to their experience and skill level. Other items, such as calibration cubes [13], can be printed and quantitatively evaluated to check printer quality. In industry, there are more complicated and purposefully designed benchmark artifacts [14]. These are designed with specific quantitative evaluation procedures in mind, such as profilometry or computed tomography. By printing a standard item with known material, the user and material variation can be isolated from the process and any print issues attributed to the printer alone. These issues are then remedied by parameter changes or printer maintenance.
For direct ink write (DIW) of dense pastes no benchmark artifact exists, there is no definition of printability, and no way to isolate the user and material variation from the printer to calibrate a DIW printer. Before creating a benchmark artifact, the printer and user must first be isolated from the material. Through this process of isolating a material’s DIW performance ‘printability’ can be defined. Once a material’s ‘printability’ can be well understood, the best materials can be used to print benchmark artifacts to calibrate printers.
This report seeks to address this gap by using print process parameters statistically determined via DOE to print a palette of basic shapes and structures. The dimensional fidelity achieved on this palette will be defined as the material’s printability. By using this palette and comparing results to paste rheology, increasingly printable pastes can be developed. The best inks can then be used for benchmark artifact development.
Materials
Paste (or ‘ink’ in DIW): All data reported here uses a formulation of bimodal melamine [15], at 78vol%, with a 3:1 coarse to fine ratio, that was mixed into a custom methacrylate binder system with a neat Newtonian viscosity of 0.35 Pa-s. Filler particle size distribution is shown below in figure 1.

Figure 1: Melamine Particle Size Distribution
Paste density was calculated at 1.44 g/mL. The paste had a linear storage modulus (G’LVR) of 2E+06 Pa [16] and a viscosity flow curve as shown below in figure 2 [17], with a consistency (K) of 3536 Pa-sn-1 and a Newtonian index (n) of 0.543. One drop of Crayola ® blue food coloring was added to the formulation to assist in differentiating it from the print bed when optically scanning.

Figure 2: Material Flow Curve
Mixer: A FlackTek SpeedMixer 1200-300 VAC [18] was used to mix the pastes in this paper. Material for this report was mixed in 100g batches, done in a 185mL container with a rounded bottom. After completing mixing the material was allowed to cool to room temperature. Once at room temperature 15g of material was loaded into clear 10mL Nordson EFD syringes [19] and then centrifuged using a Cole-Parmer 17250-10 Fixed-Speed Centrifuge [20] to remove entrained air. These syringes were allowed to rest overnight before being used for printing.
Printer: A Taz LulzBot 6 [21] modified with a Viscotec Eco-Pen 330 [22] progressive cavity pump (PCP) was used for all printing in this report. The PCP was controlled via an Eco-Controller EC200 [23], also from Viscotec, that was commanded via a Python script communicating over RS-232 interfaces. Nordson ESD 10mL syringes with beige wipers were used to pneumatically fill the PCP with material. Air was supplied locally from a pressurized air cylinder. 100psi was applied to the syringes to fill the PCP. All materials were printed using a 16-gauge Luer-Lock tip from Nordson EFD that was 25.4mm long and had an ID of 1.54mm [24].
Profilometer: Keyence VR-3000 [25] series profilometer was used to perform all 3D scans discussed in this report. The low magnification camera, at 12x, was used in all scans. Auto-focusing was used in all scans. When analyzing scan data, the print bed was used as the reference plane to establish a zero-height.
Software: Python 3.11.5 [26] was used in the Spyder IDE Version 5 [27] to generate the g-code used in this report.
Methods
From a previous study [28] the optimal print process parameters from this material were determined via DOE as: layer height of 0.8mm, volumetric flow rate of 0.6 mL/min, and print speed of 100 mm/min. With the optimal print parameters determined these can be used to print basic shapes and structures. Together, these basic shapes and structures form a palette that can quantify the printability of a material.
Tool Path Development
The following shapes and structures were selected to be printed: a single layer rectangle, a single layer circle, a hollow cylinder, a hollow cube, and a single layer wall. These will hereafter be referred to as the rectangle, circle, cylinder, cube, and wall, for simplicity. Each was chosen to elucidate a different characteristic of the material. The g-code to produce each of these items was generated using a Python script that enabled the varying of layer height, print speed, and volumetric flow rate. Thus, regardless of what the optimal print parameters were determined to be the same palette could be generated.
The first item printed in the palette was the rectangle. Before this, however, there was a long run up section to allow for steady extrusion and line formation to be achieve before moving into the first item. From the rectangle the circle was directly move into without any pause. After the center of the circle was reached, extrusion was stopped, and the print head moved up, out of the range of the circle, then back down to the bed to re-establish the line. After a section where the line was re-established the printing of the cylinder was moved directly into. Once this was complete extrusion was stopped and the print head moved up and away from the completed cylinder. Having cleared the cylinder, the print head returned to the print bed, extrusion was restarted, and the line was reestablished. Upon reestablishing the line, the cube was printed. Again, once the cube was completed extrusion was stopped, the print head move up and out of the way, then back to the bed, extrusion was restarted, the line re-established, and the wall printed. Having been generated from Python, all of the item’s positions, width, lengths, diameters, and thicknesses are tailorable. The print parameters are also easily changed. This enables rapid changing of print parameters to accommodate different materials and of item location to accommodate different printer setups.
The tool path for the palette is shown below, from the top down in figure 3, and from a side angle in figure 4.

Figure 3: Top View of Palette
Item 1 – Rectangle; Item 2 – Circle; Item 3 – Cylinder; Item 4 – Cube; Item 5 – Wall

Figure 4: Angled View of Palette
Item 1 – Rectangle; Item 2 – Circle; Item 3 – Cylinder; Item 4 – Cube; Item 5 – Wall
Each item has set dimensions which enable the characterization of print fidelity after completion and scanning. The rectangle was 24x25mm; the circle had a diameter of 25mm; the cylinder also had a diameter of 25mm and a height of 10mm; the cube was 25x25mm and a height 10mm; and the wall was 25mm long, one line width, or 2.38mm, thick and 10mm high. The rectangle’s length, 25mm, is set by the user, and the width is 10 lines thick.
Printing
The printing of the palette was done with the same material and handling procedure as the pre-palette DOE [28]. The entire palette was printed in one session, only with pauses for the establishment, breaking, or re-establishment of the line at the start of the print and between items. Stops and starts in extrusion were commanded to the PCP via the Eco-controller over RS-232 serial interfaces using the PySerial package in Python.
Scanning
After completing the print palette, the items were left for 30min before being imaged. The exterior dimensions of the objects were selected as the metrics of interest when determining dimensional fidelity.
Data Processing
Upon scanning each feature, the exterior dimensions were extracted directly from the profilometry software. There was no need to introduce additional scripting to attain other metrics. For the rectangle, cube, and wall the length, width, and height were measured. For the circle and cylinder the diameter and height were measured. Additionally, for the cylinder and cube the wall thickness were measured. Each of these values can be compared back to the defined value in the palette design as discussed above.
For each dimension — 2 for circle; 3 for rectangle, wall, and cylinder; 4 for cube — the absolute value of the error was found, then subtracted from 1. The resultant percent, the dimensional accuracy, was then used as the score for a weighted average. For the features with 3 characteristic dimensions 33 points were available for each dimension and the percentage of those points earned was defined by the accuracy of that feature. For example, if a dimension was supposed to be 1mm and was measured at 0.5mm, it would have a dimensional accuracy of 50%. If this dimension were for a feature with 3 characteristic dimensions, it would receive 16.5 points for this dimension’s accuracy.
Thus, each dimension collectively defines the number of total points earned for that feature. The total points for each feature were then taken as a percentage out of 100, a total feature accuracy, and another weighted average taken where all palette features were equally weighted to determine the total dimensional fidelity of the printed palette. This total dimensional fidelity is defined as the material’s printability.
Assumptions
The print process parameters used in this report were found using a line-printing DOE. It is assumed that those parameters translate to the best 3D parameters for building these shapes and structures. Additionally, all assumptions accepted in the DOE process are inherent in this process, namely: that the bed is flat across the whole print area, that any minor variations in the print bed are either negligible or accounted for in the auto-leveling function performed before printing, and that the time-dependent behaviors of the material are not on the same time scales as the extrusion process, so the material’s behavior is not changing throughout the print.
Results and Discussion
From the pre-palette DOE the optimal print parameters were determined. Based on these determined parameters, and the average aspect ratio expected from the DOE results, a line width was expected at 2.38 mm. This was used to determine the center-to-center distancing for the lines. These parameters were then input into a Python script to output the g-code for the print palette. The final printed output is shown below in figure 5.

Figure 5: Printed Palette
Item 1 – Rectangle; Item 2 – Circle; Item 3 – Cylinder; Item 4 – Cube; Item 5 – Wall
Each print palette item will be discussed, the measured dimensions collated, and the final scorecard provided.
Palette Feature 1: Rectangle
The printed rectangle image (a), 3D scan (b), and Volume and Area (V&A) analysis (c-e) view are shown below in figure 6 a-e.

Figure 6 a-e: Rectangle Profilometry Data
Figure 6a above shows that the rectangle was well reproduced by this paste. The expected defects are present, namely voided volume due to corner turning and space between the lines. However, on the whole the material shows consistent behavior across this printed item as represented by the height show in figure 6b and widths shown in figure 6d.
Figure 6c-e shows the volume and area (V&A) analysis. The horizontal yellow line in the figure 6c corresponds with the cross-section shown in figure 6e and the vertical yellow line in figure 6c corresponds with the cross-section shown in figure 6d. These profiles show the cross-sectional shape of the body being scanned and the section filled-in with red highlights the volume being analyzed. Figures 6d and 6e give a view of how the height and width of the line is changing throughout the print. Visible in figure 6d is the post-extrusion spreading, or lack thereof, of the line throughout the printing of the rectangle. The lower portion of figure 6d is the beginning of the print, and the lines here are further spaced. As the print proceeds through the part, the lines coalesce more, though their height does not change much. This could be attributed to material thinning throughout the print, and more being extruded than intended, or slight variation in the bed height. It is presumed that the minor variation in line width/spreading is attributed to slight variations in the print bed height. Figure 6e shows minor variation in the height of a single line across the print y-axis.
From these scans the characteristic dimensions were determined as follows: length = 27.70 mm ; width = 23.98 mm; height = 1.12 mm. Length is left to right in figure 6a and width is top to bottom. Length corresponds to the printer’s y-axis and width to the printer’s x-axis. These values are collected in table 1 at the end of this section.
Palette Feature 2: Circle
The printed circle image (a), 3D scan (b), and V&A analysis (c-e) are shown below in figure 7 a-e.

Figure 7 a-e: Circle Profilometry Data
The smooth concentric circles shown here attest to the printability of the material in use. The seam where the print head moved to the next layer, along the print x-axis, is clearly shown (denoted with a line on figure 7a) moving vertically along the print from the entrance point to the center of the circle in figure 7a. Aside from this section, as shown in figure 7b and 7e, the dimensions of the circle are consistent throughout. This justifies the assumption that the material is not thinning throughout the print, which would show up as shorter and wider peaks in the center of the circle, but instead that there are minor variations in the print bed that may have contributed to the behavior seen in rectangle, figure 6a-d. This behavior is not prevalent in the circle cross-sections shown in figure 7e or the top of 7d.
In figure 7d-e the V&A analysis of the single layer circle are shown. The bottom of figure 7d shows the increase in height that is caused by the x-axis seam along which the print head moved between the concentric circles. When contrasted with the top of figure 7d it can be concluded that this seam translation also produced inconsistencies in the surface of the print along the seam. For shapes of this kind, with this material, better tool pathing is required to attain complete symmetry. For a different material this effect may be mitigated by post-extrusion spreading of the ink as it recovers its internal structure. The portions of the concentric circles not along the seam appear just like those from the rectangle scan. Figure 7e shows radial symmetry with the printed part and suggests that this material is exhibiting consistent behavior throughout the print.
From this scan the characteristic dimensions were determined as follows: radius = 22.59 mm ; height = 1.15 mm.
Though not done explicitly in this analysis, contrasting the rectangle and circle can offer information for selecting infill patterns to build solid objects with this material. Additionally, these two basic shapes offer information regarding the spreading profile of the material. The analysis of the depth of the troughs between the lines in each of these infill patterns could offer robust information regarding the spreading dynamics and thixotropy of the material.
Palette Feature 3: Cylinder
The printed cylinder image (a), 3D scan (b), V&A analysis (c-e), and thickness measurement (f) are shown below in figure 8 a-f.

Figure 8 a-f: Cylinder Profilometry Data
Here the profilometer encountered difficult in seeing into the cylinder and observing the profile of the inner walls, which were obfuscated by the overhanging top layers of the cylinder that had deflected inward towards the end of the print. Though not a perfect scan, the characteristic dimensions, aside from wall thickness, of this feature can still be accurately determined.
The limitations of this scan are exemplified by figure 8d and 8e. The smooth downward walls are not a material characteristic but an artifact of the scanning method. The outer wall profile, however, is accurate and contains useful information. Figure 8f was conducted as a single image scan, rather than a full feature scan, to better measure the width of the cylinder wall. The two diameters shown in red are used to estimate the wall thickness.
From these scans the characteristic dimensions were determined as follows: outer diameter = 28.45 mm, height = 7.43 mm, average wall thickness = 4.38mm.
Palette Feature 4: Cube
The printed cube image (a), 3D scan (b), V&A analysis (c-e), and thickness measurement (f) are shown below in figure 9 a-f.


Figure 9 a-f: Cube Profilometry Data
The profilometer was able to scan the inside of the cube and measure the profile of its inner walls accurately, as shown in figure x-e. However, a successful scan required the cube to be rotated at an angle, as shown in figure 9c, so the profiles shown in 9d and 9e cannot be interpreted quantitatively because they aren’t taken perpendicular to the wall. Wall thickness was attained via figure 9f. Though scanning at an angle enabled the measuring of the internal wall profile, the corners of the cube were still difficult for the profilometer to see, as exemplified by figure 9b. Contrasted with scanning the rectangle and circle, the taller structures require a bit of trial and error to attain a good scan. Often, multiple scans are required to obtain all the information required.
From these scans the characteristic dimensions were determined as follows: length = 28.49 mm, width = 28.60 mm, height = 7.21 mm, average wall thickness = 4.28.
Palette Feature 5: Wall


Figure 10 a-f: Single Layer Wall Profilometry Data
The single layer wall is identified as the most challenging feature on the print palette in this analysis. During printing, the first layers were stacking well, but as the top layer was approached the actual gap between the printed material and print head widened, causing some layer-layer buckling resulting in the swaying of the line. This is exemplified in figure 10a above, on the left-hand side where the line is clearly not straight. Due to this wavering of the top face of the single layer wall the bottom layers of the printed wall are obfuscated from the scan and are difficult to observe across the entire structure. This results in the relatively straight walls that appear in figure 10b and 10e. Similarly to the other 3D structures used in this study, a single point analysis is helpful in determining the thickness of the structure. Though it is difficult for the profilometer to scan both sides of the structure and resolve a 3D model, it can still successfully capture both sides and measure the thickness.
From these scans the characteristic dimensions were determined as follows: length = 53.27 mm, width = 4.35 mm, height = 6.86 mm.
Palette Dimensional Accuracy Scoring:
The characteristic metrics of each item are shown below in table 1.

Table 1 – Feature Designed and Measured Characteristic Dimensions
The differences between the actual and designed characteristics are used to calculate the weighted dimensional fidelity of the printed items as shown in table 2.

Table 2 – Palette Scorecard
In this study each characteristic dimension of each feature is weighted equally, and each feature within the palette is weighted equally. The overall weighted dimensional accuracy of this print was 71%. In this framework, this is defined as the material’s printability because the user and printer have been controlled for as much as possible through the statistical determination of print parameters and simplification of printed items.
This analysis enables relative judgements about the material’s limitations or potential uses. For example: this material performed better at the rectangle than the circle, so it may be concluded that using a rectilinear infill is preferable to a concentric circle one. Digging deeper, however, there needs to be caution in how these results are interpreted as half of the circle’s points come from its height score, which was approximately equal to the rectangle’s score. Due to more dimensional features available to score well in, and scoring well in those, the rectangle scored better than the circle. Results like these suggest that a differing weighing structure may be required to better analyze the measurements being taken. This is viewed as a feature of this framework. Not only can it be tweaked to better measure what a community of practitioners define as printability, but it can also be used by the individual practitioner to tune to their needs for a certain print. Thus, it can serve to reactively score materials and build a database of pastes and, to proactively predict whether a certain material will succeed at printing an item with certain features.
Conclusions
In this a report an adaptable metrological framework for DIW printability was put forth that leverages statistically determined print parameters and geometrically simple printed items, measured via optical profilometry, to quantitatively define printability as a function of dimensional fidelity. It was shown that, measured in this way, a 78vol% bi-modal melamine formulation has a printability of 71%. This framework enables users to reactively print and scan materials, entering their print parameters, rheology, and measured printability into a database for model fitting; and, to use the definition of printability to proactively screen their material against challenging print features, as mimicked in the printed palette used for scoring, to anticipate print failures. By using a system of value functions and weighted averages, the interpretation of dimensional fidelity to printability is flexible to the users’ needs and meets the community’s evolving demands for a definition of printability. Additionally, this framework inherently acknowledges that printability is not simply a material function but an interaction between the user, material, and printer. To truly characterize a material’s candidacy for use in direct ink write additive manufacturing user and printer variation must be mitigated as much as possible.
Hereafter, “printability” shall not be misconstrued as a single metric characterizing a material alone. Printability of dense pastes in direct ink write additive manufacturing shall be understood as a composite metric — with contributions from the user (mixing, handling, down-time, print parameter selection), the material (binder, fillers, time-dependent reordering, memory-effects), and the printer (z-screw geometry, bed-level, maintenance level) – that can be measured only through structured experimentation to isolate as many of these variables as possible. Printability shall be defined, as done in this report, as the level of dimensional fidelity a properly handled material can achieve on a well-maintained printer when printing a standard set of basic shapes with print parameters statistically determined through designed experimentation.
Path ahead
The work highlighted here is a small subset of the possible advances to be made in the area. A few opportunities to immediately expand upon the work discussed here are visible to the author. Among them, are the inclusion of solid items into the print palette, the inclusion of more challenging features like bridging tests, or composite features like solid objects with internal voids to test construction and bridging. As the palette is expanded, it may be combined into one single item to characterize printability. This would be a true benchmark artifact and is the end-state goal of this work. Additionally, the linear value functions used here (i.e. 20% dimensional accuracy earns twice as many points as 10% dimensional accuracy) can be updated to more accurately represent a users’ perception of utility for an ink as its dimensional accuracy evolves. It may be supposed the jump from 80 to 95% accuracy is much more desirable than the jump from 15 to 30%. This framework is primed to accept advances of this kind and is an area ripe for optimization. Before moving into printing the palette as here defined, the print parameters are determined via a line printing DOE. Improving this DOE, as discussed in the report on it specifically, expanding on it, to include center-to-center distance or other factors, or combining it with a print palette is another area ripe for improvement that can further advance the metrology of dense paste printability.
The point remains, however, that printability is a composite metric that measures interactions between the user, printer, and material. Mitigating each of the contributing factors’ variation best enables an accurate measurement of material printability. One way to further mitigate the printer’s variation could be to perform multi-material testing. This would require printing benchmark artifacts with FFF on the same printer before moving in to doing DIW. Further, after printing FFF benchmarks with a known material, like PLA, a DIW benchmark could be printed with simple materials of known printability (like DOWSIL SE1700). These efforts would further ensure the experimenter that the printer is functioning as desired and any variation measured in dimensional fidelity can be attributed to the material.
References:
[1] Daniel A. Rau, Christopher B. Williams, Michael J. Bortner, Rheology and printability: A survey of critical relationships for direct ink write materials design, Progress in Materials Science, Volume 140, 2023, 101188, ISSN 0079-6425, https://doi.org/10.1016/j.pmatsci.2023.101188
[2] Peiran Wei, Ciera Cipriani, Chia-Min Hsieh, Krutarth Kamani, Simon Rogers, Emily Pentzer; Go with the flow: Rheological requirements for direct ink write printability. J. Appl. Phys. 14 September 2023; 134 (10): 100701. https://doi.org/10.1063/5.0155896
[3] Dimpy Bhardwaj, Ritu Singhmar, Megha Garg, Deepika Gupta, Ankita Dhiman, Sung Soo Han, Garima Agrawal, Designing advanced hydrogel inks with direct ink writing based 3D printability for engineered biostructures, European Polymer Journal, Volume 205, 2024, 112736, ISSN 0014-3057, https://doi.org/10.1016/j.eurpolymj.2023.112736
[4] M’Barki, A., Bocquet, L. & Stevenson, A. Linking Rheology and Printability for Dense and Strong Ceramics by Direct Ink Writing. Sci Rep 7, 6017 (2017). https://doi.org/10.1038/s41598-017-06115-0
[5] Aleksei Dolganov, Matthew T. Bishop, George Z. Chen, Di Hu, Rheological study and printability investigation of titania inks for Direct Ink Writing process, Ceramics International, Volume 47, Issue 9, 2021, Pages 12020-12027, ISSN 0272-8842, https://doi.org/10.1016/j.ceramint.2021.01.045
[6] Qingyang Zheng et al 2023 Int. J. Extrem. Manuf. 5 035002
[7] Polymers 2022, 14(21), 4661; https://doi.org/10.3390/polym14214661
[8] M. A. S. R. Saadi, A. Maguire, N. T. Pottackal, M. S. H. Thakur, M. Md.Ikram, A. J. Hart, P. M. Ajayan, M. M. Rahman, Direct Ink Writing: A 3D Printing Technology for Diverse Materials. Adv. Mater. 2022, 34, 2108855. https://doi.org/10.1002/adma.202108855
[9] Chan SSL, Sesso ML, Franks GV. Direct ink writing of hierarchical porous alumina-stabilized emulsions: Rheology and printability. J Am Ceram Soc. 2020; 103: 5554–5566. https://doi.org/10.1111/jace.17305
[10] Myoeum Kim, Jae-Won Choi, Rubber ink formulations with high solid content for direct-ink write process, Additive Manufacturing, Volume 44, 2021, 102023, ISSN 2214-8604, https://doi.org/10.1016/j.addma.2021.102023
[11] Marnot, A., Dobbs, A. & Brettmann, B. Material extrusion additive manufacturing of dense pastes consisting of macroscopic particles. MRS Communications 12, 483–494 (2022). https://do-i.org/10.1557/s43579-022-00209-1
[12] #3DBenchy – The jolly 3D printing torture-test by CreativeTools.se by CreativeTools – Thingiverse: https://www.thingiverse.com/thing:763622
[13] XYZ 20mm Calibration Cube by iDig3Dprinting – Thingiverse : https://www.thingiverse.com/thing:1278865
[14] S.P. Moylan, J.A. Slotwinski, A.L. Cooke, K.K. Jurrens, and M.A. Donmez (2012), “Proposal for a standardized test artifact for additive manufacturing machines and processes,” Proceedings of the 23rd International Solid Free Form Symposium – An Additive Manufacturing Conference, Austin, TX, USA, August 2012, pp. 902-920.
[15] Melamine SDS: https://documentation.oci-global.com/wp-content/uploads/2023/01/OCI-Nitrogen-MelaminebyOCI-Safety-Data-Sheet-GPH-GPH-LD-SLP-Melafine-IE.pdf
[16] https://stantontalisman.com/osc-rheo-hls/
[17] https://stantontalisman.com/syringe-cap-rheo/
[18] Medium FlackTek™ – The FlackTek™: https://flacktek.com/products/medium-flacktek/
[19] Optimum® Syringe Barrels | Nordson EFD: https://www.nordson.com/en/products/efd-products/optimum-syringe-barrels
[20] Centrifuge Spec: https://cms.esi.info/Media/documents/ColeP_centrifuges_ML.pdf
[21] LulzBot | Taz-6: https://assets.lulzbot.com/TAZ6_SpecSheet_FINAL.pdf
[22] eco-PEN330: https://epotekeurope.com/wp-content/uploads/2022/08/preeflow-datenblatt-eco-pen-englisch-2020.pdf
[23] EN eco CONTROL EC200 2.0: https://dosieren.de/media/29/9a/6e/1708524623/EN_eco_CONTROL_EC200_2.0_Betriebs-und-Wartungsanleitung_Version-2023.pdf
[24] Dispense Tips and Needles | Optimum® Dispense Tips | Nordson EFD: https://nc-p-001.sitecorecontenthub.cloud/api/public/content/763d342ed9b24b6380265648d916dab1?v=99ca5481
[25] 3D Optical Profilometer – VR-6000 series | KEYENCE America: https://www.keyence.com/products/3d-measure/roughness-measure/vr-6000/
[26] Python Release Python 3.11.5 | Python.org: https://www.python.org/downloads/release/python-3115/
[27] Install Guide — Spyder 5 documentation: https://docs.spyder-ide.org/5/index.html
