Hola este es un ejemplo que encontre de como hacer un grafico de torta en 3D con la api Pie,una vez que lo tuve se me ocurrio ponerle la funcion para que muestre la capacidad del disco duro en el grafico como lo hace windows cuando le damos a las propiedades del disco duro,y me quedo asi terminado.

Añadir un PictureBox al formulario y este codigo:

Código:
Private Declare Function Pie Lib "gdi32" ( _
 ByVal hdc As Long, ByVal X1 As Long, _
 ByVal Y1 As Long, ByVal X2 As Long, _
 ByVal Y2 As Long, ByVal X3 As Long, _
 ByVal Y3 As Long, ByVal X4 As Long, _
 ByVal Y4 As Long) As Long
 
Private Const PI = 3.14159265

Private Declare Function GetDiskFreeSpaceEx Lib "kernel32" Alias "GetDiskFreeSpaceExA" (ByVal lpDirectoryName As String, lpFreeBytesAvailableToCaller As Currency, lpTotalNumberOfBytes As Currency, lpTotalNumberOfFreeBytes As Currency) As Long

Private Sub Form_Load()
Dim Status As Long
Dim espacioocupado As Currency
Dim espaciototal As Currency
Dim TotalBytes As Currency
Dim FreeBytes As Currency
Dim BytesAvailableToCaller As Currency
Status = GetDiskFreeSpaceEx("c:\", lpFreeBytesAvailableToCaller, TotalBytes, FreeBytes)
If Status <> 0 Then
espaciototal = Format(TotalBytes * 10000, "#,##0")
espacioocupado = Format(FreeBytes * 10000, "#,##0")
End If
PaintPie Picture1, espacioocupado, espaciototal
Me.Caption = "Capacidad disco " & "Total: " & TotalBytes / 100000 & " GB" & " Libre: " & FreeBytes / 100000 & " GB"
End Sub

Public Sub PaintPie(ByRef oPicBox As PictureBox, ByVal dblValue As Double, ByVal dblMax As Double)
Dim nWidth As Integer, nHeight As Integer, nDeep As Integer
Dim nLeft As Integer, nTop As Integer
Dim nWinkel As Double, nGrad As Double
Dim dblX1 As Double, dblY1 As Double
Dim i As Integer
 
Const DarkMagenta = 8388736
Const DarkBlue = 8388608
 
 With oPicBox
 .Cls
 .AutoRedraw = True
 .ScaleMode = vbPixels
 .ForeColor = vbBlack
 .DrawWidth = 1
 .FillStyle = vbSolid
 nDeep = 10
 nWidth = oPicBox.ScaleHeight + Int(oPicBox.ScaleHeight / 2) - 20
 nHeight = oPicBox.ScaleHeight - 20
 nLeft = (oPicBox.ScaleWidth / 2) - (nWidth / 2)
 nTop = (oPicBox.ScaleHeight / 2) - (nHeight / 2)
 nWinkel = (dblValue / dblMax) * 360
 nGrad = Int(nWinkel - 270)
 dblX1 = nWidth * Sin(((nGrad * PI) / 180))
 dblY1 = nHeight * Cos(((nGrad * PI) / 180))

 If nWinkel = 360 Then

 For i = nDeep To 1 Step -1
 If i < nDeep Then .ForeColor = DarkMagenta
 .FillColor = DarkMagenta
 
 Pie .hdc, nLeft, nTop + i, nLeft + nWidth, nTop + nHeight _
 + i, nLeft, _
 nTop + (nHeight / 2) + i, nLeft, nTop + (nHeight / 2) + i
 Next i
 

 .ForeColor = vbBlack
 .FillColor = vbBlue
 Pie .hdc, nLeft, nTop, nLeft + nWidth, nTop + nHeight, nLeft, _
 nTop + (nHeight / 2), nLeft, nTop + (nHeight / 2)
 Else

 For i = nDeep To 1 Step -1
 If i < nDeep Then .ForeColor = DarkBlue
 .FillColor = DarkBlue
 Pie .hdc, nLeft, nTop + i, nLeft + nWidth, nTop + nHeight _
 + i, nLeft, _
 nTop + (nHeight / 2) + i, nLeft, nTop + (nHeight / 2) + i
 
 If i < nDeep Then .ForeColor = DarkBlue
 .FillColor = DarkBlue
 Pie .hdc, nLeft, nTop + i, nLeft + nWidth, nTop + nHeight _
 + i, nLeft, _
 nTop + (nHeight / 2) + i, nLeft + (nWidth / 2) - _
 Round(dblX1), _
 nTop + (nHeight / 2) - Round(dblY1) + i
 Next i
 

 .ForeColor = vbBlack
 .FillColor = vbMagenta
 Pie .hdc, nLeft, nTop, nLeft + nWidth, nTop + nHeight, nLeft, _
 nTop + (nHeight / 2), nLeft, nTop + (nHeight / 2)

 .FillColor = vbBlue
 Pie .hdc, nLeft, nTop, nLeft + nWidth, nTop + nHeight, nLeft, _
 nTop + (nHeight / 2), nLeft + (nWidth / 2) - Round(dblX1), _
 nTop + (nHeight / 2) - Round(dblY1)
 End If
 End With
End Sub
al ejecutar el programa se visualiza igual como si fuera el del windows,con posibilidad de cambiar los colores a gusto y el tamaño del grafico y su altura.

ojala le sirva a alguien.

saludos.