Help with boolean (perforating) a shape

Help with boolean (perforating) a shape

Anonymous
Not applicable
1,040 Views
10 Replies
Message 1 of 11

Help with boolean (perforating) a shape

Anonymous
Not applicable

Hi! Could anyone help with perforating this king of shape? I need to perforate these cylinders through this shape and make so here holes. I tried boolean but no success, it always freezing.

Screenshot_15.jpg

 

0 Likes
1,041 Views
10 Replies
Replies (10)
Message 2 of 11

leeminardi
Mentor
Mentor

I suggest the following:

  1. Set the system and display units to the same unit.  Display is now mm and system inches.
  2. Use and array of cylinders to subtract.  You have all the cylinders as a single object.  When making the cylinders create one  (the red one below) and adjust the number of sides to the minimum value you can live with.  Array the cylinder to form every other row and column then use another cylinder (green) with an offset of half the row height and half the column width and then aray it.
  3. Delete cylinders that do not intersect the base geometry.
  4. Do the ProBoolean subtract.
  5. If it doesn't work try again in stages with fewer cylinders for the Booleans at each stage.  
  6. image.png
lee.minardi
0 Likes
Message 3 of 11

oliver
Collaborator
Collaborator

Instead of ruining a model with booleans i would build it up with/out of holes - much cleaner and more controllable:
quickly set upquickly set up

0 Likes
Message 4 of 11

Anonymous
Not applicable

But how do I do here quad topology if the surface is not coplanar? Please look the file I've attached above.

0 Likes
Message 5 of 11

10DSpace
Advisor
Advisor

@Anonymous 

 

I found some additional issues with your max file that may have impacted your attempts at using Proboolean.  I was able to get it to work by fixing all of the problems I observed (see final image below).

 

  1.  Scale Issues  -- The Plate object that you are trying to perforate had a much larger scale than the array of cylinders object (first image).  Generally, you should always check the scale of objects imported from other applications (and your own modeled in max if you scale at the object level).   All objects in your scene should have a scale value of 100% in all dimensions if you want to avoid problems with various modifiers and Proboolean.  In this case, the scale of your plate was 99999.992% while the cylinders object was 100%.  So you need to go to the Utility Panel and with the plate object selected, Reset XForm > Reset Selected and then Collapse>Collapse Selected.  The scale should be reset to 100% (make sure that “World” or “View” are selected as the Reference Coordinate System.

Holes_Wrong Scale.png

 

  1. Objects located very far from the origin (See next Image).   While I cannot definitely say that this impacted your proboolean issue, it definitely affects viewport performance and the accuracy of calculations.  Select both objects and enter $.pos = [0,0,0] in the listener window and hit enter.  This will move them to the origin and eliminate any potential ill effects from being so far from the origin. Alternatively, for each object, you can right click on the x,y, and Z spinners I have circled which should zero them.

holes_far_from_origin.png

 

  1. Unwelded vertices in both the plate and the cylinders.  Proboolean does not deal well with meshes that have unwelded vertices.   So select all of the vertices in each object and weld with a low threshold value which depends on the scale of your model.  You should see a significant reduction in vertices reported after the weld operation in  both cases.

 

After doing the above steps, I separated the cylinders into individual objects ( as per @leeminardi  suggestion) by running a script called Object Detacher which separates the all of an objects elements into individual objects. (available here as part of a useful collection  http://www.neilblevins.com/cg_tools/scripts/3dsmax/soulburnscripts.htm 

 

Then I selected your plate object and then Proboolean and then "Start Picking" and from scene explorer (layer view, because I placed all of the detached cylinders in a separate layer) and double clicked on the layer containg all of the cylinders.  You have to be patient, because even with all of the corrections performed above you have over a thousand cylinders for proboolean to subtract.  The process took about 20 minutes or so to complete on my machine.  Below is the result. 

 

Holes Final.png

 

Hope this helps you out further in addition to the suggestions by @leeminardi  and @oliver .

Message 6 of 11

leeminardi
Mentor
Mentor

@10DSpace , excellent response, effort and explanation! Well done.

lee.minardi
Message 7 of 11

10DSpace
Advisor
Advisor

Thanks @leeminardi .  Praise from the master, I think.

0 Likes
Message 8 of 11

domo.spaji
Advisor
Advisor

@10DSpace  and @leeminardi 

(Different) Scale and having operand as a single multi-element mesh object shouldn't make problems with Probooleans.

For most things in Max is better to have less (multi-el.) objects than many single-el. objects.

 

I've try cut plate scaled to 10 000 with about 700 cylinders - single object, scale 100.

It took less than 1 min.

0 Likes
Message 9 of 11

domo.spaji
Advisor
Advisor

In fact, Probooleans have one thing in advanced options - planar edge removal -> "Remove All" as default.

Not good option, specially in cases with many operands and if you create good tessellated "plate" 0 operand.

After picking first operand 1 (cylinder) we are losing all prepared topology.

 

0 Likes
Message 10 of 11

domo.spaji
Advisor
Advisor

You don't have to ruin anything with booleans, but perforations like this are faster (and easier) to make by (open) chamfering vertices. Just make good tessellated planar mesh with, lets say, 8 edges from desired vertices.

 

Even something like your approach should be faster, because instead of making array of cylinders for booleans you can make array of single-hole meshes and weld them.

0 Likes
Message 11 of 11

leeminardi
Mentor
Mentor

What is your end use of the Max file?  How much precision do you need?  In general Max is used to make pretty pictures and animations and is not suitable for precision manufacturing tasks.  Depending on your application it may be appropriate to not make any holes in the model but use an opacity map instead.

lee.minardi
0 Likes