@@ -36,21 +36,63 @@ def test_read_dxf_into_mesh(data_path):
3636 import pandas
3737 vertex , cells , cell_attr_int , cell_attr_map = dxf_to_mesh (path )
3838
39- tri = trimesh .Trimesh (vertex , faces = cells )
39+ min = vertex .min (axis = 0 )
40+ tri_array_shifted = vertex - min
41+
42+ tri = trimesh .Trimesh (tri_array_shifted , faces = cells , face_attributes = {"Shaft id" : cell_attr_int })
4043 print (tri .bounds )
4144 print (tri )
4245
4346 unstruct = UnstructuredData .from_array (
4447 np .array (tri .vertices ),
4548 np .array (tri .faces ),
46- cells_attr = pandas .DataFrame (cell_attr_int , columns = ["Shaft id" ]),
49+ cells_attr = pandas .DataFrame (np .array (tri .face_attributes ["Shaft id" ]),
50+ columns = ["Shaft id" ]),
4751 xarray_attributes = {"bounds" : tri .bounds .tolist (),
4852 "cell_attr_map" : cell_attr_map
4953 },
5054 )
51- #from subsurface.writer import base_structs_to_binary_file
52- #base_structs_to_binary_file("shafts ", unstruct)
55+ # from subsurface.writer import base_structs_to_binary_file
56+ # base_structs_to_binary_file("full_sala ", unstruct)
5357
5458 ts = TriSurf (mesh = unstruct )
5559 s = sb_viz .to_pyvista_mesh (ts )
5660 sb_viz .pv_plot ([s ], image_2d = True )
61+
62+
63+ def test_read_dxf_into_mesh_split_by_bodies (data_path ):
64+ path = data_path + '/surfaces/shafts_small.dxf'
65+ #path = "W:\FARMIN\DATA\Museum/sala_model_forth.dxf"
66+ from subsurface .reader .mesh .surface_reader import dxf_to_mesh
67+ import trimesh
68+ import numpy as np
69+ import pandas
70+ vertex , cells , cell_attr_int , cell_attr_map = dxf_to_mesh (path )
71+
72+ tri_full = trimesh .Trimesh (vertex , faces = cells , face_attributes = {"Shaft id" : cell_attr_int })
73+ prev_n_cells = 0
74+
75+ for e , tri in enumerate (tri_full .split ()):
76+ vertex = np .array (tri .vertices )
77+ cells = np .array (tri .faces )
78+
79+ n_cells = cells .shape [0 ]
80+ attr_ = tri_full .face_attributes ["Shaft id" ][prev_n_cells :prev_n_cells + n_cells ]
81+ prev_n_cells += n_cells
82+
83+ cells_attr = pandas .DataFrame (np .array (attr_ ), columns = ["Shaft id" ])
84+
85+ unstruct = UnstructuredData .from_array (
86+ vertex ,
87+ cells ,
88+ cells_attr = cells_attr ,
89+ xarray_attributes = {"bounds" : tri .bounds .tolist (),
90+ "cell_attr_map" : cell_attr_map
91+ },
92+ )
93+
94+
95+ ts = TriSurf (mesh = unstruct )
96+ s = sb_viz .to_pyvista_mesh (ts )
97+ sb_viz .pv_plot ([s ], image_2d = True )
98+
0 commit comments