続きです。
面取り/丸め付き四角形の作図02を修正しソリッド図形の作図を追加します。各点の座標を計算してから作図するようにしています。丸めR部分は、同じRがスライド移動状態になっているため円環ソリッドは使えません。また、間隔値が狭い場合を考えると円外ソリッドも使えません。内部を白ソリッドで埋めてしまう手法もありますが、この手法を取りたくないパターンも多いと思われますので(ソリッド最初に作図をしない場合等)それも使いません。という訳で、R部分は線分で分解すると考えて四角形ソリッドを分割数の分だけ作図する、という手法を取ります。内側・外側とも内接多角形状態とします。そのため作図には少々時間が掛かります。
// 面取り/丸め付き四角形の作図06
// 面取り/丸め付き四角形の作図02改 ソリッド付
//  ※外側と内側の面取量・丸めRは同じ値のバージョン
#LIST
 base = "左上","中上","右上","左中","中中","右中","左下","中下","右下"
 marume = "なし","面取り","丸め"
#VAR
 scol= 0     ;*ソリッド任意色
 col = 1     ;*線色
 typ = 1     ;*線種
 wid = 0     ;*線幅
 sx =100     ;*幅
 sy =100     ;*高さ
 ds = 10     ;*間隔
 base = 中中   ;*基準点
 marume = なし  ;*面取り/丸め指定
 mm = 10     ;*面取量/丸めR
 rn = 8     ;*丸めR部分の分割数
 i
 ib
 gx
 gy
 kx
 ky
 im
 w1
 w2
 w3
 w4
 w5
 w6
 px1
 py1
 px2
 py2
 px3
 py3
 px4
 py4
 px5
 py5
 px6
 py6
 px7
 py7
 px8
 py8
 qx1
 qy1
 qx2
 qy2
 qx3
 qy3
 qx4
 qy4
 qx5
 qy5
 qx6
 qy6
 qx7
 qy7
 qx8
 qy8
 wx1
 wy1
 wx2
 wy2
 wx3
 wy3
 wx4
 wy4
#DRAW
 PEN col,typ,wid
 CAL gx = sx  // gx,gyは外側サイズ
 CAL gy = sy
 #IF (ds > 0)
  CAL gx = sx + ds*2
  CAL gy = sy + ds*2
 #END
 CHKITEM ib,base,base
 #IF (ib == 0)
  CAL kx = gx/2
  CAL ky =-gy/2
 #END
 #IF (ib == 1)
  CAL kx = 0
  CAL ky =-gy/2
 #END
 #IF (ib == 2)
  CAL kx =-gx/2
  CAL ky =-gy/2
 #END
 #IF (ib == 3)
  CAL kx = gx/2
  CAL ky = 0
 #END
 #IF (ib == 4)
  CAL kx = 0
  CAL ky = 0
 #END
 #IF (ib == 5)
  CAL kx =-gx/2
  CAL ky = 0
 #END
 #IF (ib == 6)
  CAL kx = gx/2
  CAL ky = gy/2
 #END
 #IF (ib == 7)
  CAL kx = 0
  CAL ky = gy/2
 #END
 #IF (ib == 8)
  CAL kx =-gx/2
  CAL ky = gy/2
 #END
 CHKITEM im,marume,marume
 #IF (im != 0)
  #GOTO *N1
 #END
// ----- 四角 -----
 CAL px1 = kx - sx/2
 CAL py1 = ky - sy/2
 CAL px2 = kx + sx/2
 CAL py2 = ky + sy/2
 CAL qx1 = kx - sx/2 - ds
 CAL qy1 = ky - sy/2 - ds
 CAL qx2 = kx + sx/2 + ds
 CAL qy2 = ky + sy/2 + ds
 #IF (ds == 0)
  4SOLID scol, px1,py1, px1,py2, px2,py2, px2,py1
  BOX px1,py1,px2,py2
 #ELSE
  4SOLID scol, px1,py1, px1,py2, qx1,qy2, qx1,qy1
  4SOLID scol, px1,py2, px2,py2, qx2,qy2, qx1,qy2
  4SOLID scol, px2,py2, px2,py1, qx2,qy1, qx2,qy2
  4SOLID scol, px2,py1, px1,py1, qx1,qy1, qx2,qy1
  BOX px1,py1,px2,py2
  BOX qx1,qy1,qx2,qy2
 #END

 #EXIT

