1Plugin(CutGrid).View = 0;
2Plugin(CutPlane).View = 0;
3
4xslices = GetValue("Number of slices along X-axis?", 10);
5yslices = GetValue("Number of slices along Y-axis?", 0);
6zslices = GetValue("Number of slices along Z-axis?", 0);
7regular = GetValue("Use regular grid?", 0);
8If(regular)
9  npts = GetValue("Number of points in regular grid?", 20);
10  Plugin(CutGrid).NumPointsU = npts;
11  Plugin(CutGrid).NumPointsV = npts;
12EndIf
13
14xmin = View[0].MinX; xmax = View[0].MaxX;
15ymin = View[0].MinY; ymax = View[0].MaxY;
16zmin = View[0].MinZ; zmax = View[0].MaxZ;
17
18If(xslices && xmin != xmax)
19  For x In {xmin : xmax : (xmax-xmin) / (xslices > 1 ? (xslices-1) : 0.1)}
20    If(!regular)
21      Plugin(CutPlane).A = -1 ; Plugin(CutPlane).B = 0 ; Plugin(CutPlane).C = 0 ;
22      Plugin(CutPlane).D = x ; Plugin(CutPlane).Run ;
23    EndIf
24    If(regular)
25      Plugin(CutGrid).X0 = x ; Plugin(CutGrid).Y0 = ymin ; Plugin(CutGrid).Z0 = zmin ;
26      Plugin(CutGrid).X1 = x ; Plugin(CutGrid).Y1 = ymax ; Plugin(CutGrid).Z1 = zmin ;
27      Plugin(CutGrid).X2 = x ; Plugin(CutGrid).Y2 = ymin ; Plugin(CutGrid).Z2 = zmax ;
28      Plugin(CutGrid).Run ;
29    EndIf
30  EndFor
31EndIf
32
33If(yslices && ymin != ymax)
34  For y In {ymin : ymax : (ymax-ymin) / (yslices > 1 ? (yslices-1) : 0.1)}
35    If(!regular)
36      Plugin(CutPlane).A = 0 ; Plugin(CutPlane).B = -1 ; Plugin(CutPlane).C = 0 ;
37      Plugin(CutPlane).D = y ; Plugin(CutPlane).Run ;
38    EndIf
39    If(regular)
40      Plugin(CutGrid).X0 = xmin ; Plugin(CutGrid).Y0 = y ; Plugin(CutGrid).Z0 = zmin ;
41      Plugin(CutGrid).X1 = xmax ; Plugin(CutGrid).Y1 = y ; Plugin(CutGrid).Z1 = zmin ;
42      Plugin(CutGrid).X2 = xmin ; Plugin(CutGrid).Y2 = y ; Plugin(CutGrid).Z2 = zmax ;
43      Plugin(CutGrid).Run ;
44    EndIf
45  EndFor
46EndIf
47
48If(zslices && zmin != zmax)
49  For z In {zmin : zmax : (zmax-zmin) / (zslices > 1 ? (zslices-1) : 0.1)}
50    If(!regular)
51      Plugin(CutPlane).A = 0 ; Plugin(CutPlane).B = 0 ; Plugin(CutPlane).C = -1 ;
52      Plugin(CutPlane).D = z ; Plugin(CutPlane).Run ;
53    EndIf
54    If(regular)
55      Plugin(CutGrid).X0 = xmin ; Plugin(CutGrid).Y0 = ymin ; Plugin(CutGrid).Z0 = z ;
56      Plugin(CutGrid).X1 = xmax ; Plugin(CutGrid).Y1 = ymin ; Plugin(CutGrid).Z1 = z ;
57      Plugin(CutGrid).X2 = xmin ; Plugin(CutGrid).Y2 = ymax ; Plugin(CutGrid).Z2 = z ;
58      Plugin(CutGrid).Run ;
59    EndIf
60  EndFor
61EndIf
62
63Delete Empty Views;
64
65If(GetValue("Remove original view?", 1))
66  Delete View[0];
67EndIf
68
69If(GetValue("Combine all slices in a single view?", 1))
70  Combine Views;
71EndIf
72