Need to divide model into smaller sections


I have a huge mode and i want to divide it into 190x190mm blocks so i can 3D print it
but i’m having trouble dividing it, split doesn’t work very well,as the sliced part isn’t closed/capped, not to mention sometime it tells me “objects may not intersect or intersections may not split object.” even tho they do intersect.
and wirecut wrecks havoc or some unknown reason, some surface will disappear after wirecut
is there any way to divide my model?

(Pascal Golay) #2

Hi Lin - BooleanSplit, using planes, should work.



ah, forgot about booleansplit
but unfortunately that doesn’t work either it just says “Boolean split failed.” and i got no idea why

the model i uploaded has naked edges and non-manifold, which i’ve fixed, but booleansplit still fails


Does wirecut command work?


some surface will disappear after wirecut
and sometimes a wirecut will create a box for some reason


woops.sorry about that, you’ve already mentioned wirecut problem…
Is all the surface direction the same?
I can’t precisely recall but I faced a similar problem
due to some error in on of the surfaces…
Using dir may help?


I’d start buy joining all the contours together in stages. This will highlight any areas where there could be problems.

ShrinkTrimmedSrf and MergeAllFaces and then check to make sure there are no errors.

Check that with the original model (saved on a different layer)

From that point you should be able to start splitting things easier in the plan view.

looking at what you have so far not all of them are closed polysurfaces:

I’d also try to find a way to extrude the bottom of the buildings way past the baseboard of the contours and then wirecut them from a side view so that they all most definately fall below the surface thay are sat on. From that point I’d start to boolean union them in groups to the contoured base (which you’d have already boolean unioned (and error corrected))

From there I’d merge all faces and shrink tirmmed surfaces and then i’d begin to split the model.

@pascal is there anyway to select the face closest or the bottom surface of a group of objects? Say if you chose a small group but wanted to extrude the bottom faces:



Hi Lin,

The model is very far from origin and that also can cause all sorts of problems; creating render meshes takes very long and display is glitchy, plus you may start running into some tolerance issues. I’d start with moving your entire model to 0,0,0 point.

Except for one building and one contour, most of your model seems ok. You can find and fix them by using _SelOpenPolySrf command. These need to be rebuilt. Over here all works well with BooleanSplit operation except for the several lowest contours that have been unioned together - these won’t split with any command I try. My suggestion, as opposite to what Andy suggested, would be to rebuild the lowest contours into individual pieces.

Running ShrinkTrimmedSrf and Reparametrize on your entire model before splittings sometimes helps to get rid of no-split problems.




@Toshiaki_Takano surfaces have direction? will look into it.

@2DCube thanks for the in depth explaination,I’ll give it a try and report back if anything goes wrong. one thing tho, polysurfaces that has been boolean unioned doesn’t seem to is split-able? that’s why i’ve only booleaned the bottom few layers.

@Jarek so that’s why everything takes so long, didn’t realize being away from the origin is such a big deal. Yes, I’ve found and fixed the building and contour since uploading the file. I’ve also noticed that the bottom layers won’t split due to the union. “ShrinkTrimmedSrf” and “Reparametrize”, will give them a try


No worries, I think moving it to the origin will probably iron out most issues you have.

The main reason why I suggested merging everything is to probably save time in the long run, but it is horses for courses… It makes more sense to me to have an object with far fewer faces/edges for splitting. If you consider how many objects there are in total, then split them by 190 x 190 it gives you a shedload of components that may or may not throw up meshing issues later on etc.

Having a solid block 190 x 190 with merged faces and shrunk surfaces also makes it easier for you to shell, saving you time and material on the machine. Perhaps splitting it an then merging it would be quicker, who knows.

The beauty of Rhino is you can be merging objects in on instance of Rhino while you’re working on something else so you don’t have to sit there staring at the wheel of death :slight_smile:

Normally I’d suggest moving objects by a fraction to union them but at that scale I guess a few millimetres is quite a distance in reality, that’s why I was interested to know if there was a way to select all the bottom faces of a group of objects.

I hope it works out without too much pain! :slight_smile:


(Pascal Golay) #11

@2DCube Is the idea to get the bottom faces moved up or down, or to create a new extrusion? I mean - you can sub object select the faces, but I don’t think that is what you mean, is it?



@pascal The idea is to extrude the bottom faces down, either by a new extrusion or by SolidPtOn. It struck me as a very useful tool to be able to group select planar faces or opposite faces/faces in a certain direction in order to carry out such a task.


(Pascal Golay) #13

So, automatically find all the faces in a set of polysurfaces, that are say, parallel to the CPlane, and have either the max or min CPlane Z coordinates… does that describe it?



Yeah, in it’s most basic function. Find all the faces that point in a certain direction perhaps or are at the extremity of an object in a give direction. It’s not an important one for me at the moment, I was thinking aloud with regard to extending all these buildings to ensure intersect they ground.

I thought maybe just being able to select all the corner points on the base faces would be a start, to then move them by a set distance etc.


(Pascal Golay) #15

Hi Andy - it is probably possible to do this in a script. My scripting plate is pretty full at the moment, but, well, remind me…