Export and store FLP files with API or through PreForm

I am using Formlabs 1, and probably will get a 2. I have my own private cloud platform where I can handle my FDM printers (get status, send prints…), and I want to integrate formlabs printers on that same platform, to streamline my printing process for all machine types.
Thanks to the OpenFL API, some nice stuff can be done (printer status…), however to launch a new print directly from my platform, It seems I am stuck: I could do that several ways:

  • if PreForm could be used on the command line, without using the GUI (something like: > preform,py [input file STL] [printer id] ) - It is not possible now.
  • using the existing OpenFL to send FLP files to printer, ONLY IF i had the “sliced FLP files” of my 3d models stored somewhere. So I need a way to EXPORT these FLP files out of preform, or a feature needs to be added to API, like STL to FLP converter.

What can be done based on these requests ?

1 Like

I wouldn’t hold my breath. Looking at the GitHub for the OpenFL project, the last commits were done over a year ago. I’m guessing @BenFrantzDale or @MattKeeter would be best to address your issues, however.

Thanks for the mention @kevinduhe.

@Thibault2ss, can you tell me how you are running your FDM printers? Is it software you wrote or something that is publicly available? We currently do not support saving of print files or moving them around other than sending prints directly to the Form 2 using either USB or a network.

I understand your first bullet. For the second one, it sounds like you are asking to be able to print to a file and then some way to send that file to the printer as a print job. (I’m guessing you want to do this from a script). Is that correct?

Hi @BenFrantzDale,

Our FDM printers are connected to a RasberryPi which is connected to the local network. On local custom platform, we hold GCode files, which we programatically (through platform interface) send to the rasperryPi. Then the rasberryPi contains some custom scripts to use that Gcode and stream it to the printer (using an open communication package called GPX). It also retreive some logs, and send it back to platform when print is done…

Then, for my second point, you are correct. I wish to be able to print to a file, store that file in my local DB. Then, whenever I need to, be able to plan print jobs, and send the FLP file to be printed on a rasberryPi, which would (with a custom script using your API) feed it to the printer.

I hope this is clearer. I have not done it entirely yet, but I think I have found a way: sending a print to printer without ACTUALLY printing it, and then using the “read_block_flp(block)” and “tofile()” methods of your API, build all the print blocks into one FLP file. You tell me if there is a better way ?

BTW, using “list_blocks()” or “read_block_raw()”, or some others methods on my side is raising USB TIMEOUT ERRORS every time I use them… any solution for that ?

That approach should work, although OpenFL only works with Form 1/1+ printers. Additionally, FLP files have the printer calibration baked in, so if you send it to a different printer it may print but it will be distorted.

ok, thanks @BenFrantzDale !
One more question: gathering the blocks from the printer thanks to the API, I am able to keep them stored in a file.

When I want to send it to printer and use write_block(block, payload), I get timeout errors when the block is big. Even by changing usb timeout setting to a super high value, the block seems to have trouble writing to the printer (I can wait 2 minutes for one block, and it still doesn’t end, and then timeouts)

Is this normal ? How should I proceed ? It seems that from PreForm, a block (a layer) never takes more than 10 seconds to be loaded into printer … ?

Hi @BenFrantzDale, any answer for these last questions ?
Thanks !

What OS are you using? Could you post the full error and the relevant code?