34 lines
937 B
Python
34 lines
937 B
Python
![]() |
import FreeCAD
|
||
|
import Mesh
|
||
|
import FreeCAD as App
|
||
|
from model.mesh_part_model import MeshPartModel
|
||
|
|
||
|
|
||
|
class JoinMeshModel:
|
||
|
id = None
|
||
|
mesh = None
|
||
|
|
||
|
def __init__(self, meshesPartModels: list['MeshPartModel']) -> None:
|
||
|
meshes = []
|
||
|
import Mesh
|
||
|
from random import randrange
|
||
|
for el in meshesPartModels:
|
||
|
meshes.append(el.mesh.Mesh)
|
||
|
|
||
|
self.id = 'MergedMesh' + str(randrange(1000000))
|
||
|
document = App.ActiveDocument
|
||
|
merged_mesh = Mesh.Mesh()
|
||
|
for el in meshes:
|
||
|
merged_mesh.addMesh(el)
|
||
|
|
||
|
new_obj = App.activeDocument().addObject("Mesh::Feature", self.id)
|
||
|
new_obj.Mesh = merged_mesh
|
||
|
new_obj.ViewObject.DisplayMode = "Flat Lines" # Set display mode to flat lines
|
||
|
self.mesh = new_obj
|
||
|
|
||
|
def remove(self):
|
||
|
try:
|
||
|
App.ActiveDocument.removeObject(self.id)
|
||
|
except Exception as e:
|
||
|
print(e)
|