5
$\begingroup$

I am working on a design in OpenSCAD, and need (would want) two things that seem tedious to hand-code:

  1. A pattern of holes in a wall, for less weight/material. Could be round holes or some geometric pattern.

  2. Empty enclosed space, with some grid-structure for stability. Again, for saving weight/material (and time during the printing).

Are there any libraries for these things?

$\endgroup$
3
$\begingroup$

I'm not aware of libraries that do that for you (but you can create your own, see end of the answer), but creating a relieve hole pattern is not that difficult or tedious using iterator functions (e.i. the for loop). Note that it may not be a good idea to make enclosed holes inside your object, see the edit section at the bottom of the answer.

Small OpenSCAD test script:

 tol=0.2;

 difference(){
   cube([100,100,10]);
   for (x=[10:20:90]){
     for (y=[10:20:90]){
       translate([x,y,-tol/2]){
         cylinder(r=9,h=10+tol,$fn=180);
       }
     }
   }
 }

enter image description here

This can be used for both parts of your question, but in case the pattern needs to be inside an object you need to lower the value of h in the subtracting cylinder and raise/translate it (you could use the center=true in the cylinder function as a parameter and raise the center to the middle of your object translate([x,y,objectThickness/2])). You could make a module of the recurring pattern yourself to create your library.

note: Replace cylinder with cube or any other geometrical solid or (2D) pattern (use linear_extrude) to subtract from your part.


EDIT:

Note that it is not always wise to create your own spacing/grid structure enclosed in the model. Please read the accepted answer of this question. This answer explains that slicer applications work best with true solids!


| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.