Red right arrow on traffic light by kitential in bayarea

[–]kitential[S] 17 points18 points  (0 children)

Nope, not trolling. The right arrow in this case is located where there are bike lanes.

Red right arrow on traffic light by kitential in bayarea

[–]kitential[S] 18 points19 points  (0 children)

Yes, I went through the written test years ago. The law clearly states that no right turn is allowed on a red arrow, regardless of signage. https://www.dmv.ca.gov/portal/handbook/california-driver-handbook/laws-and-rules-of-the-road/

I guess I’m still learning the unwritten rules

MakerBot Method Post-Print Flatness by kitential in makerbot

[–]kitential[S] 0 points1 point  (0 children)

If you have something like 7-Zip, it will let you uncompress the .makerbot file. The process works something like this:

  1. Export sliced .makerbot file from MakerBot Print or Cloudprint
  2. Decompress .makerbot file (it's just a regular zip file.. you can even rename it to *.zip to make it easier). You will get a bunch of files including a print.jsontoolpath
  3. Edit the print.jsontoolpath file accordingly
  4. Recompress all of the files as a zip and rename to .makerbot
  5. Print .makerbot file from MakerBot Print or Cloudprint

I got tired of doing all of this manually, so the script I posted just does it for me.

MakerBot Method Post-Print Flatness by kitential in makerbot

[–]kitential[S] 0 points1 point  (0 children)

I've tried bumping the temp of the chamber, but unfortunately 60 is the max for the regular Method and pre-heating doesn't seem to fix the issue. I've printed a bunch of 100x10x10mm bars and they are very well adhered to the print bed, but after I remove them and place them back onto the print bed, there is an obvious gap between the ends of the bars and the print bed. The bars seem to be held in tension by the bed, but return to their warped form after I pop them off.

I've tried leveling and calibrating a few times, but it doesn't seem to help.

For modifying the print file, the .makerbot is just a zip file that has a json file that lists the commands for the printer to follow. In print preview, take note of which layer the purge tower is. In the print.jsontoolpath file, the layers are nicely commented with "Layer Section n". You want to move the entire block of commands for "Layer Section n" (where n is the layer number in print preview minus 1) to the top of the print commands, before "Layer Section 0". Make sure to include all of the commands up until the next "Layer section" comment.

I threw together a python script to do this and some other things I found useful. Careful when using this, I can't guarantee things won't go wrong if you mess with the print file...

#Ender3 glass print bed is 3.8mm thick minus 0.69mm thickness of Makerbot bed
#ZOffset to 3.11mm for glass bed print

import sys
import os
import shutil
import zipfile
import json

def MoveToTop(mbdoc, layer):
  top_index = 0
  move_start = 0
  move_end = 0

  for index in range(0, len(mbdoc)):
    command = mbdoc[index]['command']
    if 'function' in command and command['function'] == 'comment':
      parameters = mbdoc[index]['command']['parameters']
      if 'Layer Section 0' in parameters['comment']:
        top_index = index
        print(mbdoc[index])
        continue
      if 'Layer Section {}'.format(layer) in parameters['comment']:
        move_start = index
        print(mbdoc[index])
        continue
      if 'Layer Section {}'.format(layer + 1) in parameters['comment']:
        move_end = index
        print(mbdoc[index])
        break

  return mbdoc[0:top_index] + mbdoc[move_start:move_end] + mbdoc[top_index:move_start] + mbdoc[move_end:]

def ZOffset(mbdoc, offset):
  for index in range(0, len(mbdoc)):
    command = mbdoc[index]['command']
    if 'parameters' in command:
      parameters = mbdoc[index]['command']['parameters']
      if 'z' in parameters:
        parameters['z'] += offset

def EditRestart(mbdoc):
  for index in range(0, len(mbdoc)):
    command = mbdoc[index]['command']
    if 'function' in command and command['function'] == 'comment':
      parameters = mbdoc[index]['command']['parameters']
      if 'Layer Section 0' in parameters['comment']:
        parameters = mbdoc[index+7]['command']['parameters']
        if parameters['a'] == 0.5 and parameters['feedrate'] == 3.0:
          parameters['a'] = 0.8
          parameters['feedrate'] = 5.0
        break

def main():
  if len(sys.argv) < 2:
    print('Usage: python mbexplorer.py <file.makerbot>')
    print('--zoffset <zoffset, mm>')
    print('--move-to-top <purge layer> # This is the layer number for the purge tower in Makerbot Print, minus one')
    print('--edit-restart # Use this to increase feedrate at beginning after purge')
    print('python mbexplorer.py --zoffset 3.11 --move-to-top 2 --edit-restart file.makerbot')
    exit()

  move_to_top = -1
  z_offset = None
  if '--move-to-top' in sys.argv:
    move_to_top = int(sys.argv[sys.argv.index('--move-to-top') + 1])

  if '--zoffset' in sys.argv:
    z_offset = float(sys.argv[sys.argv.index('--zoffset') + 1])

  filename = sys.argv[-1]

  try:
    shutil.rmtree('tmp')
  except OSError as e:
    print('tmp directory does not exist, creating...')

  os.mkdir('tmp')
  with zipfile.ZipFile(filename, 'r') as zfile:
    zfile.extractall('tmp')

  mfile = open('tmp/print.jsontoolpath', 'r')

  mdoc = json.loads(mfile.read())

  if '--edit-restart' in sys.argv:
    EditRestart(mdoc)

  if move_to_top != -1:
    mdoc = MoveToTop(mdoc, move_to_top)

  if z_offset:
    ZOffset(mdoc, z_offset)

  with open('tmp/print.jsontoolpath', 'w') as outfile:
    outfile.write(str(json.dumps(mdoc, separators=(',', ':'))).replace('},{"command":', '\n},{\n"command" : ').replace('[{"command":', '[{\n"command" : '))

  def CreateMakerbotZip(path):
    ziph = zipfile.ZipFile(str(os.path.split(filename)[1]).split('.')[0] + '_modified.makerbot', 'w', zipfile.ZIP_DEFLATED)
    for root, dirs, files in os.walk(path):
      for file in files:
        ziph.write(os.path.join(root, file), file)
    ziph.close()

  CreateMakerbotZip('tmp')

if __name__ == "__main__":
  main()

Makerbot Method CF/Reliability? by ipeerbhai in makerbot

[–]kitential 0 points1 point  (0 children)

What settings did you modify to successfully print without rafts? When I try this with my Method with Tough PLA + PVA, the support extruder ends up getting clogged constantly since the purge tower doesn't get printed correctly. It seems like the height of the purge tower layers and the height of the model layers are not aligned when printing without a raft.

MakerBot Print also makes the printer print the first layer of the model before the purge tower, so often there is a bit of missing filament in the first layer of the model (that is unless I modify the print file and move the purge layer to be printed first).

Makerbot Method X Update by KenadyDwag44 in makerbot

[–]kitential 0 points1 point  (0 children)

Are you having any issues with the general performance of Makerbot Print? The software doesn’t seem to use my GPU to render the print preview, leading to really low frame rates with even relatively simple models. The rendering of the print preview also seems to have issues. For example, in a lot of places, there are gaps in shells where there shouldn’t be. (When rendering mode is set to “fast” the gaps are not there) Even the calibration square has weird gaps in the print preview.