/ Concept: 3D Print. 1. Extracting Geographical Data. 2. Manipulating the 2D Layer into a 3D Mesh. 3. Giving 3D object Color. 4. Embedding Geo Information using Z Axis and Image Overlay. 5. Creating layer heights. 6. Printing with Different Colors. 7. Modifying the G-Code to Change the Material. 8. Printing of the Everest. // Aftermath. /// Download Files. / Concept: 3D Scan. 1. Producing the Scan. Download Files.

3D Print and Scan.

Concept: 3D Print.

The aim of this lesson is to print a three dimensional object by using 3D printer. The process of 3D printing involves extruding material, usually either PLA polyactic acid or ABSacrylonitrile butadiene styrene using X, Y, Z for the three dimensions available.

For the object use case, I decided to recreate a geographical area, more specifically the are that encloses the highest Earth's altitude point - Mountain Everest, elevation of which is commonly known to be 8848 meters .

Some research proved that because of mountain's fame, it was previously recreated several times, and 3D files of this geographical placement were available online in a variety of shapes, however simply downloading the g-code files would make it too easy. I decided to go through all the steps of creating such an object, to be able to extract geographical data of any place on earth at will, as well as print the object using different extrusion colors - in order to highlight the elevation and allow the final object to embed geographical metadata about it's size and shape.

The motivation behind printing with different colors came from observing the previously produced models in the lab, while in search for inspiration. They all were extruded using one color, which triggered my curiosity as if could one include a different color in the same print, since another color could give more meaning to the object, a visual touch which would embed in itself an information in some way or another. In the instance of a geographical model, this would enable communicating the viewer with altitude level that is usually communicated using a topographical map.

After some research, it proved that in order to print with multiple colors, one would simply require a multiple extrusion printer, availability of which was lacking in our current FabLab. However, using some tweaking, one could simply apply one color extrusion printer and pause at necessary levels in order to exchange extrusion material, eventually obtaining a multiple layer print. In this case, it would enable the geographical object, in this instance the "Everest Mountain", to distinguish using different colors a change in altitude. However, the limitation for this procedure is that one could obtain a change of color at different level only, thus printing a batch of layers in one color at a time. Nevertheless, this procedure suited my initial concept. Here is a demonstration of what a geographical model could look like, while printed using a printer with multiple color extrusions.

Since extracting geographical data that was previously mapped using Lidar - Light Detection and Ranging technology with the help of the satellite, is a task of itself, for this tutorial, parts of the instructions are borrowed from the following instructable, which was very helpful in understanding how to successfully extract data using ASTER Global Digital Elevation Map - a NASA project, data of which is available for educational use and not only on the USA governmental website .

Previous instructable will be partly covered in this documentation, as this one is tailored to reach the scope of this project. To get any specific details or missing instructions, please access to following instructable made by drhatch.

Extracting Geographical Data

First things first - in order to print a geographical area, we need to decide which area is going to be printed as well as extract the data. Which ohter place on earth to pick, other than the location which attracts risky climbers and the highest altitude point - the Everest, Himalayan Mountains. Since the mountain is locate in the Himalayan range of mountains, we will extract a territory that comprises other mountains too. Here is a screenshot of satellite collected images of the teritorry that will be used to produce the print, taken from Google Earth.

Following the instructable, we will extract the similar area data using the Earth Explorer website. We result with a four .TIF images that are downloaded for post processing. The reason behind having multiple files is that the data is stored in square like blocks, which are evenly spread across the topographical map. This allows to extract the data and then manipulate it to the desired size, as well as keep the overall data spread low enough to be acessed.

The advantage of a .TIF extension, it is a commonly used format for Digital Elevation Model (DEM), as it contains not only pixels, as in the case of many image formats, but also vector information, which can accurately map out the altitude considering the height as a vector deisplacement.

We will proceed by loading the .tif files into the 3DEM Software in order to select the desired area for postprocessing. Once the .tif files are loaded, the area appears as a flat square, with a gradient coloristic depending on the altitude level. Using the mouse, one can navigate and tell the height which is displayed in the right-bottom corner.

The main advantage of this geographical area is that it contains a big elevation contrast. For instance one can find a range from anywhere below 1000 metres until the peak of 8848 meters. The position for different altitude is highlighted using a yellow dot and can be seen in different instances of the following screenshots.

We continue by selecting the desired area that we want to print, as stated in the instructable. As a result, we obtain a square area, which is highlighted in red, that can also be identified using two edges, North-West edge with 28.918 degrees for latitude North and 86.083 degrees for longitude West, as well as South-East edge with 27.321 degrees for latitude South and 87.775 degrees for longitude East.

