Making a cutout for a sink

as requested on support…

Given a rough sketch:

The goal is to make grooves using a 1/4" ball-nose (vertical lines), and a cutout for a farmer-style sink (the rectangle missing the left side)

Since the cutout is easiest, we do that first — begin by drawing a rectangle:

and adjusting it to have a radius greater than the 1/2" diameter tool envisioned for making this cut:

It is also necessary to ensure that it projects by a bit more than tool radius beyond the stock origin to the left:

Note the width dimension for the selection, 415.68:

and change the original rectangle to that width:

and then align it against the narrow one used to set the radius:

which may now be deleted:

Inset the rectangle by tool diameter plus 10% or so:

Duplicate the resultant geometry and move it to the left:

and then union it with the inset in the original position:

OK

Select both rectangles and use Trim Vectors:

to remove what is not wanted:

arriving at:

OK

Join Vectors

At this point a pocket toolpath w/ a suitable tool may be assigned to make the opening cut:

which previews as:

Next, for the grooves, this will be done as a series of short straight lines for the initial cut, then a finishing pass will be made using hand-edited G-code.

1 Like

Move the original geometry to a separate layer and then re-draw one of the lines:

While this cut could probably be made in a single pass, usually multiple passes will yield a better finish — rotating the line and drawing the cut and tool up in profile we get:

Then we draw in the tool:

and position it at the end of the cut:

The #202 ball-nose has a Depth per pass of 0.040":

which equals 1.016mm, measuring the cut we get:

so 3 passes will be needed.

First, draw in the angle:

Then draw in the lines spaced at the Depth per Pass:

and position them vertically relative to the line which shows the desired angle:

Select the lines showing the horizontal cuts and the line showing the desired angle:

and use Trim Vectors to cut to length:

OK

Then, shorten the distal ends, align at that end, and suitable toolpaths may be assigned to each to cut to the requisite depth, then align them with the original line, assign a toolpath to it, and output two G-code files, one for the short cuts, the other for the original which will need to be edited, then merged in with the original…

1 Like

If we then shorten the lines by the radius of the tool:

using Trim Vectors:

OK

and align with the end of the cut:

that should ensure that there is not a gouge at the entry point.

Assign toolpaths to the appropriate depths for each:

The first/top line will get a toolpath at a very shallow depth which will be edited/repositioned in the G-code file.

The second requires a depth of 0.572mm:

Repeat this for each until the final depth is assigned.

(it will help to name each tool)

Note that for efficiency’s sake, each toolpath may be assigned to begin at the previous depth:

Drag the first toolpath to below the others:

and select the geometry for the toolpaths:

Rotate into the correct orientation:

Done

Drag into registration with the left-most match:

Then left-align them:

Group

and use Linear Array to replicate as needed:

Duplicate:

Mirror Vertical:

and drag into alignment:

Write out G-code and edit as need be.

Interesting that you posted this now. I took on a job to make a custom cabinet for a guy who was redoing his kitchen and putting in a 10" tall farmhouse sink that he plans to undermount. Instead of making a box cabinet, I made a frame out of poplar to sandwich between his existing cabinets.

He also wanted me to cut the hole for his sink in the 1.5" thick “butcher block” (not really since it isn’t end grain) material. Unfortunately, his counter is 108" long and getting that into the shop and processed without significant rearrangement would not be possible. So, I used the CNC to cut a template to be followed by a bearing trim bit in the hand held router.

I made a smaller template to experiment on a test piece. I cut close with the jigsaw and then used the router to cleanup. It was scary with a bit that large but worked. I wanted to find one that had the bearing close to the router but the only one I had on hand with the right length had the bearing at the tip which means having to mount my template below. I haven’t done the for real cut yet, still psyching myself up for it.

The I need to make some cabinet doors for him. He gave me one that doesn’t fit anymore due to the height of the sink so I plan to cut a cross section of the edge moulding and try to replicate it. The moulding toolpath in Vectric should come in handy there.

