3D opart design with OpenSCAD #132: creating an"exoskeleton" support structure for printing.

2 min read
By Bob
3D opart design with OpenSCAD #132: creating an"exoskeleton" support structure for printing.

While I was experimenting with .3mf file export it occurred to me that you could use one part of the file to create an external support using infill, here is what I have implemented so far:

//
  Path_to_stl_file=("");
 
/*[Support Frame]*/
transparent=false;
fill=false;
frame_diameter=100;//[1:.01:400]
frame_height=100;//[1:.01:400]
frame_shape=40;//[3:1:100]
move_stl_z=0;//[-400:.01:400]
Spacing=1;//[.5:.01:1.5]

module frame(){
if(transparent){
%render()
difference(){
color("green",.1)
linear_extrude(frame_height,convexity=6)
circle(d=frame_diameter,$fn=frame_shape);
translate([0,0,move_stl_z])
import(Path_to_stl_file,center=true,convexity=6);
}}
else{
difference(){
color("green",.8)
linear_extrude(frame_height,convexity=6)
circle(d=frame_diameter,$fn=frame_shape);
translate([0,0,move_stl_z])
import(Path_to_stl_file,center=true,convexity=6);
}}}

module ThreeDfill(){
color("green")
hull(){
if(fill)
intersection(){
sphere(600);
translate([0,0,move_stl_z])
import(Path_to_stl_file,center=true,convexity=6);
}}}

difference(){
frame();
scale([Spacing,Spacing,Spacing])
color("blue",.4)
ThreeDfill();
}

translate([0,0,move_stl_z])
color("red")
import(Path_to_stl_file,center=true,convexity=6);

Here are some examples of the results:

After rendering and exporting the file as a .3mf file you can import it into prusa slicer and modify the infill and layers of the frame section:

I set the perimeters and layers to zero so only the infill would be printed:

Then you can change the infill percentage and style to accommodate whatever you are printing:

I added a "spacing" option to adjust the distance from the object the frame is so they don't stick together and the frame will be easy to remove:

I also added a "transparent" option so you can see where the object sits in the frame, and a "fill" option so it it is selected the infill of the frame won't fill the inside of a hollow object when it prints.

Note: the "transparent" check mark needs to be unselected before rendering or the frame won't be rendered.