続きです。
今度は、ソリッド図形を追加したものです。
先にソリッド図形を作図してから線等を作図していますので、作図タイミングの問題で面取り・丸め共有部分というのはバラしています。
// 面取り/丸め付き四角形の作図05
// 面取り/丸め付き四角形の作図01改 ソリッド付
#LIST
 base = "左上","中上","右上","左中","中中","右中","左下","中下","右下"
 marume = "なし","面取り","丸め"
#VAR
 scol = 0    ;*ソリッド任意色
 col = 1     ;*線色
 typ = 1     ;*線種
 wid = 0     ;*線幅
 sx =100     ;*幅
 sy =100     ;*高さ
 base = 中中   ;*基準点
 marume = なし  ;*面取り/丸め指定
 mm = 10     ;*面取量/丸めR
 ib
 kx
 ky
 im
 w1
 w2
 w3
 w4
 w5
 w6
 w7
 w8
#DRAW
 PEN col,typ,wid
 CHKITEM ib,base,base
 #IF (ib == 0)
  CAL kx = sx/2
  CAL ky =-sy/2
 #END
 #IF (ib == 1)
  CAL kx = 0
  CAL ky =-sy/2
 #END
 #IF (ib == 2)
  CAL kx =-sx/2
  CAL ky =-sy/2
 #END
 #IF (ib == 3)
  CAL kx = sx/2
  CAL ky = 0
 #END
 #IF (ib == 4)
  CAL kx = 0
  CAL ky = 0
 #END
 #IF (ib == 5)
  CAL kx =-sx/2
  CAL ky = 0
 #END
 #IF (ib == 6)
  CAL kx = sx/2
  CAL ky = sy/2
 #END
 #IF (ib == 7)
  CAL kx = 0
  CAL ky = sy/2
 #END
 #IF (ib == 8)
  CAL kx =-sx/2
  CAL ky = sy/2
 #END
 CHKITEM im,marume,marume
 #IF (im == 1)
  #GOTO *N1
 #END
 #IF (im == 2)
  #GOTO *N2
 #END
// ----- 四角 -----
 CAL w1 = kx - sx/2
 CAL w2 = ky - sy/2
 CAL w3 = kx + sx/2
 CAL w4 = ky + sy/2
 4SOLID scol,w1,w2,w1,w4,w3,w4,w3,w2
 BOX w1,w2,w3,w4

 #EXIT

// ----- 面取り付き四角 -----
*N1
 CAL w1 = kx - sx/2
 CAL w2 = ky + sy/2 - mm
 CAL w3 = kx - sx/2 + mm
 CAL w4 = ky + sy/2
 CAL w5 = kx + sx/2 - mm
 CAL w6 = ky + sy/2
 CAL w7 = kx + sx/2
 CAL w8 = ky + sy/2 - mm
 4SOLID scol,w1,w2,w3,w4,w5,w6,w7,w8  // 上部台形
 CAL w1 = kx - sx/2
 CAL w2 = ky - sy/2 + mm
 CAL w3 = kx + sx/2
 CAL w4 = ky + sy/2 - mm
 4SOLID scol,w1,w2,w1,w4,w3,w4,w3,w2  // 中央長方形
 CAL w1 = kx - sx/2 + mm
 CAL w2 = ky - sy/2
 CAL w3 = kx - sx/2
 CAL w4 = ky - sy/2 + mm
 CAL w5 = kx + sx/2
 CAL w6 = ky - sy/2 + mm
 CAL w7 = kx + sx/2 - mm
 CAL w8 = ky - sy/2
 4SOLID scol,w1,w2,w3,w4,w5,w6,w7,w8  // 下部台形

 CAL w1 = kx - sx/2 + mm
 CAL w2 = ky + sy/2
 CAL w3 = kx + sx/2 - mm
 CAL w4 = w2
 LINE w1,w2,w3,w4  // 上線

 CAL w2 = ky - sy/2
 CAL w4 = w2
 LINE w1,w2,w3,w4  // 下線

 CAL w1 = kx - sx/2
 CAL w2 = ky + sy/2 - mm
 CAL w3 = w1
 CAL w4 = ky - sy/2 + mm
 LINE w1,w2,w3,w4  // 左線

 CAL w1 = kx + sx/2
 CAL w3 = w1
 LINE w1,w2,w3,w4  // 右線

 // --- 面取り部 ---
 CAL w1 = kx - sx/2
 CAL w2 = ky + sy/2 - mm
 CAL w3 = kx - sx/2 + mm
 CAL w4 = ky + sy/2
 LINE w1,w2,w3,w4  // 左上

 CAL w1 = kx + sx/2 - mm
 CAL w2 = ky + sy/2
 CAL w3 = kx + sx/2
 CAL w4 = ky + sy/2 - mm
 LINE w1,w2,w3,w4  // 右上

 CAL w1 = kx - sx/2
 CAL w2 = ky - sy/2 + mm
 CAL w3 = kx - sx/2 + mm
 CAL w4 = ky - sy/2
 LINE w1,w2,w3,w4  // 左下

 CAL w1 = kx + sx/2 - mm
 CAL w2 = ky - sy/2
 CAL w3 = kx + sx/2
 CAL w4 = ky - sy/2 + mm
 LINE w1,w2,w3,w4  // 右下

 #EXIT

