Fillet error ?

Fillet error ?

Anonymous
Not applicable
2,229 Views
18 Replies
Message 1 of 19

Fillet error ?

Anonymous
Not applicable

Hi all,

 

I am trying fillet multi pline after joint line and arc. But fillet error. Some pline not fillet and some pline fillet reverse arc. Can anyone tell me the way fix it.

 

Thanks.

 

0 Likes
2,230 Views
18 Replies
Replies (18)
Message 2 of 19

dmfrazier
Advisor
Advisor

"... fillet multi pline after joint line and arc..."

 

This is what happens when you fillet an arc with a line. Remove the arcs and fillet the line to the line.  

0 Likes
Message 3 of 19

Anonymous
Not applicable

oh,

remove arc is another problem. Uhm maybe i need another way.

 

Thanks for you sugesstion.

0 Likes
Message 4 of 19

dmfrazier
Advisor
Advisor

Usually the purpose of the fillet command is to convert a sharp angle formed by two intersecting lines into a curve. (Yes, I know there are other purposes.)  What are you hoping to accomplish by running the FILLET command on a line joined to an arc? Is the arc not already representing the fillet?

0 Likes
Message 5 of 19

Anonymous
Not applicable

Hi,

I am trying same photo attached.

0 Likes
Message 6 of 19

dmfrazier
Advisor
Advisor

It looks like it worked. So, what's the issue?

0 Likes
Message 7 of 19

Anonymous
Not applicable

sometime i joint arc and line to pline and fillet pline then error fillet. How can fix it ?

0 Likes
Message 8 of 19

dmfrazier
Advisor
Advisor

See message #2.

The FILLET command is not intended to be used to "fillet" a line and an arc, which is illogical, thus the unexpected and undesirable result.

0 Likes
Message 9 of 19

Kent1Cooper
Consultant
Consultant

@dmfrazier wrote:

.....

The FILLET command is not intended to be used to "fillet" a line and an arc, which is illogical, thus the unexpected and undesirable result.


 

Don't listen to them -- it's not at all illogical.  The Help entry for FILLET even demonstrates Filleting a Line with an Arc.  If you look at those illustrations, you'll see that the result can come out differently depending on exactly where you pick on the Line and the Arc, in a potentially different relationship than when Filleting two Lines, so that may be the source of the problem in some situations.  But I can't explain the one where the resulting Arc is the rest of the circle that the desired result would be the other portion of.

 

If Polylines are involved, there was a time when you couldn't Fillet a Polyline arc segment to anything, but newer versions allow that in some relationships -- an arc segment to another segment in the same Polyline, whether arc or line, and an arc segment to a separate Line, but apparently not either an arc or line segment to a separate Arc.  But in those situations, it simply doesn't allow it -- it doesn't give that kind of oddball result, so something else must be going on.

 

For one possibility when a Polyline is involved, see >this< for a suggestion that may help, at least sometimes.

Kent Cooper, AIA
0 Likes
Message 10 of 19

dmfrazier
Advisor
Advisor

From the pics you've posted, it looks like you might be doing some trimming and (perhaps) filleting and (perhaps) joining before getting the undesirable results from (perhaps) further filleting of already-filleted lines and/or (perhaps) polylines.

 

I think at this point it might help to have a copy of a DWG and a step-by-step description or demo of exactly the procedure you go through which gives you the undesirable result.

0 Likes
Message 11 of 19

dmfrazier
Advisor
Advisor

In the context of the OP's provided images and given the "basic" definition of "fillet" ("a concave junction formed where two surfaces meet - as at an angle", or "a concave strip of material roughly triangular in cross section that rounds off an interior angle between two surfaces"), I think it's fair to characterize filleting a line with an arc as "illogical", particularly when the arc already represents a "fillet". 

0 Likes
Message 12 of 19

Anonymous
Not applicable

It here. DWG please see file attached.