Thankfully he is painting the cabinet and doors black (not my choice) so it will be more forgiving that something stained.

Disable the Pocket toolpath:

and save the toolpaths — if not using Pro, it will be necessary to connect to a machine, load the .c2d file, then save the G-code as a .nc file using Carbide Motion.

Once one has the G-code file:

belfast sink cut out demo.nc (4.2 KB)

it may be loaded into a suitable editor, and if desired, plotted:

or:

Then, the relevant section of G-code identified:

(Toolpath: Contour Toolpath to 0.001)
M03S18000
G0Y-547.844
Z0.250
G1Z-0.001F304.8
Y-319.844F1524.0
Z12.700
G0X0.700Y-547.844
Z0.250
G1Z-0.001F304.8
Y-319.844F1524.0
Z12.700
G0X-55.050Y-547.844
Z0.250
G1Z-0.001F304.8
Y-319.844F1524.0
Z12.700
G0X-110.800Y-547.844
Z0.250
G1Z-0.001F304.8
Y-319.844F1524.0
Z12.700
G0X-166.550Y-547.844
Z0.250
G1Z-0.001F304.8
Y-319.844F1524.0
Z12.700
G0X-222.300Y-547.844
Z0.250
G1Z-0.001F304.8
Y-319.844F1524.0
Z12.700
G0X-278.050Y-547.844
Z0.250
G1Z-0.001F304.8
Y-319.844F1524.0
Z12.700
G0Y547.822
Z0.250
G1Z-0.001F304.8
Y319.822F1524.0
Z12.700
G0X-222.300Y547.822
Z0.250
G1Z-0.001F304.8
Y319.822F1524.0
Z12.700
G0X-166.550Y547.822
Z0.250
G1Z-0.001F304.8
Y319.822F1524.0
Z12.700
G0X-110.800Y547.822
Z0.250
G1Z-0.001F304.8
Y319.822F1524.0
Z12.700
G0X-55.050Y547.822
Z0.250
G1Z-0.001F304.8
Y319.822F1524.0
Z12.700
G0X0.700Y547.822
Z0.250
G1Z-0.001F304.8
Y319.822F1524.0
Z12.700
G0X56.450Y547.822
Z0.250
G1Z-0.001F304.8
Y319.822F1524.0
Z12.700

and then the G-code edited.

The pattern is:

Rapid to the position and then lower to just above where the cut begins:

G0Y-547.844
Z0.250

Plunge down to the initial cutting height:

G1Z-0.001F304.8

Move at a cutting feed rate to the end of the cut:

Y-319.844F1524.0

Lift out of the cut at feed rate:

Z12.700

It is the line:

Y-319.844F1524.0

which needs to be edited by having the Z-axis depth added:

Y-319.844F1524.0

So we change it and all similar lines include:

Z-3.175

which is to say:

Y-319.844Z-3.175F1524.0

which then previews as:

Edited/updated file attached.

belfast sink cut out demo_EDITED.nc (4.6 KB)

Modifying the sink size cutout is straightforward:

Draw a rectangle of the desired size:

Draw a rectangle which defines the size difference:

Redefine the Grid so that it is one of those dimensions:

Select everything:

move so that the desired node is at a grid coordinate (this would only require two operations if the rectangle defining the size was aligned at a top or bottom edge in addition to the left-most edge)

Go into Node Edit mode:

Select all of the nodes which one wishes to move:

zoom in

and drag the node to the desired grid coordinate:

repeat:

Repeat the process for the other axis:

Done

Drag back into alignment with the original:

(if things don’t line up, adjust as necessary)

Doing this and repeating the G-code export and editing is left as an exercise for the reader — if a .nc file is made we can work out how to make a 3D preview.

I have selected some toolpaths on the sink cutout, will this work ok?
belfast sink cut out 600 sink attempt to alter.c2d (104 KB)

My apologies, saw this at my day job the other day, but didn’t get around to working on it yesterday evening.

Loading the file we get:

and my first concern is that the zero is not relative to the center of the design — so long as there is a mechanism to set the zero as desired, that should be fine, but I suspect it would be easier to select the design:

Group it:

and Align to the Vertical Center:

if desired things can then be ungrouped:

The toolpath preview seems odd to me:

There is a Contour toolpath:

which is associated w/ 2 vectors:

Normally I would expect that to be a Pocket associated with only one:

which previews as:

(when changed to the 1/2" tool in the file)

Then, as before it is simply a matter of exporting the G-code, loading it into a suitable tool:

and editing it, then getting a 3D preview.

Thankyou William, would i be right in thinking that if i set the centre section to a contour to a depth of 38mm+ it should cut out easily?
Sorry bit of a novice to say the least!

The drainer grooves, can’t wait to have a go at them, don’t think i would have ever been able to set them up!

Cutting deep as a contour is problematic because of “tooling engagement” — where possible avoid slotting and add geometry and cut as a pocket

and/or

and consider leaving a roughing clearance and taking a finishing pass.

Will go over editing the code again, and show a tool for previewing in 3D, and an alternate approach presently.

First, to re-iterate, editing G-code is not normally necessary — it’s just that this specific design wants a feature (cutting at an angle) which would normally be done in 3D, but which is problematic to do so because of the size/scale of the part.

G-code file from the above preview:

belfast sink cut out 600 sink attempt to alter.nc (39.2 KB)

and note that it was loaded into the opensource Notepad++ and the NCnetic G-code previewing plugin was used to generate the wireframe preview:

The lines of G-code which we wish to edit are those associated with:

which can be found by searching for “0.001”:

each code block in question is like to:

G0X-288.213Y473.603
Z0.250
G1Z-0.001F304.8
Y245.603F1524.0
Z12.700

where it rapids to the beginning of the cut:

G0X-288.213Y473.603

rapids down to just above the surface:

Z0.250

moved down at plunge rate to the beginning of the cut:

G1Z-0.001F304.8

continues from that position at feed rate to the end of the cut:

Y245.603F1524.0

lifts out of the cut at feed rate:

Z12.700

and the process repeats for the next line (there are 14 such).

It is the penultimate line in the above which needs to be edited, and the change is to add the desired Z-depth — in retrospect it would have been good to include that in the toolpath description.

Going back to the Design pane we verify that the desired depth is -3.175mm:

so we edit that in for the Z-axis:

Y245.603Z-3.175F1524.0

and repeat that edit for each such line which is easily done as a Find–Replace:

(an interesting approach here would be to use a different feed rate for this particular toolpath).

The edited file:

belfast sink cut out 600 sink attempt to alter.nc (39.3 KB)

which previews as:

and in 3D:

which I believe shows a problem with a tool definition — will look into that next.

Note that it is up to the operator to verify any such modification, and to test out files in a piece of scrap or inexpensive material suitable for prototyping.

Actually, the geometry falls short positionally:

Editing the file again, we arrive at:

1_p.nc (39.3 KB)

I’ve got a flush cutting bit with the bearing close to the router base…all I can say is that it is very scary. I used it on a project some years ago that nearly cost me my hand. Would never attempt using such a bit again for template trimming unless it was mounted in a router table.
As long as you keep the base of the router flat/tight on the countertop surface, the flush trimming should work out just fine. Having a larger router base plate can also be helpful.

Hello, did a test run on the drainer grooves, they take up 190mm and it steps.
How can i make this cover up to 330mm and how do i get it to slope gradual rather than step?
I have attached an image.

Editing the G-code is what cuts the slope — did you do that?

If so, what tool did you use for that? How did you preview it?

Have you considered just making a fixture and using a rounding plane?

Of course, one can do this in 3D pretty easily:

then export an STL, then import that into Carbide Create Pro as needed, then assign 3D toolpaths.

i’m not sure how to edit the g-code, very new to all of this.
At the moment we do these by hand with a router, just trying to get the cnc to do it.