```
import XCoreModeling as xcm
# get the simulation
sim = doc.AllSimulations[0]
# get bounding box of everything in your simulation
bounding_planes = xcm.GetBoundingBox(list(sim.AllComponents))
# returns a 2-tuple of Vec3 which give the opposite corners of the bounding box
# get the padding added by the grid settings
grid_settings = sim.GlobalGridSettings
for xyz in range(3):
grid_bounds[0][xyz] -= grid_settings.BottomPadding[xyz]
grid_bounds[1][xyz] += grid_settings.TopPadding[xyz]
```

This should be accessible once the simulation has been set up, but before it has been run. Hope this helps!

]]>But thanks a lot for contributing: this piece of code will for sure end up being useful to someone!

]]>```
import s4l_v1.document as doc
import numpy as np
#get all the simulations
sims = list(doc.AllSimulations)
#select a simulation here
firstSim = sims[0]
#get the results
result_firstSim = firstSim.Results()
result_firstSim = result_firstSim['Overall Field']
#get the grid settings
GridData = result_firstSim[0]
GridData.Update()
GridData = GridData.Data.Grid
#get the axis
X = GridData.XAxis
Y = GridData.YAxis
Z = GridData.ZAxis
#create the matrix that is shown in the options mene
numGridLines = GridData.Dimensions
numCells = np.array(numGridLines) -1
minStep = np.array([np.min(np.diff(X)),np.min(np.diff(Y)),np.min(np.diff(Z))])*1000
maxStep = np.array([np.max(np.diff(X)),np.max(np.diff(Y)),np.max(np.diff(Z))])*1000
boundaryMin = np.array([X[0],Y[0],Z[0]])*1000
boundaryPlus = np.array([X[-1],Y[-1],Z[-1]])*1000
MainGridOptionsArray = np.array([numCells,numGridLines,minStep,maxStep,boundaryMin,boundaryPlus])
```

Maybe it is also possible to get this data without running the simulation.

]]>