(defun C:fillet_pline (/ pl n)
  (if (setq pl (ssget '((0 . "LWPOLYLINE"))))
    (repeat (setq n (sslength pl))
      (command "_.fillet" "_polyline" (ssname pl (setq n (1- n))))
    ); repeat
  ); if
  (princ)
); defun

Thanks

0 Likes
Message 13 of 19

Anonymous
Not applicable

Hi Kent,

 

I was try reverse in pline but still error.

Thanks for your suggestion.

0 Likes
Message 14 of 19

Kent1Cooper
Consultant
Consultant

@dmfrazier wrote:

In the context of the OP's provided images and given the "basic" definition of "fillet" ("a concave junction formed where two surfaces meet - as at an angle", or "a concave strip of material roughly triangular in cross section that rounds off an interior angle between two surfaces"), I think it's fair to characterize filleting a line with an arc as "illogical", particularly when the arc already represents a "fillet". 


 

I wholeheartedly disagree.  The "basic" definition doesn't in any way limit the "surfaces" to being straight/flat, and it's common to [for example] fillet-weld a curved surface to a flat one, or to another curved one.

FilletFlatToCurve.jpg FilletCurveToCurve.jpg

The Arcs in their images that they want to connect to Lines with smaller-radius rounded corners clearly do not represent anything like a fillet, any more than the tubular column in this first image does.

But in the end, the fact remains that AutoCAD can do this, and what's needed is not to tell the OP they're doing something they shouldn't [they're not, and they're successfully  doing it in many places], but to figure out what is causing it to not work in some situations, whether that's the steps they're taking, or out-of-plane geometry, or whatever else it may be.

Kent Cooper, AIA
0 Likes
Message 15 of 19

Kent1Cooper
Consultant
Consultant

@Anonymous wrote:

It here. DWG please see file attached.


 

One potential problem is that your "closed" Polylines are not closed, but merely end at the same place they start [5 vertices for a 4-sided shape], which certainly can cause problems in some operations.  I tried Trimming out from the Lines/Arcs originals, and connecting into Polylines using PEDIT/Join, and I got the same result.  I tried again using JOIN, and they at least came out actually closed, but the same weird things happened at corners.  When I built my own  closed 4-sided Polyline with two opposite line segments and two opposite arc segments, Filleting worked fine.  Your original parts all seem to be in the same plane, which is one thing I wondered about [but maybe not if you go way down in decimal places? -- I didn't check that].  I don't have anything else to suggest for now....

Kent Cooper, AIA
0 Likes
Message 16 of 19

dmfrazier
Advisor
Advisor

"The Arcs in their images that they want to connect to Lines with smaller-radius rounded corners clearly do not represent anything like a fillet..."

 

Until I had the advantage of the DWG file (and the LISP code), I did not know that the polyline "quadrangles" actually were made up of arcs and lines. I was not referring to those arcs as representing fillets.  I assumed, based on the OP's words (which I found difficult to interpret, in some cases), that there were cases where the FILLET command was being run on a line and an arc representing a fillet that had been created during a previous run of the FILLET command. This was the basis for my "illogical" comment.

 

"...what's needed is not to tell the OP they're doing something they shouldn't [they're not, and they're successfully  doing it in many places], but to figure out what is causing it to not work in some situations..."

 

I agree, and I apologize to the OP for being so discouraging.

0 Likes
Message 17 of 19

dmfrazier
Advisor
Advisor

Don't know if this helps or not (probably not, given my track record), but when I run FILLET "manually", using the "P" option (as your LISP does) on one of the closed polyline "curved rectangles", this is what results:

 

 

Command: FILLET

Current settings: Mode = TRIM, Radius = 1788.5643
Select first object or [Undo/Polyline/Radius/Trim/Multiple]: p
Select 2D polyline or [Radius]:
0 lines were filleted
1 was divergent

 


When I run your LISP on the same object, I get this:

 

 

Command: FILLET_PLINE

Select objects: 0 found

0 Likes
Message 18 of 19

Anonymous
Not applicable

Sorry for repply later.

Now time 6 AM for me.

Yes, you right for pline: 5 vexter and 4 segment. But i trying draw pline 4 vertex and 4 segment (draw by hand or boundary) then still error return. Pls see attached file.

0 Likes
Message 19 of 19

Anonymous
Not applicable

Hi,

My pc run code "fillet_pline" work fine. (ACAD 2018 x64) and return my post error. Do it manual still error.

i dont know why arc and line join to pline and fillet error. 

Maybe need another way. Try this code (testing). I think fix pline to hard than explode.

(defun fillet_pline (p1 p2 / n ss ss1 lst)
(command "undo" "begin")
(setq ss (ssget "c" p1 p2 '((0 . "LWPOLYLINE"))))
(setq lst (acet-ss-to-list ss))
(print lst)
(foreach ob lst
(setq ss1 nil)
(if (= 1 (cdr (assoc 70 (entget ob))))
(progn
(command "explode" ob "")
(setq ss1 (ssget "P"))
(setq n 0)
(repeat (sslength ss1)
(if (ssname ss1 (1+ n))
(progn
(setq p1 (midpoint (ssname ss1 n)))
(setq p2 (midpoint (ssname ss1 (1+ n))))
(command "fillet" p1 p2)
)
(progn
(setq p1 (midpoint (ssname ss1 n)))
(setq p2 (midpoint (ssname ss1 0)))
(command "fillet" p1 p2)
) ;progn else
) ;if
(setq n (1+ n))
) ;repeat
);progn then
(progn
(command "explode" ob "")
(setq ss1 (ssget "P"))
(setq n 0)
(repeat (sslength ss1)
(setq p1 (midpoint (ssname ss1 n)))
(setq p2 (midpoint (ssname ss1 (1+ n))))
(command "fillet" p1 p2)
(setq n (1+ n))
) ;repeat
) ;progn else
) ;if

) ;foreach
(command "undo" "end")

(princ)
)

;;Tony Tanzillo

(vl-load-com)
(defun midpoint (ent / curve)
(setq curve (vla-object ent))
(vlax-curve-getpointatdist
curve
(/ (vlax-curve-getdistatparam
curve
(vlax-curve-getendparam curve)
)
2.0
)
)
)
(defun vla-object (e)
(if (eq (type e) 'ename)
(vlax-ename->vla-object e)
e
)
)

0 Likes