khoshravan Posted October 18, 2016 Posted October 18, 2016 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 Quote
BIGAL Posted October 19, 2016 Posted October 19, 2016 (edited) 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 October 19, 2016 by BIGAL Quote
lrm Posted October 19, 2016 Posted October 19, 2016 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 Quote
khoshravan Posted October 19, 2016 Author Posted October 19, 2016 (edited) 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 October 19, 2016 by khoshravan Quote
BIGAL Posted October 19, 2016 Posted October 19, 2016 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 Quote
khoshravan Posted October 19, 2016 Author Posted October 19, 2016 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. Quote
khoshravan Posted October 19, 2016 Author Posted October 19, 2016 Dear Bigal Thanks for your answer. What is the green circles (center and radius) and how do u obtain them? Quote
BIGAL Posted October 19, 2016 Posted October 19, 2016 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. Quote
eldon Posted October 19, 2016 Posted October 19, 2016 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. Quote
lrm Posted October 19, 2016 Posted October 19, 2016 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. Quote
BIGAL Posted October 20, 2016 Posted October 20, 2016 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) Quote
khoshravan Posted October 20, 2016 Author Posted October 20, 2016 Thanks Bigal Unfortunately I am not familiar with LISP. Quote
Recommended Posts
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.