// ----- 面取り・丸め付き四角 -----
*N1
 // --- 共通部分 ---
 CAL px1 = kx - sx/2 + mm
 CAL py1 = ky - sy/2
 CAL px2 = kx - sx/2
 CAL py2 = ky - sy/2 + mm
 CAL px3 = kx - sx/2
 CAL py3 = ky + sy/2 - mm
 CAL px4 = kx - sx/2 + mm
 CAL py4 = ky + sy/2
 CAL px5 = kx + sx/2 - mm
 CAL py5 = ky + sy/2
 CAL px6 = kx + sx/2
 CAL py6 = ky + sy/2 - mm
 CAL px7 = kx + sx/2
 CAL py7 = ky - sy/2 + mm
 CAL px8 = kx + sx/2 - mm
 CAL py8 = ky - sy/2

 CAL qx1 = kx - sx/2 - ds + mm
 CAL qy1 = ky - sy/2 - ds
 CAL qx2 = kx - sx/2 - ds
 CAL qy2 = ky - sy/2 - ds + mm
 CAL qx3 = kx - sx/2 - ds
 CAL qy3 = ky + sy/2 + ds - mm
 CAL qx4 = kx - sx/2 - ds + mm
 CAL qy4 = ky + sy/2 + ds
 CAL qx5 = kx + sx/2 + ds - mm
 CAL qy5 = ky + sy/2 + ds
 CAL qx6 = kx + sx/2 + ds
 CAL qy6 = ky + sy/2 + ds - mm
 CAL qx7 = kx + sx/2 + ds
 CAL qy7 = ky - sy/2 - ds + mm
 CAL qx8 = kx + sx/2 + ds - mm
 CAL qy8 = ky - sy/2 - ds

 #IF (im == 2)
  #GOTO *N2
 #END

// ----- 面取り付き四角 -----
 #IF (ds == 0)
  4SOLID scol, px1,py1, px2,py2, px3,py3, px4,py4
  4SOLID scol, px1,py1, px4,py4, px5,py5, px8,py8
  4SOLID scol, px5,py5, px6,py6, px7,py7, px8,py8
 #ELSE
  4SOLID scol, px1,py1, px2,py2, qx2,qy2, qx1,qy1
  4SOLID scol, px2,py2, px3,py3, qx3,qy3, qx2,qy2
  4SOLID scol, px3,py3, px4,py4, qx4,qy4, qx3,qy3
  4SOLID scol, px4,py4, px5,py5, qx5,qy5, qx4,qy4
  4SOLID scol, px5,py5, px6,py6, qx6,qy6, qx5,qy5
  4SOLID scol, px6,py6, px7,py7, qx7,qy7, qx6,qy6
  4SOLID scol, px7,py7, px8,py8, qx8,qy8, qx7,qy7
  4SOLID scol, px8,py8, px1,py1, qx1,qy1, qx8,qy8
 #END

 LINE px1,py1, px2,py2
 LINE px2,py2, px3,py3
 LINE px3,py3, px4,py4
 LINE px4,py4, px5,py5
 LINE px5,py5, px6,py6
 LINE px6,py6, px7,py7
 LINE px7,py7, px8,py8
 LINE px8,py8, px1,py1
 #IF (ds != 0)
  LINE qx1,qy1, qx2,qy2
  LINE qx2,qy2, qx3,qy3
  LINE qx3,qy3, qx4,qy4
  LINE qx4,qy4, qx5,qy5
  LINE qx5,qy5, qx6,qy6
  LINE qx6,qy6, qx7,qy7
  LINE qx7,qy7, qx8,qy8
  LINE qx8,qy8, qx1,qy1
 #END

 #EXIT

