Unexpected behaviour of model with hollows

I have designed a model that has three objects. One of the objects contains two hollows for holding magnets. When I slice the model, all three objects are shown, and all three print properly.

Sometimes I want to just print the object with the holes, so I split the model by object and delete the two objects that do not have hollows.

If I then move the object with hollows or clone it, I discover that the part I moved leaves behind what appears to be a negative part. Printing it at that point prints a solid model without hollows, just sparse infill.

I think it would be preferable to not consider the hollow part to be an object.

I have example screenshots, if anyone doesn’t understand the text description of the problem.

Can you upload the .3mf?

Here you are.
This is actually something that I don’t NEED to clone, as they are custom one-offs, but it serves to show the problem.
stick_curling_badge_mag_AJ_Scott.3mf (1.6 MB)

Once you split the model into objects, you need to remerge the sign with the “hollows”. Then when you move/copy the part it will as an assembly. You will also need to change the “hollow” parts to be a negative part and adjust their positioning as they will have dropped to the plate when split.

Just an FYI you don’t need to delete these parts. Just right click on them and unselect “Printable”

The object will turn translucent and will not be included when sliced.

Here is your file with these changes made for your reference
stick_curling_badge_mag_AJ_Scott_mod.3mf (1.3 MB)

5 Likes

[quote="Just an FYI you don’t need to delete these parts. Just right click on them and unselect “Printable”
/quote]
I find it easier to select them using SHIFT+CTRL+LEFTBUTTON+DRAG to select them and hit delete, but that’s just a mater of preference.

Thanks for that. I didn’t know where to find ‘merge’, but that entire operationis just ridiculously complicated and prone to errors, especially in that of the effort required to reposition the negative objects to exacly the number of layers required. The effort to position those hollows has already been carefully done in my CAD program.

If I have an STL with hollows, I see no reason why the hollows have to be negative objects. That smacks of lazy programming.

Sorry, but I don’t consider it solved.
The only way I could solve this is to split the objects in my CAD software and put them into Bambu Studio separately. Unacceptable.

That’s a real funny way of expressing your thanks for taking the time to explain the issue and how to work with it…

4 Likes

Sorry, but I do appreciate your effort. I am just a little testy because of this issue.

Normally a STL will not split the interior features into seperate objects. It is rare to see this and is probably caused by your design/cad program not outputting a correct model. I would look into your process.

1 Like

As far as I know there are basically 0 paid users helping here, there are however oodles of unpaid experts, @JonRaymond is one of them.

I think you should keep in mind that this is a community of users that help each other so posting with that in mind is in order.

That being said, I read though and it strikes me that the ‘hollows’ are parts? You are free to design stuff that makes a management nightmare or you could design it so it exports as a done deal that cannot break. Is your design meant to have dynamic magnet hole locations? It seems to be.

The 3d design and the slicer are parts of the orchestra, you are the conductor.

2 Likes

I will. I did not intend to insult him. My comments were basically aimed at Bambu Lab, and I realize now that I should have thanked him for the effort.

Yes, they are parts, but not because I designed them as parts. They are hollows within an object. Bambu Studio, for some reason, chose to make them parts.

This is something that I have never seen on any other slicer I have used in my 10 years of 3D printing.

Not sure what you mean by ‘dynamic’ when speaking of magnet hole locations.
They are holes to contain magnets, put in starting at layer 3, and ending at 2 layers above the top of the magnet. The other two parts you see are for the magnets that hold the badge. They are assembled after printing,

One workaround I could use is to split the badge itself at the top of the hole, and assemble that later. It’s a bit of a kludge, though.

And thank you for responding.

Here is the module I used to make the main badge. It’s written in OpenSCAD.

module base() {
difference() {
up(2.25) cuboid([80,40,4.32], rounding=6, edges=“Z”);
up(2.001) left(15) cyl(h=3.4,d=13); // magnet
up(2.001) right(15) cyl(h=3.4,d=13); // magnet
}
}

It makes a cube with rounded edges, then subtracts two cylinders from it.
In every slicer I have used in the past 10 years, none have changed a hollow to a negative part.

It just isn’t the CAD program. I’ll see if I can find a model from makerworld that does the same thing.

Hopefully someone with SCAD experience will happen along, I only use fusion and I could easily design this model both ways, with parts for the hollows and without, it all comes down to what I componentize.

Though without any experience I could assume that each line above within the difference brackets represents a part and there is likely another way to program it such that its not another part yet a merge of multiple parts into one. What I would be after is 3 parts exporting and not 5.

In other words, its the 3d model output here that is suspect and not how the slicer handles it, at least in my novice opinion.

I think you could workaround the issue by exporting each of the two unique pieces separately, then you can reimport them into one project and there would be no reason to unbind the grouping of objects. It’s a hack but it should get you back in business quickly while you figure out the particulars later.

I have found an interesting model on makerworld.

If you download Main Part, slice it, and look at the layers, you will see that it does have a hollow that holds a ball magnet.

If you split to objects, the cavity will drop to the bed, but if you move it, the cavity, in its new position, goes with it. So we now know that the cavity is NOT an object, or perhaps we could say that it is an object that can’t be separated from the surrounding object.

Now export the model as an STL. Load that STL into Bambu Studio and slice it.
You will see that the cavity is no longer a cavity, but is now filled with sparse infill.

Bottom line is that Bambu Studio does not handle STLs ‘properly’, in my opinion.

Looking deeper into this I think there is more of an issue than I initially thought.

I imported both a STL and STEP of a demo part with round voids.

Splitting either part into objects yields the same result the the OP found. The voids are split from the parts and solidified.

test part.3mf (43.5 KB)

I misspoke. There are objects in that model. The reason I did not see them is because I was considering the ‘+’ shape to be the cavity, but it isn’t.
I saw what was hapening when I rotated the model, and saw that the models are cubes at the borders.

example

Thanks! I was starting to doubt my sanity. :stuck_out_tongue_winking_eye:

I’ve been using OpenSCAD for about 8 years now. I still don’t consider myself an expert, but I am definitely proficient.

Jon seems to have reproduced the problem.

I could. There are several workarounds, but I still think Bambu Lab can do better.

It’s not just a Bambu problem…

Orca Slicer

Prusa Slicer

certainly not only Bambu, the slicer will try to break down the STL into the the next level down components to make it an assembly.

I still fail to see what the issue here and/or the intend is.
Want to move or clone it together then select the assembly and not just one of the parts/objects within that assembly.
I do not see a pause command in the 3mf so how do you get the magnet inside the pockets of the badge?

1 Like

I now have 10 minutes experience in open SCAD and according to shatGPT the difference command creates a component for each difference. Based on the code you posted and that tidbit of information you are getting the expected result. I even spent a few minutes in the makerlab designer to try and prove this but it was being a pain so my openSCAD education has ended abruptly.

I also read there is a union command, I would guess that doing a union around the difference would make the result as one, as you appear to want.

Difference: creates multiple components/parts that I require a strict relationship on so I should lock it in to a single component so the slicer software can’t destroy it!