How do you cut a rectangular hole in the side of a cylinder?



Internal Elevator Side entered.skp (2.4 MB)
I am trying to cut a 36" wide by 7’ high doorway into the side of a cylinder elevator but I can’t seem to create a flat rectangle or a pencil line on a curved surface to mark out the section to cut out. Actually, I’ve only measured the top and bottom widths successfully; the height will have to be adjusted once I can see inside. I have a floor and ceiling in there I don’t want to damage.
Do you know how to do this?


native SU w/o extension:
• create rectangle in the desired size and orientated perpendicular to the cylinder
• extrude (= pushpull) the rectangle and group the resulting
• move group into the cylinder intersecting at the desired position
• blend with each other
• tidy up


You mean extrude the cylinder sides themselves? When I do that, they part because of the expansion of the cylinder components into a larger circular space. And I can’t group a section of that successfully either and “cut it”.


no, see update above.


Something like this…


Thanks! It works!
john_mcclenahan was kind enough to show me how during a Skype session too.


Also, using the “solid tools” will do this as a boolean operation. As long as the cylinder is a solid in a group, intersect it with an extruded rectangle of the size you want, also make a group, and then you can perform a number of options with this, in your case, click the rectangle, then the cylinder and invoke “subtract” with solid tools. It will do what TheOnlyAaron did with slightly less cleanup.


Lets not forget the very basics.
Turn on hidden geometry and use the pencil to draw straight lines.
By using inference you can make them align correctly etc


That doesn’t seem to work, even after I drew the lines on three sides to extend my opening 5" (somewhat tediously because my cylinder has 180 segments). The entire cylinder disappeared when I then tried to erase just that isolated section. Except I don’t think it was isolated because my cylinder walls already have a couple of inches of thickness, so the line doesn’t “cut through” all the way, unlike you example.

BTW, I couldn’t upload the file to show you since help here says my file is now too large.


I was able to do this initially, but now I want to widen the doorway and the “punch block” is not intersecting properly with the selection (the elevator + punch block) so even after I do that part and then delete the block, I can’t delete the extra geometry to widen the doorway.
I would have uploaded my current version to here but it’s now 3.4MB which is too large to upload, apparently. (Is there a way to upload larger file too?).
What to do?


AutoSave_Internal Elevator Side entered_modified.skp (2.7 MB)

if this helps? hole cut in cylinder corresponding to the internal doors.


You can use Push/Pull with the modifier key (Option on MAC, Alt on WIN) to push the sides out the amount that the hole needs to grow, then use intersect and erase to clean up.


I found the problem. I had made the punch block into a component, which prevent it from being intersected with the main cylinder. It worked after I stopped doing that.


You can make your cylinder as a solid, and then create a solid cube to the measurements you require for the rectangle. Apply the solid tool for intersecting and place the rectangle solid in the tube where you want it and click the appropriate solid tool to create the desired result.


Yes, this is what I’ve done now. It took me a while to figure out that it couldn’t be a component, though.


Using Pro Solid Tools it NEEDS to be a component, and solid.

In both Make and Pro you could also use Edit/Intersect Faces, but it needs more cleanup.


…or group, and Solid.


That’s odd. Maybe I simultaneously made it into a solid somehow when I exploded it from being a component? That was when it started working for me.


I could help if you wanted to do similar operations using the Ruby API.

Generally operations work about the same when done through the API although in some cases I wish the Sketchup behavior was a little different for the API interface. In particular, Sketchup implements a “Snap to Grid” feature when doing intersection logic. Iff a intersection edge vertex is too close to an existing vertex, Sketchup will move them into alignment to create a single vertex. This optimization will slightly distort the faces of the cylinder. I believe it also causes the intersection logic to sometimes fail to find all intersections leaving holes in the model after removing the temporary objects.

Thus, when intersecting using the API, I would want Sketchup to bypass any optimization logic that could move vertices that have been accurately placed through the API.


You are close, but a small amount off the mark.

At certain points during operation, SketchUp “cleans up” your model by checking for vertices that are very near to each other (within about 0.001 inch). When it finds such, it decides they should have been the same but differ due to finite computer arithmetic in the calculations that generated them. So it merges them into a single vertex and tidies up the edges and faces associated with them. This merging can lead to loss of very short edges and of the faces they would have bordered, producing distortion and/or holes. So, it’s not so much a matter of failing to find the intersections as discarding details that SU deemed too small. Because the tolerance is absolute, not relative, the standard workaround is to scale the model size up before the operation and then back down again afterward. Scaling down does not cause a cleanup.

The only difference between the GUI and the Ruby API in this respect is that SketchUp always does the cleanup immediately on completion of an operation in the GUI whereas depending on how your API calls are written it may delay the cleanup until a call that provokes it.