PHYKER
Posts: 4
Joined: Fri Sep 30, 2016 4:52 pm

Offset perimeters with infill for strength?

I was thinking about a feature that would offset every other layer's perimeters.
Say you have 4 perimeters.
1st layer would print 4 perimeters.
2nd would print 3.
3rd would print 4.

It could be 5 and 3/ 4 and 2/ 6 and 3/ however you set it up.

This would potentially make the print stronger by weaving the infill into the perimeter and would make it easier to use with printers that make the small gaps where infill meets the perimeters. It would be the same as "extra inflation" for bridging but adding this to every other layer could make prints much stronger by adding the weaved perimeters/ infill.

Thanks everyone for making such a great product and keep the updates coming! =-D
zemlin
Posts: 434
Joined: Mon Feb 01, 2016 11:36 am

Re: Offset perimeters with infill for strength?

That's an interesting idea, but for it to make the difference you're looking for you'd have to ensure that your perimeter -> perimeter bonds are better than your infill -> perimeter bonds. I'm not sure that's the case at all. You can specify an overlap percentage on the infill and if you push that up a bit you are probably getting stronger bonds between the infill and your innermost perimeter than between perimeter beads. If that's the case, I don't see how the weaving will improve the part integrity.
PHYKER
Posts: 4
Joined: Fri Sep 30, 2016 4:52 pm

Re: Offset perimeters with infill for strength?

It would act like a "space frame" built in. That and it would reduce a part's weight/ material use.
Just thought it would be a good exipramental option.
dorsai3d
Posts: 237
Joined: Mon Jan 11, 2016 9:01 am

Re: Offset perimeters with infill for strength?

I've been meaning to write a quick script that would do this. You can use two similar processes to print the same model and interleave them by postprocessing the code to delete every other layer. This is a total messy hack, but you could definitely use this to test the interleaved perimeters (or interleaved infill percentages, or anything,really). I'm going to test it on an actual print sometime layer, I've got some other things going right now.

Usage:
interleave.py <FILE> <PROCESS COUNT>

Example Simplify3D postprocessing line:
./Users/dorsai3d/bin/interleave.py "[output_filepath]" 2

Code: Select all

#!/usr/bin/env python

"""
Interleave overlapping process gcode generated by Simplify3D
interleave.py <FILE> <PROCESS COUNT>
v0.1 by dorsai3d
"""

import os
import re
import sys
import string
import time

if __name__ == '__main__':
   if len(sys.argv) < 3:
      sys.exit('usage: interleave.py <FILE> <PROCESS COUNT>')
   infilename = sys.argv[1]
   outfilename = '{}_interleaved{}'.format(os.path.splitext(infilename)[0],os.path.splitext(infilename)[1])
   
   processCount = int(sys.argv[2])
   currentLayer = 0
   
   #Wait until Simplify3D is done writing the gcode file
   targetLastModifiedTime = os.path.getmtime(infilename)
   while (time.time() - targetLastModifiedTime) < 0.5:
      sleep(0.25)
      targetLastModifiedTime = os.path.getmtime(infilename)
   
   with open(infilename) as infile:
      with open(outfilename,"w") as outfile:
         for line in infile:
            code = string.split(line)
            if len(code)>1:
               if code[1]=='layer':
                  if code[2] != 'end':
                     currentLayer = currentLayer + 1
                  elif code[2] == 'end':
                     currentLayer = 0
                  outfile.write(line)
               
               elif currentLayer == 0:
                  outfile.write(line)
                  
               elif currentLayer % processCount != 1:
                  pass
               
               else:
                  outfile.write(line)

Return to “Feature Requests”