// ----- 丸め付き四角 -----
*N2
 CAL w1 = kx - sx/2 + mm
 CAL w2 = ky + sy/2 - mm
 CAL w3 = kx - sx/2 + mm
 CAL w4 = ky + sy/2
 CAL w5 = kx + sx/2 - mm
 CAL w6 = ky + sy/2
 CAL w7 = kx + sx/2 - mm
 CAL w8 = ky + sy/2 - mm
 4SOLID scol,w1,w2,w3,w4,w5,w6,w7,w8  // 上部長方形
 CAL w1 = kx - sx/2 + mm
 CAL w2 = ky + sy/2 - mm
 CAL w3 = mm
 CAL w4 = 90/180*PI
 CAL w5 = 180/180*PI
 PSOLID scol,w1,w2,w3,w3,0,w4,w5  // 左上
 CAL w1 = kx + sx/2 - mm
 CAL w2 = ky + sy/2 - mm
 CAL w3 = mm
 CAL w4 = 0/180*PI
 CAL w5 = 90/180*PI
 PSOLID scol,w1,w2,w3,w3,0,w4,w5  // 右上
 CAL w1 = kx - sx/2
 CAL w2 = ky - sy/2 + mm
 CAL w3 = kx + sx/2
 CAL w4 = ky + sy/2 - mm
 4SOLID scol,w1,w2,w1,w4,w3,w4,w3,w2  // 中央長方形
 CAL w1 = kx - sx/2 + mm
 CAL w2 = ky - sy/2
 CAL w3 = kx - sx/2 + mm
 CAL w4 = ky - sy/2 + mm
 CAL w5 = kx + sx/2 - mm
 CAL w6 = ky - sy/2 + mm
 CAL w7 = kx + sx/2 - mm
 CAL w8 = ky - sy/2
 4SOLID scol,w1,w2,w3,w4,w5,w6,w7,w8  // 下部長方形
 CAL w1 = kx - sx/2 + mm
 CAL w2 = ky - sy/2 + mm
 CAL w3 = mm
 CAL w4 = 180/180*PI
 CAL w5 = 270/180*PI
 PSOLID scol,w1,w2,w3,w3,0,w4,w5  // 左下
 CAL w1 = kx + sx/2 - mm
 CAL w2 = ky - sy/2 + mm
 CAL w3 = mm
 CAL w4 = 270/180*PI
 CAL w5 = 0
 PSOLID scol,w1,w2,w3,w3,0,w4,w5  // 右下

 CAL w1 = kx - sx/2 + mm
 CAL w2 = ky + sy/2
 CAL w3 = kx + sx/2 - mm
 CAL w4 = w2
 LINE w1,w2,w3,w4  // 上線

 CAL w2 = ky - sy/2
 CAL w4 = w2
 LINE w1,w2,w3,w4  // 下線

 CAL w1 = kx - sx/2
 CAL w2 = ky + sy/2 - mm
 CAL w3 = w1
 CAL w4 = ky - sy/2 + mm
 LINE w1,w2,w3,w4  // 左線

 CAL w1 = kx + sx/2
 CAL w3 = w1
 LINE w1,w2,w3,w4  // 右線

 // --- 丸め部 ---
 CAL w1 = kx - sx/2 + mm
 CAL w2 = ky + sy/2 - mm
 CAL w3 = mm
 CAL w4 = 90/180*PI
 CAL w5 = 180/180*PI
 ARC w1,w2,w3,w4,w5  // 左上

 CAL w1 = kx + sx/2 - mm
 CAL w2 = ky + sy/2 - mm
 CAL w3 = mm
 CAL w4 = 0/180*PI
 CAL w5 = 90/180*PI
 ARC w1,w2,w3,w4,w5  // 右上

 CAL w1 = kx - sx/2 + mm
 CAL w2 = ky - sy/2 + mm
 CAL w3 = mm
 CAL w4 = 180/180*PI
 CAL w5 = 270/180*PI
 ARC w1,w2,w3,w4,w5  // 左下

 CAL w1 = kx + sx/2 - mm
 CAL w2 = ky - sy/2 + mm
 CAL w3 = mm
 CAL w4 = 270/180*PI
 CAL w5 = 0
 ARC w1,w2,w3,w4,w5  // 右下
実行します。
20090224l

面取りします。
20090224m

丸めします。
20090224n