Jump to content

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


khoshravan

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

Link to comment
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.

ScreenShot069.jpg

ScreenShot071.jpg

Edited by BIGAL
Link to comment
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.

 

8fillets.JPG

 

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

Link to comment
Share on other sites

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

 

8fillets.JPG

 

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
Link to comment
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

Link to comment
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.

Untitled.jpg

Link to comment
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.

Link to comment
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.

Link to comment
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.

 

8fillets2.JPG

Link to comment
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
(vl-load-com)
(setq oAcad (vlax-get-acad-object)
oDoc (vla-get-activedocument oAcad)
)

(defun 6pts ()
(alert "6")
     (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 ()

     (alert "3")
     (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 rad1 (vla-get-radius obj1))   ; returns rad

(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)))
(setq rad2 (vla-get-radius obj2))

(setq newrad (getreal "\nEnter radius of extra arc " ))
(setq rad3 (+ rad1 newrad))
(setq rad4 (+ rad2 newrad))
; add check for maspace pspace
(setq CircleObject (vla-addCircle
(vla-get-ModelSpace oDoc)
cenpt1 rad4 )
)
(setq obj3 (vlax-ename->vla-object (entlast)))

(setq CircleObject (vla-addCircle
(vla-get-ModelSpace oDoc)
cenpt2 rad3)
)
(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)
(alert "end")

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

(princ)

Link to comment
Share on other sites

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.

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

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...