Offset Surface issue

I’m trying to perform a surface offset operation in grasshopper. For some reason it will perform this operation at the number 1 and very sporadic real numbers. The file units are in feet and I need the thickness to be 8" (.6667 feet). 2.87 work. 3.62 works. Can anyone help me with this rather strange issue?
Roof Geometry 1.3dm (155.5 KB)

Roof Routine (18.4 KB)

Not unless you post your file. :man_facepalming:

3. Attach minimal versions of all the relevant files

Thank you, Joseph. Sorry if the tone of my last post was a little needy.

I’ve attached a few files. It’s been a while since I dealt with the upload interface. Apologies for not providing sufficient information. Any help is appreciated.


Renaming standard components is a bad idea! Makes it more difficult to understand code because each component must be examined to see what it does.

My first instinct was to rebuild the curved roof as a single surface instead of two faces (white group) but I soon discovered that the problem you described of working with some offset values but not others didn’t go away. Something about the shape of that surface, perhaps? Then I noticed that more offset values work when the offset distance is reversed (“-x” expression) so more changes may be required to get the shape you want. (29.1 KB)

Thank you, Joseph. Good info. I did make this shape using a sweep command. The rail was an arc. As I think about it, any sweep command that uses an arc for a rail, might be better served being generated by trimming a revolve command surface. This starts me wondering about the idea of offsetting the surface of a donut. At some point the interior the donut (around the hole) becomes difficult and confusing to imagine as an offset from the surface of the hole. Maybe something about that is similar to what the computer is freaking about out here…I’ll attack it again when I’m not at the end of a long day. Have agood weekend and thanks for the help.

The problem lies is not with the offset, but with the trim.

If the trim and offset are performed independently, then the problem of a <null> result can be avoided. Note that the the Offset Surface component retrims by default (the T input). I have untrimmed the surface before offsetting and applying Copy Trim to the result. You could also perform trim using other geometry explicitly as you did with the trim to the original sweep.

I approached the sweep as joseph did as well. A single surface appears to be a simpler solution. I showed how a network surface could also be used as well.
I also attempted to separate concerns in the script but failed to understand the requirements of the set out, so it may not make sense.

Roof Routine 2 (30.0 KB)


Excellent observation! I modified my code to do the same, which works without the negative distance expression, as originally intended: (28.2 KB)

1 Like

I understand your analogy. Sweeping a curve on a curve rail (arc) does produce a surface similar to a donut. But offset surface works fine on a donut: (7.1 KB)

I can’t agree with your generalization about trimming a revolved surface being better. There are usually many ways to do anything. It’s good to have alternatives because sometimes Rhino/GH doesn’t work as expected, as in this case.

1 Like

Thanks for the rigor Joseph and Dharman makes a good point about untrimming the surface. Appreciate the help. It has definitely informed the project moving forward and helped avoid unnecessary hiccups.