Can't make a boolean subtract .. ?

Next
 From:  none (EVALON)
5698.1 
Hi all,

Hope things are well in the forum :-)

I post now because I have a challenge that I can't fathom with a model I'm making (attached). I'm trying to subtract the square box from the bottom of the model so as to remove the conical rods that protrude below the the bottom surface level of the model. As you can see most of the surplus part of the conical rods have been removed but the last ones ... doesn't seem to want to go away ...

I've tried to cut away the conical rod ends with a box and a cylinder (boolean - difference - main model as base object and the box as item to subtract) of various sizes but either nothing happens or the box unions with the rest of the model. Which surprises me because I was able to cut off the first rods, although when I tried to use a box that spanned all of the bottom surface it didn't work either.

I need the bottom surface of the model to be absolutely flat - would one of know what goes amiss and how to cut the last of the conical rods?

Help is appreciated :-)

Jesper

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  bemfarmer
5698.2 
There is a square overlap of the bottom faces of the oval ring intersecting the bolt mount bottom faces. Maybe
this is the problem?

Trim will cut off the cylinders. Then planar the ends and boolean union to get solid back.
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
5698.3 In reply to 5698.1 
Hi Jesper, yes like Brian says it's likely to be the skimming overlap with these already cut neighboring areas that makes it difficult for the difference to be calculated:



If you make those cutting objects to not overlap the other adjacent areas it should reduce the complexity of the boolean calculation, so position things more like this:




Or also you can use trimming like Brian mentions above - sometimes it can work well to extract some portion of the object using Edit > Separate and then you can work on trimming just that one piece all by itself and then rejoin it to the main piece when you're done.

I've attached here a zipped 3DM file with the bottom all level now, I also did some tuning up on the bottom face of the outer ring - I made it into one single big trimmed face, it was previously a little messy with some separate pieces with a few little slivery bits in some areas.

- Michael

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  none (EVALON)
5698.4 In reply to 5698.3 
Hi Brian & Michael,

Thanks you both for suggesting and helping out :-)

@Michael: Thanks a lot for actually making the cuts and overall "trimming" the model! I have a comment, though: Regarding using a subtracting box that does not overlap with other parts of the model I actually have tried this so that it only covered the rod to be cut and then a little more of free space .. For some reason it didn't work ...?

When you mention that you have tuned up the bottom face of the outer ring I wonder how the need to tune up the ring may have appeared ... I've been very careful to align items with grid, straight & object snap & precise mirroring so I would have assumed that it was level already. Maybe you observed something in the model that can be a tip for me with future models?

Regarding your suggestions for trimming/separate & boolean subtract I'm not quite clear about the difference and what exactly you suggest but I'll take a look at it and see if I can learn something new.

And then - I know I've said this before but it's still where I am with Moi3D: I find it to be very intuitive and straightforward to use and it's really satisfying to be able to model something realistic and usable in such a quite short time.


Greetings,

Jesper
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
5698.5 In reply to 5698.4 
Hi Jesper,

> Regarding using a subtracting box that does not overlap with other parts of the model I actually
> have tried this so that it only covered the rod to be cut and then a little more of free space ..
> For some reason it didn't work ...?

That's actually why I did some of that cleanup work - when you have an edge boundary that is self-intersecting (crosses back over its self) it can cause the mechanism that determines which side is the "inside" and which is the "outside" of a solid to get confused.

The faces in particular that looked the messiest were these ones here:



It's hard to see what's messy about that right there, but if you get that face completely by itself you can see it's got this kind of squished tail sticking out of it:



That tail is a squished together boundary, some part of the trimming boundary is squished together and touching each other, that's the kind of thing that can mess up the sense of "inside" and "outside" in general.

So part of the cleanup was that I deleted all those piece and drew in new planes using Draw solid > Plane > 3pts in those areas and joined them in.


I think that there was possibly some kind of slight misalignment in this area here:






In order to get the bottom face to be built, I had to squish the outer and inner boundary down using "flat" snap (that's using the edit frame from the side and grabbing a corner and moving it down to squish things flat, there is a snap point that will kick in and if it does that means it was not quite totally flat to start with).

So a couple of things were on a very slightly different z level, just enough to kind of mess up a couple of things I think.

I found that one little tail sticking out piece by going through the process of deleting all the bottom faces because I wanted to see if I could make one single plane out of the whole thing, it's generally good if planar areas are made up of one big plane surface rather than little fragmented coplanar pieces, and sometimes looking in area where there are little fragments you can find the problem things like little slivery stuff.

Anyway once I got those things tuned up then I did not have any problems doing the booleans after that.


> I wonder how the need to tune up the ring may have appeared

The main thing was I was kind of suspicious about the bottom face being in multiple pieces, that could mean it wasn't all flat. Also this is pretty subtle thing but if you look here notice how this particular edge area is slightly darker than the other ones nearby it? :



The presence of a darker area like that usually means that there is actually more than one edge overlapping on top of each other in that one area. The anti-aliasing around curves basically gets darker the more times that a curve is drawn over the same screen area. That's often times a cue for me to zoom in and investigate that particular area - that's the spot where the little leg is sticking out from that vertical plane. The leg is made up of a couple of edges that go out a ways and then another edge that doubles back again.

So that kind of slightly darker edge display in one area can sometimes indicate some kind of anomaly in the model which might need to be fixed up. The easier thing to look for is that you want areas that should be planar to be made up of one big plane. To clean those up you can delete the existing fragments and then use Construct > Planar to build a new big single plane and if Construct > Planar does not work it means there is some problem with the various pieces not actually all being on the same plane, there may be some pieces that are sticking out a bit and need to be cut off or some pieces that are slightly higher than the others and need to be moved down just a bit.


Hope this helps explain what I was looking for and what I did for the cleanup!

- Michael

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
5698.6 In reply to 5698.4 
Hi Jesper,

> Regarding your suggestions for trimming/separate & boolean subtract I'm not quite clear about the difference
> and what exactly you suggest but I'll take a look at it and see if I can learn something new.

So for this part, it's a general technique that if you want to modify some small portion of a kind of complex object (like in this case you wanted to slice off just those legs and not really modify anything else), it can reduce the complexity of what's going on to separate out that particular chunk of the object into a separate surface, then do some surface modeling work on it like trimming it with a line, and then once you're done you can rejoin it back to the main piece again.

That method can get things done even in the presence of some kind of degenerate geometry or whatever type of thing might be confusing the more "higher level" operations like booleans.

So in a case like this that would mean some steps like - select these 2 surfaces that make up one of the legs:



Now run Edit > Separate - that will break those selected faces off into a completely separate object. You can now hide the other main object and just work for a little bit on only this much more simple object:




There's a lot less stuff that can possibly go wrong on this kind of object. Once you have finished manipulating this one piece doing booleans or Trim or whatever (Trim is a surface modeling method, it just cuts surfaces up, it's less complex in general that the booleans. The booleans are kind of like a "high level" trim that incorporates Trim + automatically picking pieces to discard or keep based on which volume they are in followed by joining those pieces back up), and then once you're done select your new piece and the original big object and use Join to glue them back together into a solid.

