SoftFever / OrcaSlicer

G-code generator for 3D printers (Bambu, Prusa, Voron, VzBot, RatRig, Creality, etc.)
https://discord.gg/P4VE9UY9gJ
GNU Affero General Public License v3.0
6.18k stars 710 forks source link

Spoolman intergration - Request Filaments IDs #2955

Open TexZeTech opened 7 months ago

TexZeTech commented 7 months ago

Which printers will be beneficial to this feature Spoolman works independently but also has Klipper integration, it looks like someone is making a plugin for OctoPrint

Describe the solution you'd like I would like to have a way to pull filaments from the Spoolman instance/db and list them under filament settings in a separate tab.

Or on print, if Spoolman has an IP entry have a second section under the "upload" & "Upload & Print" with a group label around those buttons with "choose filament & Upload." & "Choose filament then Upload & Print."

If you select choose filament it would then pop up a dialog that would list brands/spool/color/material etc. Mainsail does it well.

image image

Describe alternatives you've considered I could probably make a filament name and go by that but I would rather just have all my spools entered into a db and pull from that. However, this would be aggravating from the ID standpoint.

Additional context https://moonraker.readthedocs.io/en/latest/configuration/#spoolman https://www.teamfdm.com/forums/topic/2212-spoolman-filament-management https://donkie.github.io/Spoolman/ https://github.com/Donkie/Spoolman

Eldenroot commented 7 months ago

Wow, this could be really nice also for other vendors and printers...

alexmoras commented 7 months ago

I think in the first instance, we ignore the "Spools" part of Spoolman. Loading / unloading the spools can be done through Mainsail / Klipper for the time being. It would be nice to do this through Orca but not necessary straight off.

Instead, we focus on just pulling the Filaments from the Spoolman API and using it as a single-source-of-truth for OrcaSlicer. I guess, when the Filaments are properly loaded in to Orca for the purposes of slicing the model, we can then look at loading Spools specific to the Filament we have sliced with.

Ocraftyone commented 7 months ago

It would be really awesome to also be able to use a klipper macro to select the filament on color switch

reapola commented 6 months ago

would love this sort of integration which could potentially fed through to an MMU

newtop95 commented 6 months ago

As a short-term solution I think it would help if a new id field would be implemented in the filament settings, where one could manually enter a filament/spool id. This id could be used via start gcode or even filament start gcode and could for example be passed to the SET_ACTIVE_SPOOL macro in klipper.

mysugarape commented 5 months ago

As a short-term solution I think it would help if a new id field would be implemented in the filament settings, where one could manually enter a filament/spool id. This id could be used via start gcode or even filament start gcode and could for example be passed to the SET_ACTIVE_SPOOL macro in klipper.

Great feature request ... as dirty workaround ... open the filament settings in orca ... switch to gcode tab and add ...

SET_ACTIVE_SPOOL ID=#

Unload the spool add in End macro: CLEAR_ACTIVE_SPOOL

(replace # with ID of filament ID in spoolman)

it will load the spool after the start macro is done ... and unloads it if the print is done ... works like a charm :)

Downside: u need a filament for each color, if u like to track it 100% ... If u use a purge line ... this amount is not tracked ... because it runs after the start macro ...

But a simple ID Field in the Filament settings, which could be exported as Placeholder would be great ... and solved the problem with untracked amounts during purging ... (but in real no one cares about this amount ... :) )

EdwardChamberlain commented 3 months ago

It would be extremely useful for this to "consume" filament in spoolman when a print is sent to a printer even if it is as simple as a popup on the print page. This would let us (roughly) track 3rd party filaments on 3rd party printers.

I dont think an ID in the filament settings would work because I (and I assume most) have multiple spools under a single profile - having to create a new spool every time I run out of filament would be a pain.

TexZeTech commented 3 months ago

It would be extremely useful for this to "consume" filament in spoolman when a print is sent to a printer even if it is as simple as a popup on the print page. This would let us (roughly) track 3rd party filaments on 3rd party printers.

That is a not bad idea and should also be suggested in the https://github.com/Donkie/Spoolman git.

I dont think an ID in the filament settings would work because I (and I assume most) have multiple spools under a single profile - having to create a new spool every time I run out of filament would be a pain.

If you read my idea it gets the db list from Spoolman and lets you select it and there you could select it on an individual filament selection on OrcaSlicer. Or at least that's how I envision it.

Describe the solution you'd like I would like to have a way to pull filaments from the Spoolman instance/db and list them under filament settings in a separate tab.

Or on print, if Spoolman has an IP entry have a second section under the "upload" & "Upload & Print" with a group label around those buttons with "choose filament & Upload." & "Choose filament then Upload & Print."

If you select choose filament it would then pop up a dialog that would list brands/spool/color/material etc. Mainsail does it well.

Ya.... that's what the individual qr codes and by extension ids are for..... It's also meant to track current stock of spools owned.

EdwardChamberlain commented 3 months ago

That is a not bad idea and should also be suggested in the https://github.com/Donkie/Spoolman git.

Spoolman already provide an API endpoint for "using" filament: https://donkie.github.io/Spoolman/#tag/spool/operation/Use_spool_filament_spool__spool_id__use_put

Orca just needs to hook up to this when it sends a job to the printer.

TexZeTech commented 3 months ago

That is a not bad idea and should also be suggested in the https://github.com/Donkie/Spoolman git.

Spoolman already provide an API endpoint for "using" filament: https://donkie.github.io/Spoolman/#tag/spool/operation/Use_spool_filament_spool__spool_id__use_put

Orca just needs to hook up to this when it sends a job to the printer.

Show me where I can click a single button to consume filament on their interface?

I know I can go into an individual spool and add/subtract filament.

sntlewis commented 3 months ago

I would like to have Orca (and other slicers) programmatically set the Spool ID. I use the Spoolman "SET_ACTIVE_SPOOL_ID" in the filament settings overrides in Orca. Closest I've gotten to a solution. Also "CLEAR_ACTIVE_SPOOL" in the filament end g-code. This requires me to set the starting filament every time I start a new job. I only run one instance so....

Requires me to manually map the filament in Orca to a Spool in Spoolman which could be very cumbersome if lots of spools involved.

Also Spoolman has a three level database (vendor, filament, spool). From the Spoolman side makes setting up a new spool of filament as simple as "clone" but complicates the Slicer side.

Ocraftyone commented 3 months ago

I have been working on a full spoolman implementation and the basics are ready to go. I'll create a pull request soon and link it here to get more feedback.

github-actions[bot] commented 3 weeks ago

Orca bot: this issue is stale because it has been open for 90 days with no activity.

TexZeTech commented 3 weeks ago

smacks bot upside head No, bad bot, they are working on it.