Grasshopper

algorithmic modeling for Rhino

Hi everyone, any ideas why solid difference fails in this case? It works in other similar parts of my structure and I can't understand what's happening here

Views: 6374

Attachments:

Replies to This Discussion

Well ... (moved a bit your 2 solids: avoid "overlapping" situations when trying solid ops).

1. Firstly your extrusion yields an open brep

2. Cap doesn't work on Breps with holes (in most of cases anyway).

3. Solid diff yields bananas in most of cases since Rhino is just a surface modeller. This is not to say that is useless for basic solid ops ... but don't expect heaven (is VERY slow as well).

See attached where 1 (and 2) are addressed properly ... and 3 as well (try the flip boolean).

Note:

NEVER reference breps (GH fails to internalize them in most of cases).

Attachments:

Thanx Peter! Instead of solid difference I've tried trim solid and cap but it didn't work as you say. If I am right, the problem starts at the open brep. This brep comes out from the extrusion of a surface. I've extruded similar surfaces and the result was closed brep. What makes a brep closed or open? Is there a way to manage with it, without using C# script?

A closed Brep is a brep with volume ... i.e. a thing that engulfs space. Kinda a closed Curve in 3d space. In plain English: if someone puts you "inside" you can't escape.

For the first part ... yes there's a way but is a long way home and it doesn't work in various other cases. The advantage of code in solid ops (especially when using a surface modeller) is the ability to get explicitly informed upon a variety of things that MAY go wrong.

For the other part I'm not aware about any native GH component that does the Brep.Flip() thingy (don't ask what this does, he he). Observe what happens when you deactivate that option (Rhino returns ... er ... a solid union instead).

In order to give you a better idea about what's happening I'll post a small ("simple") test case later on

Here's a (very slow) case where thicken a so called "sheet body" (a brep with 1 brep face with holes (or not)) is performed via code and ... the solid diff using native stuff works OK.

Next case: nothing works, he he

Attachments:

Here's a case that you can't do with components (a Brep with an inner void content due to another engulfed brep).

It works using a Method (not available as native stuff) that is highly NOT recommended.

Attachments:

Thank you for the examples..realy helpful! My question is, if there is an answer, what makes a brep open or closed? The thing is that I have 4 boundary surfaces that are extruded by the same way. 3 of them came out as closed breps and 1(that one I've already posted) as open brep. 

In general a closed thingy (a polysurface in surface modeller speech) is a collection of "stitched" (joined) brepFaces (there's some exceptions to that rule, mind). If any edge is "common" between 2 faces ... then we can safely claim that the thing is closed (engulfs space). If all things are according to plan and the stitching fails blame tolerance.

But what means according to plan? That's the 1M question.

In solid modellers there's various Methods that one can use and have "some" idea about what's wrong (at least theoretically). Rhino does not provide similar aids/Methods most notably because is a surface modeller. 

BTW: The attached does "in isolation" the thicken job (and a mesh to compare speed and ... well ... the obvious). You can use it as it was some sort of add-on meaning that you don't have to bother how it works (do you care how the native components work?)

But ... if you attempt to do a similar polysurface (closed brep) in a solid modeller you'll receive a non-manifold warning for good reason (spot what happens at the most "curvy" area where the inner BrepFace intersects with self).

Notice that whilst there's a curve to self intersection Method (available as native component as well) there's no such thing with regard surfaces.

Notice that you can't thicken a polysurface that way (any solid modeller can do it) although in some cases you can achieve it with a rather complex way .

Attachments:

 I've fixed the open brep problem. Thanx for helping

RSS

About

Translate

Search

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service