Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add instances #6237

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open

Add instances #6237

wants to merge 2 commits into from

Conversation

vovodroid
Copy link
Contributor

@vovodroid vovodroid commented Jul 24, 2024

Resolves #632 [FR] Convert from "Cloning" models to "Instances" like PS originally does. , resolves #545 Fill Bed With Instances, resolves #448 [Feature Request]: Add / Remove instances of item like prusa slicer.

For whatever reasons Bamboo dropped instances support. Fortunately they only commented out some code (besides menu creation, I restored it from Prusa), while keeping all instances infrastructures.

image

image

Besides usability instances speed up slicing.

Resolves #632 Resolves #2719

@CristianGTR97
Copy link

I need this

@vovodroid
Copy link
Contributor Author

Everybody needs this)))

@recrudesce
Copy link

YES ! Get this merged asap !

@CristianGTR97
Copy link

@SoftFever please verify and merge this. This is a must for anyone printing in batches

@Azio-Pantheon
Copy link
Contributor

I actually implemented the same thing couple weeks ago lol. Though I did it by adding back the "+" and "-" buttons on the tool bar. I just figured having the buttons are easier.
image
I can share these changes too if people really want it

@vovodroid
Copy link
Contributor Author

vovodroid commented Aug 1, 2024 via email

@vovodroid
Copy link
Contributor Author

vovodroid commented Aug 2, 2024

Added buttons to the title bar:

image

@michmela44
Copy link

michmela44 commented Aug 8, 2024

Also resolves #2719 Re-add instancing support for objects on the print bed

@morganvenable
Copy link

@michmela44 is it possible to disable the "autoarrange" when adding instances? It makes creating large arrays of small parts painfully slow. Auto-arrange is a call-it-when needed thing, no?

@vovodroid
Copy link
Contributor Author

vovodroid commented Aug 25, 2024 via email

@morganvenable
Copy link

Possible bug: When you click "add instance", the button becomes unclickable for a brief but variable period of time. If you don't do anything, it goes clickable again with green highlight. But if you happen to click it again while it's unclickable, it stays unclickable until the mouse moves a pixel or two, and only then does the green highlight come back on. Is this a common behavior across UI controls here?

@vovodroid
Copy link
Contributor Author

the button becomes unclickable for a brief but variable period of time.

Yes, there is a check whether add instance operation is currently available. Probably it could be optimized.

@morganvenable
Copy link

morganvenable commented Aug 26, 2024 via email

@vovodroid
Copy link
Contributor Author

it requires mouse to move to reactivate

Or click on disable button. Indeed.

@morganvenable
Copy link

Also: In Prusaslicer, you can copy an instance group and get a fresh instance group with a new master instance. This is super useful for people with large numbers of small parts with variations -- I set up a group of 100, place carefully, then copy/paste it and replace the master instance with another part.

But in Orca with this latest PR, copy-pasting a group only pastes the original instance. Here's the result in PrusaSlicer
image

@morganvenable
Copy link

morganvenable commented Aug 26, 2024

Just checked and Prusaslicer doesn't appear to make this slow check call on "add instance", at least in 2.7.4.

@vovodroid
Copy link
Contributor Author

Actually the whole code of MenuFactory::append_menu_items_instance_manipulation(wxMenu* menu) method is taken from the latest PrusaSlicer.

@morganvenable
Copy link

Interesting! I'll get on the latest PS and see if anything has changed/feels weird.
Added a feature request 6570 to restore the copy/paste behavior of PS in this functionality, too. Really helpful to be able to stamp out big plates of slight variants.

@rtm7777
Copy link

rtm7777 commented Sep 11, 2024

Any news on this?

@morganvenable
Copy link

morganvenable commented Sep 11, 2024 via email

@CristianGTR97
Copy link

@vovodroid @morganvenable @SoftFever Do you guys think this feature could be ready and included with the stable release of orca v2.2?

@vovodroid
Copy link
Contributor Author

I think so.

@CristianGTR97
Copy link

@vovodroid @SoftFever @Azio-Pantheon @morganvenable
Any updates with this?

@KubaMiszcz
Copy link

any chances to get this in next beta/RC?

@KubaMiszcz
Copy link

@vovodroid @morganvenable @SoftFever Do you guys think this feature could be ready and included with the stable release of orca v2.2?

how can we test it? i tried to build this one but i havent environment for this, and got some errors when just fires release_build.bat

is executable somewhere to get?

@morganvenable
Copy link

morganvenable commented Oct 25, 2024 via email

@vovodroid
Copy link
Contributor Author

@KubaMiszcz I build it locally on Win10 with VS2022 and build_release_vs2022.bat. I updated PR to the latest main, try to build it again.

@morganvenable actually this PR doesn't existing workflow, so if one doesn't use instances it won't harm. I only added menu and tool bar and uncommented original Prusa code.

@morganvenable
Copy link

morganvenable commented Oct 25, 2024 via email

@MongooseTNM
Copy link

Please bring this back. This is the only reason I hate using Orca Slicer and I have no idea why Bambu removed it in the first place

@dimitarsp
Copy link

Hi, just mentioning this as proper instancing/sharing settings it is something super important, hope that it will be reviewed merged soon!

@Zogar89
Copy link

Zogar89 commented Dec 21, 2024

I download the nightly build to try this feature but it hadn't that. :(

Copy link

@MongooseTNM MongooseTNM left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are some text issues like it saying copies instead of instances when you go to set the number of instances but everything is functional otherwise.
image

@MongooseTNM
Copy link

MongooseTNM commented Dec 21, 2024

I download the nightly build to try this feature but it hadn't that. :(

click on details in the "checks" for your operating system and the zip should be there in summary on the right side
image
image

@vovodroid
Copy link
Contributor Author

vovodroid commented Dec 21, 2024

There are some text issues like it saying copies instead of instances when you go to set the number of instances but everything is functional otherwise. image

@MongooseTNM this naming is Prusa (actually Slic3r) inheritance, and exists in Bambu Studio, so I just use it as is.

@CristianGTR97
Copy link

I have been testing this feature, and it is one that I could really benefit from. But I think it has some quirks that could be improved:

  1. Every time I add an instance, it auto-arranges all the instances. This can be a problem when I arrange some instances and realize I can fit a few more on the buildplate to max out the batch quantity, so I add a few more. When I do what I described before, all the instances get rearranged, and I lose my progress. Below you can see a video showing this issue.
    https://github.com/user-attachments/assets/85c90963-3d77-4d87-9333-e2c2144ab21b

2-It seems like instances and exclude object functions aren't working well together. When I try to skip an object, not all of the objects in the buildplate are selectable.

As you can see in the photo below, only 14 out of the 48 items on the plate are selectable to skip.
WhatsApp Image 2024-12-24 at 01 39 11_af0a4a9f

3-It seems like instances and "as object list" intra-layer order aren't working well together. Sometimes when I use instances and select "as object list" intra-layer order, the order of the instances is not respected, and the objects print in random order.

You can see in the video below that the print order doesn't match the object list order, even though "as object list" is selected as the intralayer order.
https://github.com/user-attachments/assets/947a69e0-02a5-4008-a40b-f648422a9a8c

4-when I enable instances of multicolor objects, the prime tower preview gets extremely long and takes up too much space on the buildplate, and sometimes OrcaSlicer interprets this as an object out of boundary, and I can't click slice. I have to move the prime tower preview around, seemingly at random, until the "slice plate" button becomes active again.
long tower

I would also like to propose a few enhancements:

1-Allow for rotation of all the instances in place. I found a workaround for this. I add a surface with zero volume as a part, and then I can rotate the main body or main parts, and it propagates to all instances.
https://github.com/user-attachments/assets/f2db4ac7-95d5-4e50-bf69-659897c62494

2-Allow for rearrangement of the order of the instances. This can be useful when I choose "as object list" as the intra-layer order. This way I have the freedom to arrange all the objects on the buildplate without paying attention to their order in the object list and later rearrange their order in the object list. I would like to be able to rearrange instances as I can rearrange individual objects, as shown in the video below.
https://github.com/user-attachments/assets/6a7f6a2d-69c2-44d6-a835-85197655c677

3-Allow to duplicate or copy/paste an object with its instances and keep the relative position of all the instances. This can be really useful when I have several variants of a model and I want to print them all in batches. I can load and arrange the first variant, and then I can copy and paste that arrangement to a new buildplate and just load the new variant, and it will already be arranged in the same way as the first one but in a new buildplate. This way I can create a single project with batches of all the variants in different buildplates.

You can see in the video below that when I copy and paste a set of instances, they get all centered, losing the original arrangement:
https://github.com/user-attachments/assets/51f5a352-3423-4713-ad62-6cc5b12d4933

I wish I knew how to code to help in the development and improvement of this feature, but I don't. So all I can do is test it and report my observations, and hopefully the developers will work on it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet