<<plato.m

numVertices = 8

Do[v[i+2*j+4*k] = 2*{i,j,k}-1,{i,0,1},{j,0,1},{k,0,1}]

Faces = {
 {0,2,6,4},
 {1,3,7,5},
 {0,1,5,4},
 {2,3,7,6},
 {0,1,3,2},
 {4,5,7,6}}

Edges = {{0,1}, {0,2}, {0,4}, {1,3}, {1,5}, {2,3},
         {2,6}, {3,7}, {4,5}, {4,6}, {5,7}, {6,7}}

cube = BasicPicture[]

cubedual = DualPicture[]

cubediag = g3D[
   {Thickness[0.005],
    White,
    Linify /@ Edges,
    Table[{col[i],Line[{1.5 v[i],-1.5 v[i]}]},{i,0,3}]
},{5,1.5,0.5}]

cuberot = g3D[{
 BWSolid[],
 Thickness[0.01],
 Red,
 Line[{ v[5], 1.3 v[5]}],
 Line[{-v[5],-1.3 v[5]}],
 Green,
 Line[{0.5*(v[4]+v[6]),0.75*(v[4]+v[6])}],
 Line[{-0.5*(v[4]+v[6]),-0.75*(v[4]+v[6])}],
 Blue,
 Line[{{1,0,0},{1.7,0,0}}],
 Line[{{-1,0,0},{-1.7,0,0}}]
}]

(*
WriteLiveForm["/HOME1/pm1nps/plato/cube/cube.m",cube]
WriteLiveForm["/HOME1/pm1nps/plato/cube/cubediag.m",cubediag]
WriteLiveForm["/HOME1/pm1nps/plato/cube/cuberot.m",cuberot]
WriteLiveForm["/HOME1/pm1nps/plato/cube/cubedual.m",cubedual]
 *)