Cutting and splitting meshes

i try to cut/ split my 3d scanned models
but some (very often) times the split failes an ich get very wired structures on the cutting/ splittingline
grafik

sometme it does not work at allMö5.3dm (4.3 MB)
like you see most cuts work.

It version 6 especial by using _Splitwithcurve the whole Mesh got killed.
Even by gettng the curve with polygonmesh intersection.

I hope I explained it correctly.

Thanx Simon

Hi Simon - the mesh intersection/splitting/trimming tools are undergoing an overhaul (so to speak) for V7. They are not very robust in V6 and earlier as you see.

-Pascal

Simon, @pascal,

Your mesh is complex with many pieces. I picked the largest piece and split it with my mesh splitting script. The result is in the attached .3dm file with the Start Mesh displayed.

TrimMeshToCut1Cut2More.py (332.3 KB)

MeshWithSplit.3dm (2.7 MB)

Some notes:
(1) My script can only split (or trim or make hole or pit) in one visible mesh at a time. The mesh to be split has to be on the Start Layer.
(2) The script works in the Top View (Drauf View). You have to be able to orient your mesh so it can be split in the Top View.
(3) The script puts the split pieces on the Pieces layer. You have to move the meshes on the Pieces layer to another layer before moving another mesh to the Start layer and repeating the splitting operation.
(4) The script splits the mesh by the curves on the Ordinary layer. The curves have to be closed curves.
(5) The GUI for the script allows you to enter the curve for the first time or to select an existing curve.
(6) The mesh on the Start Layer is never modified by the script.
(7) If you have items on other layers, just turn off those layers before using the script.
(7) Once you have selected all the options on the GUI, press the Split button
(9) The script is somewhat complex, requiring 6000 lines of Python code. But it solves many of the problems Rhino has when splitting a mesh. The script is fully documented with professional quality. It explains in detail every operation performed to split a mesh.
(10) The code was written with performance it mind. Typically it is more than 10X faster than Rhino on large meshes. And fails 1/10 of the time.

This shows the largest mesh that I placed on the Start Layer and the cutting curve on the Ordinary layer.

Here is the mesh after splitting by the curve on the Ordinary layer:

Here is the Repair Mesh tool report for the split pieces:

This is a good mesh.

Important things to consider with this mesh:
  Mesh has 1128 naked edges. Although this does not necessarily mean that the mesh is bad,
    naked edges can cause problems if the ultimate goal is STL output.

General information about this mesh:
  Mesh does not have any degenerate faces.
  Mesh does not have any ngons.
  Mesh does not have any extremely short edges.
  Mesh does not have any non manifold edges.
  Mesh does not have any duplicate faces.
  Mesh does not have any faces with directions different from the mesh as a whole.
  Mesh does not have any self intersecting faces.
  Mesh does not have any disjoint pieces.
  Mesh does not have any unused vertices.

ID: 8dd0ebe9-5e17-43a9-97e5-4404896d8b42 (922)
Object name: (not named)
Layer name: 3D Model::Split::Pieces
Render Material: 
  source = from layer
  index = -1

Geometry:
  Valid mesh.
  Open polygon mesh: 9998 vertices, 18866 faces with normals
    Bounding box: (1.31325,-0.485252,-0.175925) to (2.50991,0.565974,-0.0820291)


This is a good mesh.

Important things to consider with this mesh:
  Mesh has 1161 naked edges. Although this does not necessarily mean that the mesh is bad,
    naked edges can cause problems if the ultimate goal is STL output.

General information about this mesh:
  Mesh does not have any degenerate faces.
  Mesh does not have any ngons.
  Mesh does not have any extremely short edges.
  Mesh does not have any non manifold edges.
  Mesh does not have any duplicate faces.
  Mesh does not have any faces with directions different from the mesh as a whole.
  Mesh does not have any self intersecting faces.
  Mesh does not have any disjoint pieces.
  Mesh does not have any unused vertices.



ID: 2e93c679-386e-4edd-b908-d9e1470459c9 (923)
Object name: (not named)
Layer name: 3D Model::Split::Pieces
Render Material: 
  source = from layer
  index = -1

Geometry:
  Valid mesh.
  Open double precision polygon mesh: 10725 vertices, 20287 faces with normals
    Bounding box: (0.0960317,-0.490469,-0.176291) to (1.31325,0.601206,-0.0820291)

Here is a view of the GUI with the form setup to split the mesh on the Start Layer:

Notice the Normals option is checked so you get a good mesh (otherwise the face normals will differ substantially from the vertex normals and cause a bad mesh).

Your version of the GUI will not show the picture at the top (I left it out to simply your use of the script for now).

The GUI does a lot of things for a mesh and can be confusing at first. Almost all of the fields on the form have a Tooltip. Just hover your mouse over a field to see what it does.

This script can split all my meshes, from 0.1K faces up to 33M faces, with 3D overhangs or without. But it only does 1 mesh at a time. It is very fast; it took less than 0.4 sec to split your largest mesh piece. It also runs in sec on meshes with millions of faces.

Is it possible to join all the mesh into one piece and then split or trim it?

Let me know if you have any questions about running the script.

Regards,
Terry.