# looking for alternative way of tangenting one circle to two circles.

## Recommended Posts

In the attached drawing, where three circles are tangent to each other (top part of drawing), I draw three complete circles which are tangent and then use trim to trim the unwanted parts.

But today I heard a new way to draw with no need for trimming.

Apparently this method draws the arcs instead of circles. But I wonder about the degree of arcs. Also which way is faster and easier to draw, is a question for me.

I couldn't find a complete solution for drawing arcs for this case.

Any comment in this regard, is highly appreciated.

24.dwg

##### Share on other sites

The dreaded FILLET problem is the answer Autocad's Fillet for the majority will not fillet a 3rd circle between two circles hence Circle TTR is used and yes trim, we have some other software and gets around this problem by asking for radius and approx center hence uses trig to work out answer. Back to fillet there are 4 answers to the Fillet two circles mathematically possible.

Solution yes it is out there and has been posted here on Cadtutor. The center is intersect point then start and end points etc so can be done via lisp. Note two answers for intersect hence approx cen point pick.

Edited by BIGAL
##### Share on other sites

The dreaded FILLET problem... there are 4 answers to the Fillet two circles mathematically possible.

Actually there are up to 8 mathematical solutions as show below.

Circle TTR will give you all 8 in a fairly user friendly manner but yes, you then have to use trim. Fillet will usually give you your choice of 2 of them. Most of the time I find it more efficient to use circle TTR.

~Lee

##### Share on other sites

Actually there are up to 8 mathematical solutions as show below.

Circle TTR will give you all 8 in a fairly user friendly manner but yes, you then have to use trim. Fillet will usually give you your choice of 2 of them. Most of the time I find it more efficient to use circle TTR.

~Lee

Dear Lrm

Thanks for your answer.I was aware of only red and green solutions. The other 4 solutions are totally new for me. Thanks for shedding light on the dark side of the question. I will try to draw them and will comeback with my results.

Edited by khoshravan
##### Share on other sites

Thanks LRM I would normally only have thought of the red & Green which is what we normally are trying to do.

I know this was answered before will try to find or concave convex arc .lsp etc

##### Share on other sites

When I use circle command with two tangents and radius (ttr), depending on the radius, it gives different answers, which implies that number of solutions is endless. I am wondering if this is correct and we can have endless answers, depending the radius of the solution circle.

Am I doing something wrong?

2nd q) How can I choose, which circle I want out of 8 solutions? Usually I choose by clicking outer side or inner side of circles, but it doesn't give all 8 solutions. It needs to be detailed.

##### Share on other sites

Dear Bigal

Thanks for your answer. What is the green circles (center and radius) and how do u obtain them?

##### Share on other sites

The green circles are offset from existing circles the radius amount of the new arc, the circles can be any radius so long as they intersect. See second image I re-posted similar red circles are the solution.

New I had started something pretty sure though a better method was posted.

##### Share on other sites

With the given radius to connect the top two circles, I think there are only two solutions.

The eight mathematical solutions use radii which do not match the OP's requirement.

Fillet should be used in the posted case.

##### Share on other sites

When I use circle command with two tangents and radius (ttr), depending on the radius, it gives different answers, which implies that number of solutions is endless. I am wondering if this is correct and we can have endless answers, depending the radius of the solution circle.

Am I doing something wrong?

If you have an "endless" choice of radii for the fillet arc then yes the potential solutions will be endless. For a given fillet radius there are potentially up to 8 solutions but depending on the fillet radius there may be only 4, 2, or no valid solution. As pointed out by eldon, there are only 2 potential solutions for your original drawing with a 23R. The magenta and yellow arcs in the image below. For the 105 radius (green) the red arcs indicate the other 7 solutions.

2nd q) How can I choose, which circle I want out of 8 solutions? Usually I choose by clicking outer side or inner side of circles, but it doesn't give all 8 solutions. It needs to be detailed.

When prompted for the first and second points of tangency (for the TTR circle construction) you can click the circles approximately where you think the tangency location should be. In addition to two "outer" picks or inner picks, try an outer and an inner pick and see what you get.

##### Share on other sites

This is a start its complicated any one else step in

```; may not give expected result a work in progress
; Adds Fillets between two arcs
)

(defun 6pts ()
(setq intpt1 (list (nth 0 intpt1)(nth 1 intpt1)(nth 2 intpt1)))
(command "circle" intpt1 20)
(setq ans (getstring "Is this correct side Press <Cr to accept any key to skip "))
(if (= ans nil)
(princ intpt1)
(setq intpt1 (list (nth 3 intpt1)(nth 4 intpt1)(nth 5 intpt1)))
) ;if
)
(defun 3pts ()

(command "circle" intpt1 20)
(setq objc (entlast))
(setq ans (getstring "Is this correct side Press <Cr to accept any key to skip "))
(if (= ans nil)
(princ)
(progn
(command "mirror" objc "" cp1 cp2 "Y")
(setq intpt1 (vlax-safearray->list (vlax-variant-value (vla-get-center objc))))
) ;progn
) ; if
)
(setq obj1 (vlax-ename->vla-object (car (entsel "\nPick arc 1 :"))))
(setq cenpt1 (vla-get-center obj1)) ; returns variant center pt
(setq cp1 (vlax-safearray->list (vlax-variant-value  cenpt1)))

(setq obj2 (vlax-ename->vla-object (car (entsel "\nPick arc 2 :"))))
(setq cenpt2 (vla-get-center obj2) )
(setq cp2 (vlax-safearray->list (vlax-variant-value  cenpt2)))

; add check for maspace pspace
(vla-get-ModelSpace oDoc)
)
(setq obj3 (vlax-ename->vla-object (entlast)))

(vla-get-ModelSpace oDoc)
)
(setq obj4 (vlax-ename->vla-object (entlast)))

(setq intpt1 (vlax-invoke obj4 'intersectWith obj3 acExtendThisEntity)) ; returns possible two soloutions

(cond  ((= (length intpt1 ) 6)(6pts))
((= (length intpt1 ) 3)(3pts))
) ; cond

(alert (strcat (rtos (nth 0 intpt1) 2 2)))
;(vla-delete objc)
(vla-delete obj4)
(vla-delete obj3)

(command "line" cp1 intpt1 "")
(setq obj3 (entlast))
(command "line" cp2 intpt1 "")
(setq obj4 (entlast))

(princ)
```

##### Share on other sites

Thanks Bigal

Unfortunately I am not familiar with LISP.

## Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.

×   Pasted as rich text.   Restore formatting

Only 75 emoji are allowed.