You don't always need to do that - it's just a technique that can possibly be used to simplify the amount of stuff that any particular operation has to deal with, so it can get things done when you are running into problems.

If you're not running into any problems then you would just want to stick more with using booleans, they can get things done more quickly. But they can get confused in the presence of self intersecting geometry.

- Michael

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  none (EVALON)
5698.7 In reply to 5698.5 
Good morning Michael (early morning here in Denmark),

... thanks again for explaining and illustrating what you did and what you look for in cleaning up a model. I've read it now and notice that the information is a bit more advanced than my current "insights" into modelling so I look forward to re-reading it in the days to come. It seems to me that the thoughts and tips in your text and images are very useful - i just have to grasp it including maybe changing my way of working with the models.

Thanks again!

Greetings,

Jesper
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  none (EVALON)
5698.8 In reply to 5698.7 
Hi again Michael (& Moi forums),

I've now had a bit more time to look at what you have given me for feedback. Unfortunately, I made an initial size "mis-assessment" so I've had to re-work the model more or less from scratch. This also made me change some of the less optimum solutions in the first model, however, also means that I can't directly use the model you (Michael & Brian) helpfully looked at for me.... :-(

... Yet, in the new model I've tried to implement some of the understandings I got from your suggestions and the model looks fine enough to me. There's might be an issue, though, and that is that when I (to make sure that the bottom surface is completely level) delete some of the bottom faces (see attached image) and try to re-insert them using construct -> planar - then in the outer ring a new bottom face is not inserted. I get the message that there are e.g. "5 edges" but no new face is made. I wonder if this is important as the face was in place before I deleted it?

My main consideration really is that I'm going to have the model (relatively) expensively 3D printed - and the last time I printed a similar model (a more or less "positive" version of this model which is a molding form, i.e. the "inverse") the bottom surface got curved from side to side. The printing company (shapeways) didn't know why it happened except that something might have gone amiss in the printing process. Before printing the former model - and also before sending this one off to printing I did a second check in Meshlab and both look(ed) as they are supposed to do.

To that end might I ask you to quickly look at the bottom face and see if it's level? The way my eyes look - maybe at this point in learning time - it seems to be fine to me (no lines sticking out) but since I can't make the planar function work I wonder if it's not level?

You don't have to make it level for me - I'd "just" appreciate knowing what isn't.

Many Greetings,

Jesper


Comment to the image:

planar_1: Outer ring won't re-make a surface after being deleted.
Attachments:

Image Attachments:
Size: 267.2 KB, Downloaded: 15 times, Dimensions: 800x600px
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Michael Gibson
5698.9 In reply to 5698.8 
Hi Jesper, over here when I delete the bottom faces and run Planar on them, I get a planar surface just fine. So your bottom is very nice and flat.

I used a script that selects all naked edges, the one that you can set up on a keyboard shortcut as described here:
http://moi3d.com/forum/index.php?webtag=MOI&msg=4869.5

I think most likely you did not get a result because you probably missed selecting some little edges - there are a few small areas where you've got a kind of micro shelf in the shape, and these form a few small edges on the bottom. If you did not select those when doing the Planar you would not have had a totally closed loop going. Planar needs the curves you select to be all coplanar and also they must form a closed loop.

The little shelf area are in these spots here:





That's really small in size though, about 0.01mm long, probably less than the printing resolution itself so I doubt it will be perceptible in the print. But it makes for a small edge in the bottom loop which is hard to see and select unless you are zoomed in pretty closely. And if you do not select it when running planar it means you are not making a closed loop which is probably why Planar did not work for you.


When you go to generate the STL file to send for printing, you will probably want to use the "Divide larger than" parameter in the meshing options that pop up to avoid having any large triangles that span a large distance across the model. Like for example put in Divide larger than = 3 so that any triangle larger than 3mm will get additionally subdivided. That then helps avoid artifacts from having triangles on something with slight curvature that might span a longer distance.

- Michael

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
 From:  none (EVALON)
5698.10 In reply to 5698.9 
Hi Michael,

& thanks again for your feedback & help!

I found the tiny edge you indicate on your picture in the model and when I selected this edge as well I was able to make the surface without any further issues. :-)

So, after checking things again I sent it off to printing today. So now I look forward to actually molding my objects inside the model ...

Thanks again & the best for your weekend (when it comes to you in your part of the world).

Jesper
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All