Awesome! I did some superficial testing on the code, below. It seems to do what I wanted, although I’ve got the nagging suspicion I’ve got some redundant steps in the math that could be eliminated.

There are two identical ducts mirrored about the XY plane (only one is shown in the .3dm file at the link provided).

Adjust points of sine wave vertically by half of duct separator wall thickness
by subtracting half of duct separator wall thickness.

When the points are generated, generate an interpolated curve through the points
then mirror the curve about the Xaxis. Surface > Revolve those curves about the vertical axis.
import rhinoscriptsyntax as rs
from math import *
dblStartDeg = 90.0
dblEndDeg = 270.0
dblXStart = rs.GetReal('Enter desired xposition at top of sine wave: ', 6.20)
dblXEnd = rs.GetReal('Enter desired xposition at bottom of sine wave: ', 9.20)
dblXStep = rs.GetReal('Entere desired step value for xposition of sine wave: ', 0.1)
dblAmp = rs.GetReal('Enter desired yposition (amplitude) at top of sine wave: ', 1.387)
dblWallThknss = rs.GetReal('Enter material thickness of Duct Midsection separator wall: ', 0.03125)
\# ycoordinate of wave at peak of wave, e.g. at beginning of curve
dblYCoordAtPeakOfWave = dblAmp  dblWallThknss / 2
dblDegStep = (dblEndDeg  dblStartDeg) / ((dblXEnd  dblXStart) / dblXStep)
dblDeg = dblStartDeg
dblX = dblXStart
SineCurveList = []
while (dblDeg <= dblEndDeg):
# ycoordinate of wave at distance from datum (vertical axis) minus half of duct separator wall thickness
dblYCoordAtDistFrDatum = sin(radians(dblDeg)) * dblYCoordAtPeakOfWave
dblYCoordTranslatedUp = dblYCoordAtPeakOfWave + dblYCoordAtDistFrDatum
dblYCoordDividedBy2 = dblYCoordTranslatedUp / 2
# move the curve up by half the duct separator wall thickness
dblYCoordUpByHalfWallThickness = dblYCoordDividedBy2 + dblWallThknss / 2
# rs.AddPoint(dblX, 0.0, dblYCoordDividedBy2 )
dblNextPoint = [dblX, 0.0, dblYCoordUpByHalfWallThickness]
SineCurveList.append([dblX,0.0,dblYCoordUpByHalfWallThickness])
dblDeg += dblDegStep
dblX += dblXStep
# per Dale Fugier: "...I'd push the points into the rs.AddInterpCurve
# method..."
rs.AddInterpCurve(SineCurveList)
Give it a testdrive using this:
https://1drv.ms/u/s!AvbRThajlgqAhhv6Iy3bGqHLJysc
Thanks again!
David