@leeminardi wrote:
.... I was going to have one continuous spline from point 2 to point 3 but the transition from the 6" straight sections to a tangent curvature would require multiple CVs at the same point. ....
You should be able to do that by drawing the 6" straight end sections as Lines [or, for that matter, 2-point-only Splines], and the Spline between their near ends in whatever way works, and then JOINing them together. JOIN will take care of that multiple-at-one-point part to leave the new end segments straight.
EDIT: Maybe like this [minimally tested]:
(defun C:JUMPER (/ osm p1 p2 p3 p4 endA endB)
(setq
osm (getvar 'osmode)
p1 (getpoint "\nInternal end of jumper connector at one end: ")
p2 (getpoint "\nExternal end of that jumper connector: ")
p3 (getpoint "\nExternal end of jumper connector at other end: ")
p4 (getpoint "\nInternal end of that jumper connector: ")
); setq
(setvar 'osmode 0)
(command "_.line" p1 p2 "")
(setq endA (entlast))
(command "_.line" p4 p3 "")
(setq endB (entlast))
(command "_.lengthen" "_delta" 6 p2 p3 "")
(setq ; new closer ends [afer 6-unit straight extension]
p2 (vlax-curve-getEndPoint endA)
p3 (vlax-curve-getEndPoint endB)
); setq
(command
"_.spline" p2 p3 "" p1 p4
"_.join" (entlast) endA endB ""
); command
(setvar 'osmode osm)
(prin1)
)
As for the radius limitation, there is no such thing as "the radius" for a Spline, since it has constantly-varying radius, if that even means anything -- a "radius" implies a center point from which it is measured, but there's no such thing for an irregular Spline. The above, using no additional fit points between the inboard ends of the straight pieces, sort of does the "broadest" curvature available for the configuration of the points you're starting with. If it can be determined that it's "too tight" in the middle, then "loosening" the "radius" there [however that would be done] would require "tightening" the "radius" in the areas where it comes off the straight end parts, and vice versa, so might you be trading too-tightness in one area for the same in another? I imagine there are physical relationships possible in which that minimum is not achievable.
Further EDIT: The above was at first using (initcommandversion) as >here< to make the SPLINE command operate the way it does at the Command line with the tangency options. But I recalled the way tangencies could be done way back, under the old native core underlying operation of the command, and in this case that was easier. Tangencies can be specified for both start and end at the end of the command, and both are in the away-from-the-end direction. Try starting SPLINE in an AutoLisp (command) function, with just (command "_.spline"), give it some points [two are enough] and Enter to get the offered <start tangent> default, and it asks for tangency directions, where you'll see how it works -- that simplified the code above, for not needing to calculate a point to define the start tangency, because the appropriate point already existed. That other topic would need to change the points to use that approach, with [in their image] their 4 being below 1.
Kent Cooper, AIA