// ----- 丸め付き四角 -----
*N2
 CAL w1 = 0
 CAL w2 = 0.5*PI
 CAL w3 = PI
 CAL w4 = 1.5*PI
 CAL w5 = mm

 #IF (ds == 0)
  4SOLID scol, px1,py1, px2,py2, px3,py3, px4,py4
  4SOLID scol, px1,py1, px4,py4, px5,py5, px8,py8
  4SOLID scol, px5,py5, px6,py6, px7,py7, px8,py8
  YSOLID scol, px1,py2, w5,w5,0,w3,w4
  YSOLID scol, px4,py3, w5,w5,0,w2,w3
  YSOLID scol, px5,py6, w5,w5,0,w1,w2
  YSOLID scol, px8,py7, w5,w5,0,w4,w1
 #ELSE
  // 4SOLID scol, px1,py1, px2,py2, qx2,qy2, qx1,qy1
  4SOLID scol, px2,py2, px3,py3, qx3,qy3, qx2,qy2
  // 4SOLID scol, px3,py3, px4,py4, qx4,qy4, qx3,qy3
  4SOLID scol, px4,py4, px5,py5, qx5,qy5, qx4,qy4
  // 4SOLID scol, px5,py5, px6,py6, qx6,qy6, qx5,qy5
  4SOLID scol, px6,py6, px7,py7, qx7,qy7, qx6,qy6
  // 4SOLID scol, px7,py7, px8,py8, qx8,qy8, qx7,qy7
  4SOLID scol, px8,py8, px1,py1, qx1,qy1, qx8,qy8
  //
  CAL i = 0
  CAL w6 = w3
  CAL wx1 = px1 + w5*Cos(w6)
  CAL wy1 = py2 + w5*Sin(w6)
  CAL wx2 = qx1 + w5*Cos(w6)
  CAL wy2 = qy2 + w5*Sin(w6)
  #WHILE (i < rn)
   CAL w6 = w6 + 0.5*PI/rn
   CAL wx3 = px1 + w5*Cos(w6)
   CAL wy3 = py2 + w5*Sin(w6)
   CAL wx4 = qx1 + w5*Cos(w6)
   CAL wy4 = qy2 + w5*Sin(w6)
   4SOLID scol, wx1,wy1, wx2,wy2, wx4,wy4, wx3,wy3
   CAL wx1 = wx3
   CAL wy1 = wy3
   CAL wx2 = wx4
   CAL wy2 = wy4
   CAL i = i + 1
  #END
  //
  CAL i = 0
  CAL w6 = w2
  CAL wx1 = px4 + w5*Cos(w6)
  CAL wy1 = py3 + w5*Sin(w6)
  CAL wx2 = qx4 + w5*Cos(w6)
  CAL wy2 = qy3 + w5*Sin(w6)
  #WHILE (i < rn)
   CAL w6 = w6 + 0.5*PI/rn
   CAL wx3 = px4 + w5*Cos(w6)
   CAL wy3 = py3 + w5*Sin(w6)
   CAL wx4 = qx4 + w5*Cos(w6)
   CAL wy4 = qy3 + w5*Sin(w6)
   4SOLID scol, wx1,wy1, wx2,wy2, wx4,wy4, wx3,wy3
   CAL wx1 = wx3
   CAL wy1 = wy3
   CAL wx2 = wx4
   CAL wy2 = wy4
   CAL i = i + 1
  #END
  //
  CAL i = 0
  CAL w6 = w1
  CAL wx1 = px5 + w5*Cos(w6)
  CAL wy1 = py6 + w5*Sin(w6)
  CAL wx2 = qx5 + w5*Cos(w6)
  CAL wy2 = qy6 + w5*Sin(w6)
  #WHILE (i < rn)
   CAL w6 = w6 + 0.5*PI/rn
   CAL wx3 = px5 + w5*Cos(w6)
   CAL wy3 = py6 + w5*Sin(w6)
   CAL wx4 = qx5 + w5*Cos(w6)
   CAL wy4 = qy6 + w5*Sin(w6)
   4SOLID scol, wx1,wy1, wx2,wy2, wx4,wy4, wx3,wy3
   CAL wx1 = wx3
   CAL wy1 = wy3
   CAL wx2 = wx4
   CAL wy2 = wy4
   CAL i = i + 1
  #END
  //
  CAL i = 0
  CAL w6 = w4
  CAL wx1 = px8 + w5*Cos(w6)
  CAL wy1 = py7 + w5*Sin(w6)
  CAL wx2 = qx8 + w5*Cos(w6)
  CAL wy2 = qy7 + w5*Sin(w6)
  #WHILE (i < rn)
   CAL w6 = w6 + 0.5*PI/rn
   CAL wx3 = px8 + w5*Cos(w6)
   CAL wy3 = py7 + w5*Sin(w6)
   CAL wx4 = qx8 + w5*Cos(w6)
   CAL wy4 = qy7 + w5*Sin(w6)
   4SOLID scol, wx1,wy1, wx2,wy2, wx4,wy4, wx3,wy3
   CAL wx1 = wx3
   CAL wy1 = wy3
   CAL wx2 = wx4
   CAL wy2 = wy4
   CAL i = i + 1
  #END
 #END

 LINE px2,py2, px3,py3
 LINE px4,py4, px5,py5
 LINE px6,py6, px7,py7
 LINE px8,py8, px1,py1
 ARC px1,py2, w5,w3,w4
 ARC px4,py3, w5,w2,w3
 ARC px5,py6, w5,w1,w2
 ARC px8,py7, w5,w4,w1
 #IF (ds != 0)
  LINE qx2,qy2, qx3,qy3
  LINE qx4,qy4, qx5,qy5
  LINE qx6,qy6, qx7,qy7
  LINE qx8,qy8, qx1,qy1
  ARC qx1,qy2, w5,w3,w4
  ARC qx4,qy3, w5,w2,w3
  ARC qx5,qy6, w5,w1,w2
  ARC qx8,qy7, w5,w4,w1
 #END
実行します。
20090225a

面取りします。
20090225b

丸めします。
20090225c