A potentially more viable option, in terms of the plausibility of the resulting curve, would be to obtain a dense list of points from the arcs to be modified, recalculate them using the requested parameters, and create a spline fitted to those points.
Does anyone want to test setting these 3 variables to the top to the best performing.
I notice it a lot better.
(vl-load-com)
;; https://www.theswamp.org/index.php?topic=53336.msg585756#msg585756
;; Zoom Extents All Layouts
;; Mod by 3dwannab on 2025.06.12 to try turning regen variables to the best performing.
(defun c:ZEAL (/ app doc restore)
(command "REGENAUTO" "OFF") ;; Obsolete. Controls automatic regeneration of a drawing. But stick it in there anyway
(setvar "LAYOUTREGENCTL" 2) ;; 0 = The drawing is regenerated each time you switch tabs. 1 = For the Model tab and the last layout made current, the display list is saved to memory and regenerations are suppressed when you switch between the two tabs. For all other layouts, regenerations still occur when you switch to those tabs. 2 = The drawing is regenerated the first time you switch to each tab. For the remainder of the drawing session, the display list is saved to memory and regenerations are suppressed when you switch to those tabs.
(command "RTREGENAUTO" "OFF") ;; 0 = Prevents automatic regeneration when panning and zooming. 1 = Allows automatic regeneration when panning and zooming.
(setq app (vlax-get-acad-object)
doc (vla-get-activedocument app)
restore (vla-get-activelayout doc)
)
(vlax-for layout (vla-get-layouts doc)
(vla-put-activelayout doc layout)
(if (or (eq 1 (getvar 'tilemode)) (eq 1 (getvar 'cvport)))
(vla-zoomextents app)
(progn
(vla-put-mspace doc :vlax-false)
(vla-zoomextents app)
(vla-put-mspace doc :vlax-true)
)
)
)
(vla-put-activelayout doc restore)
(command "REGENAUTO" "ON")
(setvar "LAYOUTREGENCTL" 2)
(command "RTREGENAUTO" "ON")
(princ)
)
This is something that could possibly be done geometrically, but a robust solution would be better done mathematically. I don't know exactly how I would handle it, but it would be a good challenge for some of the better mathematical programmers that are here.
EDIT: perhaps this would involve changing the bulge values to the selected segments and the adjacent segments by some inversely proportional amount?
Maybe using: https://www.lee-mac.com/bulgeconversion.html