The area is then exported into the USGS ASCII format, which is later processed using the Accu Trans 3D software. This software allows to directly visualized the object in 3D space as well as distinguish different elevation levels by using a gradient of colors. This software acts as an intermediate party between the 2D based and 3D based software, by creating a base of refined file that will be ultimately printed.

Manipulating the 2D Layer into a 3D Mesh.

Since our structure is laying flat, which can result in a very flat objec - we would like to achieve more heightby changing the Z scale. This can be accomplished by going to the Change tab located in the right-top corner of the window and manipulating the Scale parameter.

The current Scale of 1.0 makes the object flat.

While the Scale of 10.0 is a exagerated.

Which makes the Scale of 3.0 perfectly suit the aim of the project.

A 3D object is ultimately a polygon mesh, meaning it is a collection of vertices, edges and faces that defines a polyhedral object. These result in an object made of agglomeration of triangles, since laying triangles together over a surface can result in recreating the object itself. The amount of triangles acts as a role of giving the object its realistic (high poly) look or giving it a less realistic (low poly) look. The higher the amount of triangles, the more realistic the object results.

As in terms of our geographical, different poly levels can be seen as well.

In this case the object has a very detailed structure, which equals to a higher amounts of triangles due to it's abundance of small curves and creases that comes from natural geographical shape. This can result in slow processing of the object by the 3D software, which ultimately results in more processing power needed in order to speed up the process. The author of the instructable recommens sticking to an amount less than 200.000 triangles, however working in Fusion 360, anything more than

10.000 triangles can result in a slow editing process. So we will stick to the 10.000 parameter when we will export the object in .x3D format.

Giving 3D object Color

Once obtained the .x3D file, we proceed by importing it into the Blender Software, which is a handy software for manipulating complex 3D objects. We will use this software in order to model different altitude levels on the object. To accomplish that, we will need to create an overlay of an image that will contain altitude information defined by different colors. Then by slicing the already overlaid object, using the Z axis or the height, once we will be printing our 3D object, we will have an information as to where to exchange the extrusion material. Ultimately different elevation level will depend on the color of the material.

Once the object is imported, we need to change the view by going to View and selecting once View Persp/Orth and second time View Top. We should achieve this look.

We rotate the object in order to make it coincide with our initial screenshot of the geographical space. To accomplish that we go to the bottom panel and select instead of Object Mode, we chooseEdit Mode. The whole mesh will highlight in orange, then we go to Mesh, followed by Transform and Rotate.

As explained in the tutorial, we would like to Overlay the Satellite Image. To accomplish that we need the exact image screenshot as our previously indicated coordinates. For that, we will use Google Earth software, which is available for free download. We can now indicate our edges by placing two pin marks for the NW edge and SE edge. To do that we create a new pinmark and indicate the right coordinates.

We result in having two pins that create the borders of our area.

By going to File, Save and Image we export the desired image, which we will later crop t fit our area.

By following the instructable, we add a Sun element into the design and export the image borders, or as the author suggests the UV Layout or the uv_grid.png that we will use in order to layover our satellite picture.

Here is the result of importing the image border, layering the previously extracted satellite picture from Google Earth and stretching the picture according to borders using

Adobe Photoshop

.

Once our image is exported and overlayed and the 3D object is rendered, we can see the recreation of our geographical object in 3D with color.

Embedding Geographical Information using Z Axis and Image Overlay

Everything done until now was mainly guided using the previously mentioned instructable. The overlaying of the satellite picture was done in order to test whether the coordinates were right and everything was done right up until this point. Now we branch out from the previous project by focusing on the elevation of our geographical object.

To get an image map that will contain the information we specifically want, that will be later overlaid on top of our 3D mesh, we will need to use a tool that will allow us to modify the look according to the elevation level. For that we will be using Mapbox Studio. This tool allows us to separate different elevation levels by creating layers and giving them a different color for visual delimitation.

We will proceed by creating a New Style that will be Empty Style. We will add a Satellite Layer by going to Layer, for Source we indicate Mapbox Satellite. We will use this layer to have a visual feedback of whether we are doing everything right once coding our elevation layers.

We proceed by creating our first Elevation Layer by indicating Contour for the Source and selecting ele for the filter. It is important to give a numerical value to the filter, which is represented by a hashtag, and indicate the parameter less than or equal to and the value of 2000.

This basically says, apply a filled polygon on the surface elevation of which is less than or equal to 2000 meters.

Everything highlighted in purple represents the area that matches with our previously indicated criteria. We will give it a black color for this instance.

We will proceed in a similar fashion for our next four layers.

2000 to 4000 meters.

4000 to 5000 meters.

5000 to 7000 meters.

7000 meters and above.

