PDA

View Full Version : Joining Lines and Arcs into Polylines appear to be much harder...



sinc
2006-05-12, 09:47 PM
In both 2006 and 2007, I've noticed that it regularly seems MUCH harder to join lines and arcs into a polyline than it was in 2004.

It's only sometimes, but even when endpoints are snapped together and everything is flattened, objects still sometimes don't want to join together. Not even a Fillet or Chamfer will work.

What did they do to make things so hard?

rkmcswain
2006-05-12, 10:52 PM
Nothing changed as far as I know or can tell.

Are you using the fuzz factor when joining the entities using PEDIT?



Enter fuzz distance or [Jointype]<0.0000>: Enter a distance or j

Mike.Perry
2006-05-12, 11:21 PM
In both 2006 and 2007, I've noticed that it regularly seems MUCH harder to join lines and arcs into a polyline than it was in 2004.

It's only sometimes, but even when endpoints are snapped together and everything is flattened, objects still sometimes don't want to join together. Not even a Fillet or Chamfer will work.Hi

Maybe...

BPOLY Gap Tolerance

Joining non touching Polylines

Plus, is it possible to post an example drawing file that exhibits the behaviour you have described ( and I have lighted in bold text ) above, so me may review the issue / problem, first-hand ( so-to-speak ).

Have a good one, Mike

sinc
2006-06-09, 05:10 PM
Nothing changed as far as I know or can tell.

Are you using the fuzz factor when joining the entities using PEDIT?



Enter fuzz distance or [Jointype]<0.0000>: Enter a distance or j


OK, so it seems that if I use the "M" (Multiple) option of the PEDIT command, I can get that fuzz factor option. It seems to work when other things fail, which corresponds with my guess that this has something to do with floating point error in the CPU.

Here's a sample drawing. It also illustrates another issue - Fillet doesn't work very well with polylines.

Note the little 15-foot-arc segment. What I was trying to do was to fillet the polyline on the upper left to the line segment on the lower right, using Fillet and Radius=15. It wouldn't work - it kept filleting to the wrong end of the polyline. I exploded the polyline, and was able to fillet between the resulting arc and the line. That's how I got the little piece of arc drawn in. Then I tried to rejoin all the pieces into a polyline using a standard PEDIT JOIN (without the "M" option). You can see the result.

If I try running PEDIT, then select the M option, then try to join the objects with a fuzz factor (such as .000001), I can join the objects. But this is an example of something that's been happening a lot to me since I switched to 2006 and 2007, and it's something that very rarely happened to me when I was using 2004. With 2006 and 2007, it seems like PEDIT JOIN is extremely quirky unless it is used with the "M" option. Makes me wonder why they even have an "M" option... It almost seems like the command should just always work in the "M" mode...

rkmcswain
2006-06-09, 05:24 PM
Then I tried to rejoin all the pieces into a polyline using a standard PEDIT JOIN (without the "M" option). You can see the result.

If I try running PEDIT, then select the M option, then try to join the objects with a fuzz factor (such as .000001), I can join the objects. See images below. PEDIT won't join them because the endpoints are not the same. There is a gap (although tiny). The last image shows a 'clean' one.

sinc
2006-06-11, 03:19 AM
See images below. PEDIT won't join them because the endpoints are not the same. There is a gap (although tiny). The last image shows a 'clean' one.

So then the problem is not with the PEDIT command, but with the FILLET command? The arc was created by FILLETing the polyline and the line. Well, actually, as I stated in my poost, that doesn't work - I had to explode the polyline and FILLET the resulting arc with the line, because FILLET can't FILLET that polyline to that line.

There definitely seems to be some sort of bug at work in something.

I have found myself drawing circles with the TTR option a lot, and then trimming and joining the result, because I've been having so much trouble with FILLET. But sometimes there is a similar issue with the CIRCLE TTR option, where the tangent points aren't snapped together. In these cases, TRIM won't work, because there is a minute gap between the circle and the tangent object.

rkmcswain
2006-06-11, 11:24 AM
So then the problem is not with the PEDIT command, but with the FILLET command?

Where in the drawing is this being performed, coordinate-wise? I didn't think to look at the drawing, but if these geometric functions (FILLET, TRIM, etc) are being done at high coordinate values, rounding has to occur and that is what leaves these gaps.

References:
http://www.intelcad.com/pages/autocad/index.htm

http://autodesk.blogs.com/between_the_lines/2004/01/more_on_autocad.html

http://autodesk.blogs.com/between_the_lines/2004/01/the_64bit_cad_m.html

As mentioned in the last article, move your geometry closer to 0,0 for better results during editing.

lmitsou
2006-06-12, 08:43 AM
Hi,

Although Mike and RK gave you quite a few options to solve the problem you are dealing with, you may also want to try a lisp called Intelligent join from the following link

http://new.cadalyst.com/code/browseyear.cfm?fullyear=2005

You will still need though to enter a fuzz distance when objects have a gap between them.

rkmcswain
2006-06-12, 11:55 AM
http://new.cadalyst.com/code/browseyear.cfm?fullyear=2005



Just tried that routine and it has yet to join the 4 lines that I drew.
PEDIT worked the first time.

lmitsou
2006-06-12, 01:41 PM
Just tried that routine and it has yet to join the 4 lines that I drew.
PEDIT worked the first time.

We use them here for quite some time with no problems. And it does work first time every time. I wonder why it doesn't work there.

rkmcswain
2006-06-12, 02:30 PM
Strange. Here is what I get.

sinc
2006-06-12, 08:20 PM
Where in the drawing is this being performed, coordinate-wise? I didn't think to look at the drawing, but if these geometric functions (FILLET, TRIM, etc) are being done at high coordinate values, rounding has to occur and that is what leaves these gaps.

References:
http://www.intelcad.com/pages/autocad/index.htm

http://autodesk.blogs.com/between_the_lines/2004/01/more_on_autocad.html

http://autodesk.blogs.com/between_the_lines/2004/01/the_64bit_cad_m.html

As mentioned in the last article, move your geometry closer to 0,0 for better results during editing.

I sincerely hope that this is a red herring.

The example I posted has coordinates in the 10,000 to 20,000 range. I would not expect floating-point precision limits to make it so that fillet cannot work on objects that are located only 20,000 units from the origin.

I think this is an error in Autocad somewhere, one that was added sometime since 2004. Probably in the 3D revamp.

Inferno6919
2006-06-13, 10:11 AM
Strange. Here is what I get.

Just tried the routine with a similar shape to yours and it worked the first time. It is strange indeed.

lmitsou
2006-06-13, 10:40 AM
Strange. Here is what I get.

I tried it too with a similar dwg to yours and the routine worked fine. The only thing I was aware up to now that this routine wouldn't quite do, was to join a polyline and a line/arc/etc. It would still do it but it would ask you to turn all objects into polylines first. I will keep trying to recreate this situation you came across RK.

Wanderer
2006-06-13, 05:03 PM
just for convenience, do you have PEDITACCEPT set to 1?

from help: PEDITACCEPT System Variable
Suppresses display of the Object Selected Is Not a Polyline prompt in PEDIT. The prompt is followed by “Do you want it to turn into one?” Entering y converts the selected object to a polyline. When the prompt is suppressed, the selected object is automatically converted to a polyline.

0

The prompt is displayed

1

The prompt is suppressed




I tried it too with a similar dwg to yours and the routine worked fine. The only thing I was aware up to now that this routine wouldn't quite do, was to join a polyline and a line/arc/etc. It would still do it but it would ask you to turn all objects into polylines first. I will keep trying to recreate this situation you came across RK.