Message 1 of 35
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
This has been on my to do list for years the simple do a fillet between two arcs or circles, yes Circle TTR gives a result but draws a circle rather than an arc. So this is arc option 1 if can be done better please do so, there are 4 possible options for a new arc.
You just pick the 2 circles and the top approx new arc center point. It drawa the arc based on a left to right method.
; 2 circle add arc. downwards between 2 circle or arcs
; BY alanH Jan 2023
(defun C:A1 ( / ent1 ent2 cen1 cen2 obj1 obj2 obj3 obj4)
(vl-load-com)
(setq oldsnap (getvar 'osmode))
(setvar 'osmode 0)
(setq ent1 (vlax-ename->vla-object (car (entsel "Pick circle 1 (L) "))))
(setq ent2 (vlax-ename->vla-object (car (entsel "Pick circle 2 (R) "))))
(setq cen1 (vlax-get ent1 'center))
(setq cen2 (vlax-get ent2 'center))
(setq rad1 (vlax-get ent1 'radius))
(setq rad2 (vlax-get ent2 'radius))
(setq rad3 (getreal "\nEnter radius "))
(command "circle" cen1 (+ rad1 rad3))
(setq obj1 (vlax-ename->vla-object (entlast)))
(command "circle" cen2 (+ rad2 rad3))
(setq obj2 (vlax-ename->vla-object (entlast)))
(setq intpt (vlax-invoke obj2 'intersectWith obj1 acExtendThisEntity))
(setq pt1 (list (car intpt)(cadr intpt) 0.0))
(setq pt2 (list (nth 3 intpt)(nth 4 intpt) 0.0))
(vla-delete obj1)
(vla-delete obj2)
(setq cenpt (getpoint "\npick near arc point center "))
(setq d1 (distance pt1 cenpt)
d2 (distance pt2 cenpt)
)
(if (> d1 d2)
(progn
(setq temp pt1)
(setq pt1 pt2)
(setq pt2 temp)
)
)
(command "line" pt1 cen1 "")
(setq obj3 (vlax-ename->vla-object (entlast)))
(setq arcpt1 (vlax-invoke ent1 'intersectWith obj3 acExtendThisEntity))
(command "line" pt1 cen2 "")
(setq obj4 (vlax-ename->vla-object (entlast)))
(setq arcpt2 (vlax-invoke ent2 'intersectWith obj4 acExtendThisEntity))
(vla-delete obj3)
(vla-delete obj4)
(command "arc" "s" arcpt1 "E" arcpt2 "R" rad3)
(princ)
)
(C:a1)
So what about an external arc ?
Solved! Go to Solution.