We finally result in such a coloristic map, with such specifications:

  • 0 to 2000 meters - black color;
  • 2000 to 4000 meters - red color;
  • 4000 to 5000 meters - orange color;
  • 5000 to 7000 meters - yellow color;
  • 7000 meters and higher - blue color;
  • In order to do a screenshot for this map, it is simply not enough to zoom out if the area is as big as the one particularly chosen. Since Mapbox software limits the view of Contour layer if the zoom is below 9.00. A workaway around this is to zoom out the entire page, which most of the browsers would alow, for instance Google Chrome does.

    We will proceed by taking a screenshot of the entire area of both, the satellite layer only and the contour layer stack. In order to disable the view of contour layers, simply click on the eye icon for each layer.

    We import both screenshots into the Adobe Photoshop file. Once imported we link both layers so that any sizing changes done on one layer will directly impact the other.

    We proceed by first disabling the visability of our Mapbox layer, by unticking the layer and decreasing the opacity of the Satellite layer.

    Ultimately we would like to overlay both layers over our first original screenshot so that the Mapbox layer will arrange accordingly to the elevation of the 3D model.

    Once this is accomplished, we will proceed by exporting only the Mapbox layer in a .png file, this is ultimately overlayed over the 3D mesh and results in a coloristic 3D rendering.

    Using the existent model, we can navigate closer to where the color is changing for each layer and determine at which height our physical print will need to change the color, by using our Z axis. For that we first need to make sure that our object's location is situated at the origin point of the Z axis.

    First we need to change from Edit Mode to Object MOde.

    Then set the view to Right.

    Then click on the bottom-left corner with the mouse, go to Edit window, then Set Origin and choose Origin to 3D cursor.

    Then find the View window and choose Properties, after which a sidebar will appear. Our aim is to find 3D Cursor. Using this Z axis we will find the height of our object.

    Now we will collect the height information for the object, where it changes it's color.

    Important is right now to extrude our object. This operation is well explained in the instructable and looks like this.

    We will go ahead and export this object as an STL file.

    Creating layer heights for multiple color print

    We will proceed by importing our object into Fusion. To accomplish that we need to firstly upload the object into Fusion and then import it again. The result is a mesh object which looks like this.

    We will go ahead and convert this object from Mesh body to Brep in order to be able to finally export it for printing. To accomplish that we go to Modify, Mesh and Mesh to Brep.

    It is important to lift up the object so that the part where the Top of the geographical area starts to shape is Above the Z axis, even give it some offset, since we will use the 0 axis to create the Bottom support which will be flat.

    We continue by creating a series of planes that are parallel to the O Z axis. First plane will disect the object to create a flat bottom side and the rest will result as copies of the first plane, with Z height that we have previously taken using the Blender software.

    This results in a stack of layers.

    We need to get rid of the bottom side of the object and make it flat. For that we will use the Slicing Body tool, located under Modify.

    For the Body to Split we choose our brep object and for the Splitting Tool we choose our first plane.

    Now important is to create a tower that will be sitting nearby our 3D object and will be ultimately sliced using our planes. Slicing the original object takes a lot of computational power and time, so we will avoid that. The tower should be of square face and extruded along the height of our object. Then we will slice it using the previosuly mentioned slicing function.

    We continue by splitting our tower by using the previously created planes and the splitting tool.

    Because the object was too big, I have scaled it to fit my print together with my tower for the reference. This is an optional step.

    Now we go ahead and measure the height of each layer of the tower. This height will give us an idea where to pause during the printing process in order to exchange the extrusion material.

    Using the Measure tool located under Inspect, we measure each edge of the already splitted tower with the reference to the first one. This way we achieve the height we need for later reference.

    As a result we have the following information for the splitted body:

  • 2000 meters peak occurs at 5.957 mm;
  • 4000 meters peak occurs at 11.299 mm;
  • 5000 meters peak occurs at 12.195 mm;
  • 7000 meters peak occurs at 16.003 mm;
  • At this moment we can proceed by getting deleting our tower and exporting the object. We will export the object as a STL file.

    Printing with Different Colors

    For the printing of our model we will be using the FELIX Tec 4 printer. For that we will need to the Repetier Host software.

    First things first, we need to connect the printer by using the top-left button Connect, making sure that our computer is connected through the USB with the FELIX printer and that the printer is plugged into power and turned on. We will go ahead and load our previously exported STL file. Into the Repetier Host software.

    Before slicing the object, we would like to dig into the settings and understand each criterion. For this particular print we choose Single Head Mode, we use a Brim to prevent the material to float from sides. For the quality we choose Draft with 250um leayer height, since a higher layer gives a nice look when it comes to geopgrahical shaped objects - like it would be a topographical 3D Map. Support is irrelevant for this print. For the speed, a 60mm/s should do the job.

    We continue by going into Configuration.

    In the Print tab, > Speed and Quality} we leave the settings as they are.

    In the > Structures, Shell Thickness is1.2 mm and Top/Bottom Thickness is 0.6 mm. Since we are using a .25mm layer height, it will create a good support for the structure. Skirt Length is set to 150mm max, this should be more than enough.

    For the >Extrusion, the settings are left as they are. One can achieve a finer look of the object if to manipulate these values, however this is not the scope of this project.

    The Filament tab settings result from our material configuration.

    We can go ahead and slice our object, by pressing the Slice button. As a result we have a job that is calculated in time and layers.

    Modifying the G-Code to Change the Material.

    Since we have the information at which heights the material needs to be changed, we can go and dig into the G-Code and pause at certain moments. G-Code is a machine code which instructs the motors at which movements to stop, where to reposition the extruder and so on. It is straight forward to read and modify.

    Now we take each previous recorded height and will divided this value by .25 mm. For example, the first heaight is 5.957 / .25 ~ 23. The resulting approximated value will be the layer height at which we will stop during our printing job. We will later encode that in the G-Code. So we have:

  • 2000 meters transition at layer 23;
  • 4000 meters transition at layer 45;
  • 5000 meters transition at layer 48;
  • 7000 meters transition at layer 64;
  • We will go into the G-Code editor of the Repetier Host and in the search we will search for each layer. For example for layer 45 we will type ;LAYER:45}.

    Now just above each line we will insert this G-Code:

    E -2
    G1 Z18.000
    G1 X0 Y0
    @pause
  • E -2 - extrudes the material so it does not leave any junk on the print;
  • G1 Z18.000 - moves the Z axis above the print. The value of 18.000 varies according to print, important is to have a value that is higher than the previous printed value. Otherwise the machine can run into a conflict;
  • 5G1 X0 Y0 - returns the machine into it's origin X and Y axis;
  • @pause -this is a distinct Repetier Host function, to pause the print. As a result a window pops where the user is asked to continue the print.
  • At this moment we should exchange the material. Going into the Manual Control section, we can first get out the old filament by pressing the Up arrow with the value of -50 or more in the extruder section. Once inserted the new material, we can press the Down left arrow with the value of 100 which will slowly induce the new material inside by also cleaning the remainins of the old one.

    Important is to Save the G-Code and Load it again.

    Now we are ready to print by hitting the Print button.

    Printing of the Everest.

    Finished print of the first layer.

    Time to change the filament to green and continuing the print.

    ... and the second layer.

    Repeat unitl all layers are finished.

    Finished print of the third layer.

    ... here goes the fourth.

    Finaly, the peaks!

    Aftermath.

    Printing a geographical area would be much easie if the 3D objects were already out there, however making a 3D object for a specific geographical placement takes time, understanding and attention to details especially when it comes to printing in different colors.

    The end result surpassed the expectations. Besides learning how to operate the 3D printer, it's different parameters, by printing the Himalayan Mountains in different colors I also learned how to navigate my way through a complex project, test printing using different colors and get the result done despite multiple trials which were time consuming but good lessons nonetheless.

    The peaks of Himalayan Mountains scaled down and at our exposure. Who can tell the difference from the original mountains?

    Download Files:
  • Everest f3d Fusion 360 File
  • Everest STL File
  • Everest gCode Reptier Host File
  • Concept: 3D Scan.

    For this assignment, the goals was to create a 3D model of a realistic object, using a 3D scanner. The scanning object results by means of a camera that can capture the reality in 2D. Using a series of algorithms and post-processing, as well as accelerometer sensors, the image is processed into a 3D model. High accuracy results in higher resolution camera, as well as some critycal techniques that can either bounce the light correctly onto the camera or perhaps other input devices are used.

    In our case, a scanning application embedded onto the iPad is used to deliver the results.

    Producing the Scan.

    As a use case, I picked a previously 3D printed object, which was printed with high accuracy. Knowing that a model printed, then scanned, then printed again results in deterioration due to noise, processing techniques, limitations of the camera, that triggered the curioesity to find out how worse can it go?

    For the first attempts the object was placed onto the chair, which resulted in scanning the object together with the chair.

    In order to fix this problem, I placed the object onto better lighting. A white surfaced table worked much better than the previous attempt, as of previous time the background objects and poor lighting were bouncing of the focus onto the target.

    The scan is produced by rotating together with the scanner arround the object which is steadily positioned on the surface. Prior to the scan, a surface area is selected within which the object should fit. This is how the software recognizes that other objects are not of priority.

    As a result, the scan is fully produced.

    Here is a snapshot of what the software produced as 2D captures of the 3D model.

    Download Files:
  • 3D Scanned Model