Shafts

[1]:
import numpy as np
import pyvista as pv
import geopandas as gpd
from geometron.geom_to_vtk import gdf_to_ug
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
/tmp/ipykernel_625/3909925717.py in <module>
      1 import numpy as np
----> 2 import pyvista as pv
      3 import geopandas as gpd
      4 from geometron.geom_to_vtk import gdf_to_ug

ModuleNotFoundError: No module named 'pyvista'

Importation of the geopackage as a dat frame

[2]:
gds = gpd.read_file('../../../../data/Shaft.gpkg')
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/tmp/ipykernel_625/2788533962.py in <module>
----> 1 gds = gpd.read_file('../../../../data/Shaft.gpkg')

NameError: name 'gpd' is not defined

Definition of the radius of the tube of the shaft

[3]:
gds['radius']=5
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/tmp/ipykernel_625/1871189254.py in <module>
----> 1 gds['radius']=5

NameError: name 'gds' is not defined

Determine the unique data with a unique name

[4]:
names = gds['Nom'].unique()
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/tmp/ipykernel_625/4028751097.py in <module>
----> 1 names = gds['Nom'].unique()

NameError: name 'gds' is not defined

For each unique name, a loop returns the coordinates of the shafts points which has this unique name. A spline is created for each group of points. This spline is then transformed into a tube.

[5]:
shafts = []
for i in names:
    radius = gds.query(f'Nom=="{i}"').radius.mean()
    vertices = np.array([(i.x, i.y, i.z) for i in gds.query(f'Nom=="{i}"').geometry.values])
    line = pv.Spline(vertices)
    shafts.append(line.tube(radius=radius))
shafts = pv.MultiBlock(shafts)

shafts.plot()
#shafts.save('./tmp_files/galeries.vtm',binary=False)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
/tmp/ipykernel_625/1908995339.py in <module>
      1 shafts = []
----> 2 for i in names:
      3     radius = gds.query(f'Nom=="{i}"').radius.mean()
      4     vertices = np.array([(i.x, i.y, i.z) for i in gds.query(f'Nom=="{i}"').geometry.values])
      5     line = pv.Spline(vertices)

NameError: name 'names' is not defined
[ ]: