Offset (problem)

 From: steve (STEVE_HOME) 24 Apr 2010  (1 of 16)
 Hi Michael, Making an inside offset from shown edge, produces:- - Steve EDIT: No problem in V1 EDITED: 24 Apr 2010 by STEVE_HOME Attachments:

 From: Michael Gibson 24 Apr 2010  (2 of 16)
 3499.2 In reply to 3499.1 Hi Steve, that one is quite strange. Not much has changed in the MoI code for curve offsets since v1, so the difference from v1 is probably due to some change in the geometry library. I'll see if I can narrow it down a bit. In the meantime, if you take that curve and cut it by one of those lines, you can then select the parts and it will offset without that strange result (model attached). - Michael Attachments:

 From: Michael Gibson 24 Apr 2010  (3 of 16)
 3499.3 In reply to 3499.1 Hi Steve, so I found out about the difference between v1 and v2 for this case. The curve you are offsetting is an open curve and has a tiny (0.0006 units) gap between its start and end point here: In v2 those ends are getting collapsed together to make a closed curve before it is being offset, but that is not happening in v1. That's what produces the difference. If you collapse those ends together first as I have done in the attached 3DM file, then you can repeat an offset problem in that same distance zone in v1 as well, except it shows up as not producing anything instead of producing that strange result. I think I know the problem that causes this kind of strange result though, it's the kind of thing that happens when a particular kind of G2 extension method is used to extend curves before intersecting them, where the extension works by making a reflected version of the curve and adding it to the end. When you have a curve that is a long single loop like this, that kind of extension method makes a result that curls around and around on top of itself and that interferes with the intersection calculation that comes next during the offset process. I can probably solve this case by changing the geometry library to not try to use this G2 reflection extension method and instead just make linear extensions, but I'm not very sure it's a good idea to mess with this right before the v2 launch. - Michael Attachments:

 From: steve (STEVE_HOME) 24 Apr 2010  (4 of 16)
 3499.4 In reply to 3499.3 Hi Michael, I can see that gap now, however, that curve (with gap) is actualy the edge of the swept surface produced from the geometry created from a 2 rail sweep. If you check the model I posted, enable the sweep layer(style), you will find the construction curves for the sweep. The actual corner rads (for the top sweep rail) was produced by blends. In such a 2 rail closed sweep, should edges like that be produced as it will cause some problems if not found in early stage of constructions. - Steve

 From: steve (STEVE_HOME) 24 Apr 2010  (5 of 16)
 3499.5 In reply to 3499.3 Hi Michael, I have made some more closed 2 rail sweeps and they are producing edges with gaps as with the first model and causing the same problem. - Steve

 From: Michael Gibson 24 Apr 2010  (6 of 16)
 3499.6 In reply to 3499.4 Hi Steve, > however, that curve (with gap) is actualy the edge of the > swept surface produced from the geometry created from a > 2 rail sweep. I don't quite follow - from what I can see the Sweep surface you built is the one in yellow here: But the edge that you are offsetting is this one up here, not actually touching the sweep: As far as I can tell, that curve being offset is not itself an edge or actually touching the sweep surface directly, it seems to have been created probably by a Fillet? It seems to be a trim curve living on the top flat face, not an edge of the sweep. I examined your sweep surface by extracting it and untrimming it, and the sweep surface itself seems to have fully closed edges. At any rate, in v2 when offsetting that little gap is being automatically sealed so that becomes a closed curve, that's why you had different behavior between v2 and v1. - Michael Attachments:

 From: Michael Gibson 24 Apr 2010  (7 of 16)
 3499.7 In reply to 3499.5 Hi Steve, > I have made some more closed 2 rail sweeps and they are > producing edges with gaps as with the first model and > causing the same problem. Could you show me one? I displayed the objects with Style = "sweep" from your example above, and did the sweep and I get closed edge curves on the sweep result. As far as I can tell in your example, the edge that you are offsetting did not come directly from the sweep, it seems to be the result of a fillet or something like that. - Michael

 From: steve (STEVE_HOME) 24 Apr 2010  (8 of 16)
 3499.8 In reply to 3499.7 Hi Michael, Offsetting the surface (from 2 rail closed sweep) edge. Attachments:

 From: Michael Gibson 24 Apr 2010  (9 of 16)
 3499.9 In reply to 3499.8 Hi Steve, > Offsetting the surface (from 2 rail closed sweep) edge. Yup, that's definitely another instance of that same offset problem. I don't see any gaps in the edges there though, in a message above you wrote that you were seeing edge gaps in some closed sweeps? This does not seem to be an example of that, the edges are closed with no gaps. Sorry if I confused things with mentioning the gaps - the gaps are not actually what causes the offset problem, I mentioned the gap only because it was what created the difference in behavior between v1 and v2. This particular offset problem will actually _not_ be present if there is a gap, that's why you don't see it in your original example with v1, because v1 does not automatically seal the gap into a closed curve during the offset. It's actually with a closed curve where the offset bug is kicking in. In v2 it is automatically sealing that little gap up to make a closed curve, that's why there is a difference between v1 and v2. V1 actually still has the same offset bug in it, just different behavior with sealing the little gap up. - Michael

 From: steve (STEVE_HOME) 24 Apr 2010  (10 of 16)
 3499.10 In reply to 3499.7 Hi Michael, On my first model, yes, sorry, my error is description of construction and what I used. I made 2 rail sweep, then used planer to create solid. I attempted to add a small rad on that top edge but could only get a rad as small as 0.5(or 0.4). so I separated the surfaces then used the 2 top surfaces to produce the rad. I then tried to used the top of the rad produced to offset. - Steve

 From: Michael Gibson 24 Apr 2010  (11 of 16)
 3499.11 In reply to 3499.8 Also since your new example actually does not have any gap, you can repeat the offset problem in v1 with it as well. The only reason your original one did not repeat the problem in v1 was because it had that little gap in it. - Michael

 From: Michael Gibson 24 Apr 2010  (12 of 16)
 3499.12 In reply to 3499.10 Hi Steve, quote: I made 2 rail sweep, then used planer to create solid. I attempted to add a small rad on that top edge but could only get a rad as small as 0.5(or 0.4). so I separated the surfaces then used the 2 top surfaces to produce the rad. I then tried to used the top of the rad produced to offset. Right, so that edge with the little gap in it was not produced by sweep, it came from fillet. It looks like the filleter wasn't able to make a completely great fillet surface there, if you separate it out and untrim it you can see the fillet surface itself actually has that gap in it. So as far as I can tell there is nothing wrong with the sweep command there, it was a problem with fillet. I think in v3 I may add some processing to automatically seal up curves for edges that are topologically closed like this. - Michael

 From: Michael Gibson 24 Apr 2010  (13 of 16)
 3499.13 In reply to 3499.8 Hi Steve, also with your new example the same technique I described earlier of splitting the curve up at some other point will make it offset properly. I've attached an example here, with the edge split up at one other point. Now you can select the 2 edges and use offset on them and get an expected result in the particular zone where it was previously going crazy. - Michael Attachments: