Why does Isotrim and Domain2 recreate the base volume?

hi there,
I created a cone in Rhino and modified it. Then I imported the resulting surface to grasshopper and applied isotrim+domain2 and this operation doesn´t modify the surface I added, instead it recreates the original cone. It also does this same thing when I use these operations to the half of a sphere: it shows the entire sphere instead of half. Is there something I must do to the surface before doing these operations?

Thanks for your help and replies!

All components which evaluate a surface work on a surface, not the trimmed representation of a surface. Trimmed surfaces are not really trimmed in a sense, Rhino uses trim data to hide parts of the surface from you. There is always an underlying surface which is what you are seeing. There is no way to give a trimmed surface a domain as it relies on NURBS and NURBS surfaces are 4 sided objects. Same will happen for other components that use surface evaluation.


Thanks Michael for your answer… So I’d have to create that surface using another method that isn’t based on a “predesigned geometry” ?

If you want to use SubSrf don’t use a trimmed surface.

To be fair SubSrf probably should be able to deal with existing trims, there’s no reason it has to ignore that data.

There’s no reason it generally has to ignore trims but right now you get one result per domain (if the domain is valid for the surface). Including trims may generate a lot of subsurfaces per domain or none.

One more graft level may break a lot of existing definitions. (legacy problems)

Yes, the behaviour of the existing component cannot change. I don’t even know if we have good ways in the Rhino SDK to achieve such an operation. In general we don’t seem to have a lot of functions for transferring trim data from one shape to another.

True that it could be included (divide surface does) but it could be confusing. Would you use SubSrf on a the untrimmed surfaces then retrim the results behind the scenes with the original trim data? (similar to how divide surface removes points outside of the trim). My guess is that then the forum will be filled with questions like “I set 10 divisions in the V domain but it only divided 7” because they don’t realize it is actually dividing the underlaying untrimmed surface.

Problem with trims is that there is no generally useful way to deal with them in a single component way.

You might use IsoTrim to get quad sections from your surface. Trims don’t guarantee that. How you want to deal with elements at a trimmed border is up to your specific task.

Something like InTrim(s) or TrimCP similar to their planar or generic curve existing counterparts would be nice and helpful. Although you can use (not sure) SurfaceCP to do those.

Hi, thank you all for your answers. I agree with the fact that a trimmed surface/ brep shouldn’t be ignored. Sometimes the surface is the product of difference, intersections or unions Right now I’m still working on the surface I previously showed you, tried to loft its edges (one of them had to be done by joining different lines) and it didn’t work, also tried to use ruled surface and several other operations to create a surface and couldn’t recreate the surface I intend to work on.

I’m trying to do something like this, I’m using SDivide, but I’m not getting the results I want…