row2title row2a row2b row2c row2d row2e row2f row2g
  Folio-malachite Folio-olga Forum-groBoto Fourm-Whoop Fourm-Whoop Folio-olga Folio-Matteo
+ Reply to Thread
Page 1 of 2 1 2 LastLast
Results 1 to 10 of 11

Thread: Boolean

  1. #1
    GroBotoville Resident
    Join Date
    Sep 2010
    Posts
    7

    Default Boolean

    Hi,

    I'm unable to do a substraction of a cone to a cube.
    I put a cube as primary, then a cone (small diameter at top) as body outside and the result is that the cone is substracted from the cube even below it, as if the cone was an infinite cone. I was expecting a substraction limited to the cone boundaries.
    Attached Images

  2. #2
    Groboto developer
    Join Date
    Sep 2010
    Location
    Seattle USA
    Posts
    419

    Default

    groumpf,

    You are not doing anything wrong. It is the limitation of the current system - 'Outside' options allow to use only one surface from a trim object ('Inside' options allow multiple surfaces including 'Inside All'). Thus when you choose Outside Body for a trim cone, the entire infinite surface of the cone is used, not limited by the base plane.

    The result that you want, subtraction of a finite cone:



    can still be achieved though, by creating two identical cubes and using two identical cones as trims, only in one case 'Outside Body, in the other - 'Outside Cone Base Plane'.

    You can do this by taking the boolean cluster that you have now (Primary cube and Outside Body trim cone) and duplicating the entire cluster (right-click and choose Duplicate Object in Place). Then in the duplicate cluster change the trim cone Boolean Role from 'Outside Body' to 'Outside Cone Base Plane'

  3. #3
    GroBotoville Resident
    Join Date
    Sep 2010
    Posts
    7

    Default

    Thanks for the reply.

    I understand, but it makes boolean operations less easy because they are not strictly the math counter parts.

    Actually in a general way, I'm not sure boolean operation is so easy. It is when you just use addition, but otherwise the results are far from predictable.

    So the main advantage of booleans in Groboto is the export function.

  4. #4
    Groboto developer
    Join Date
    Sep 2010
    Location
    Seattle USA
    Posts
    419

    Default

    We plan to implement the regular boolean system pretty soon, where subtracting a cone would mean subtracting the actual finite cone defined by all of its surfaces.

    The current system is simply a boolean system with only one type of boolean expression: a union of intersections (optionally negated). This is why certain Inside and Outside options are enabled for some primitives but not for others. We enabled everything that could be reduced to union of intersections.

  5. #5
    Pixel and Poly Pusher JeffrySG's Avatar
    Join Date
    Jul 2011
    Location
    USA
    Posts
    7

    Default

    Rather than start a new thread I had a similar question:

    If I had an ellipsoid-a as the primary and I wanted to Boolean subtract a cube from the shape is there a way to do this? I tried adding a box-a to the cluster but could only get the ellipsoid to be trimmed by the outer boundary of the box and not by the box itself. Essentially I want to use the box to cut out a portion of the ellipsoid.

    If this is not an option would it be possible to add the box to the Boolean trims section with an In-body and Out-body option?

    Thanks!

    Jeff
    pixelandpoly on twitter

  6. #6
    Ancient Member GroBoto's Avatar
    Join Date
    Jan 2009
    Posts
    235

    Default

    Quote Originally Posted by JeffrySG View Post
    Rather than start a new thread I had a similar question:

    If I had an ellipsoid-a as the primary and I wanted to Boolean subtract a cube from the shape is there a way to do this? I tried adding a box-a to the cluster but could only get the ellipsoid to be trimmed by the outer boundary of the box and not by the box itself. Essentially I want to use the box to cut out a portion of the ellipsoid.

    If this is not an option would it be possible to add the box to the Boolean trims section with an In-body and Out-body option?

    Thanks!

    Jeff
    pixelandpoly on twitter

    Hey Jeff - Nice to see you here - Thanks for the ReTweets & Twitter Mentions. Wow. Nice to have more than 140-some characters.

    The Boolean feature you are looking for is not supported in GroBoto. There are technical, legacy, meshing & performance reasons... but I won't get into that here. We will have that ability (essentially to subtract a whole object) soon. Right now, we only subtract surfaces.

    This however, is not nearly as limiting as it might first appear. Our core solid geometry & trim system is so flexible, it offers workarounds you could never attempt with any poly-based system. With those workarounds com some unique options as well.

    Here's the basic Square Hole stuff. The top image is an update that shows the full solution (including a mesh seamless finish achieved by enabling 'Shared Surface Seam Removal' in GroBoto's output panel.

    The second (step-by-step) image shows more detail, but was created before we had seam removal working.







    Beyond that there are ton's of tricks & opportunities... and in fact some turn out to be more effecient, and just about as easy as the traditional Boolean approach. Also note -- as mentioned in the remaining images -- the depth and flexibility of our metaSolid system of modeling and meshing means that you can derice a lot of 'free' features & details just by shifting the primitives around a bit to intentionally create slight mis-alignments.

    Everything below is copied from an earlier, related post.
    Best Wishes,
    Darrel

    -------------------------------------------------------------------------------------------------------
    -------------------------------------------------------------------------------------------------------

    Clipped drilling, square holes, and similar things are not as simple as they should be, but those unique capabilities & robust qualities of our systems often bring more than workarounds.. the present opportunities for bot efficiencies and enrichment of the models. The pictures below feature both (workarounds and transcendent opportunities). It would be too involved to explain it all in detail (videos in the works will do a much better job), so I'm hoping the images & captions will give you an idea.

    The cool thing here is the number of features derived from just 7 primitives -- Hull, Windows, Interior Structural Ribs.






    The key thing here is the 'Doppelganger' technique -- while it could rightly be called a workaround, in many cases that are not truly trivial, it is no more difficult than traditional approaches, and offers a whole slate of options for adding variety & interest to the forms.






    Wworkaround that shouldn't (and soon won't) be necessary, but it comes with a lot of opportunity.




    It's the use of true parametric geometry and the robust nature of the Boolean & Mesh engines that make all of this possible... along with things otherwise impossible...



    Sculpting: I have put my ZBC thread link her before... but here it is again. Gives some idea of the scope of things possible.

    My ZBrush Sketchbook Thread

  7. #7
    Pixel and Poly Pusher JeffrySG's Avatar
    Join Date
    Jul 2011
    Location
    USA
    Posts
    7

    Default

    Darrel, I had a feeling this was the case from the previous reply but wow; thanks for the great explanations and examples. These will continue to help me see past any apparent limitations. Looking forward to see how the application develops in the future!

    Jeff

  8. #8
    Groboto developer
    Join Date
    Sep 2010
    Location
    Seattle USA
    Posts
    419

    Default

    I know some of our users are wondering: OK, it's a neat trick, doing a square hole as a combination of a vertical and a horizontal slit - but why are they using specifically a hyperrod with flat caps to cut the slit? Why not a disk (cylinder) or a slab of some sort?

    The reason, again, is that for boolean subtraction - what we call 'Outside' trim roles - we cannot use even two surfaces of a primitive, only one. Using a disk as a slicer would require two surfaces. This is where the hyperrod comes handy. A hyperrod is an intersection of two ellipsoids of revolution - one elongated forming the sidewall and one flattened and broad forming the caps. Both caps are formed by one surface. The real slicer here is a large ellipsoid with nearly flat sides. The convenience of the hyperrod is that it carries this huge flat ellipsoid in a compact form, since it shows the flat ellipsoid surfaces only inside its other, elongated, ellipsoid. Instead of using hyperrod with Outside Caps you can simply use an ellipsoid with Outside Body, but then for any reasonably sized ellipsoid the slice walls will be noticeably curved.

  9. #9
    Pixel and Poly Pusher JeffrySG's Avatar
    Join Date
    Jul 2011
    Location
    USA
    Posts
    7

    Default

    @ Darrel, I think the cyber-tooth is my favorite of the bunch! http://bit.ly/qaCVYN Some of these would look very cool 3d printed!

    @boris: that makes sense to me - although I don't claim to even have an idea of all of the programming and math involved in all of this! I still wonder if there would be a way to have some of these workarounds automated to make it easier for the user even if behind the scenes there was still the same thing going on?

  10. #10
    Groboto developer
    Join Date
    Sep 2010
    Location
    Seattle USA
    Posts
    419

    Default

    Jeff,

    First of all we want to move as quickly as we can beyond this current boolean limitation, that you cannot subtract an entire primitive, using all of its surfaces. All this doppelganger stuff is wonderful, but we don't want to force people to use it, just because they want to drill a square hole through something. Square holes should be drilled with a box. Doppelgangers allow to create a whole row of aligned rectangular windows with one trim object, and many other clever arrangements, but if you want to create a single square depression in a sphere, nothing will do it better than a simple subtractive box.

    Once we reach that stage where simple subtractions will be done by using subtractive objects, we'll be better able to figure out the proper uses for doppelgangers. For instance, they are more flexible - by using the method illustrated above it's just as easy to create a rhombic hole as a square one, by rotating the doppelgangers by something other than 90 degrees. On the other hand, subtracting a box will only produce a square hole. But once we get object subtraction to work, it will be just as easy to subtract a wedge or a pyramid or anything else we can make now by trimming a cube with several extra planes, or curved surfaces for that matter.

    Where the doppelgangers seem to be unsurpassed is for creating clever regular arrangements, like rows and columns of rectangular windows, or multiple wells drilled to the same curved floor. I imagine it all can be made much more sleek by automatic cluster duplication, etc.

+ Reply to Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts