Try out my new cabinet design app

Recently I decided to get serious about building a software tool that I’ve wanted to have for a long time.

I frequently find myself needing to knock together a cabinet box and a few drawers, and I always find the design process really tedious. It’s not really creative because 95% of it is just working out fixed rules for drawer heights, mortise placements, and so on. It always seemed to me like there should be an easy way to throw in some basic dimensions and have something spit out a finished plan.

Anyway, I’d call what I have now very much an alpha/beta product, but it’s good enough that I’m starting to share it with potential users to get feedback.

Where it’s at now, it supports a variety of shelf and drawer options, will calculate doors for 35mm concealed hinges (face-frame capability will be added in the future), and it will show you the finished product as well as spit out detailed views of each panel and a sort-of optimized sheet plan.

I’ll also tease that I’m in the process of adding a CAM export, which will panelize a cabinet design into sheets sized for a 24R (or any other machine) and generate ready-to-run G-code programs for each panel.

Getting the 24R was a big kick in the butt for me to get started on this project. I have a bunch of cabinets I’d like to build, and the 24R is big enough to be very useful, but I don’t enjoy the process of modeling and CAM-ing them. If I paid Autodesk $2k/yr for the manufacturing extension I’d get auto-nesting, but would still have to lay out every $#@!ing mortise and dado by hand, and while I often enjoy CAD work, this is not one of those cases.

So my goal here is basically to get a user from “I want a box with a drawer and two shelves yea big” to ready-to-run G-code or manual plans in about 90 seconds. The manual part is almost all there, minus some display bugs, but I think the dimensional calcs are all correct, at least I can’t find any bugs in them.

All feedback appreciated, including “WTF were you thinking with how you did X” type stuff. I want to build something useful for the hobbyist and pro user who doesn’t need Hexagon of Mozaik.

2 Likes

@Colin_Kingsbury at first glance, very impressive work. When I have a free day in the shop I’ll try out the code it generates. Thank you for posting this!

Just gave it a real quick test (bear in mind I have very little experience with this stuff beyond building a few garage workbenches for myself).

Overall, it’s pretty impressive and definitely something I could see saving a lot of time for people. One thing I noticed is some inconsistency with drawers. For funsies I built a cabinet with 5 evenly sized drawers. The tool seems to generate 4 actual drawers, with the 5th being just a panel on the front. I thought maybe this was one of the graphics bugs you mentioned but looking at the cut plan and panels tabs, there is 1 drawer face that is larger than the rest, and only 4 sets of sides, rears, and bottoms.

If I add a sixth drawer, and then remove (specifically) drawer #1, that corrects the issue. So it seems just the initial drawer entry is the problem. Also, when the first drawer is added, that one doesn’t display with sliders or a field for box length.

Thanks! Was this just on the default cabinet config or did you change the dimensions? I want to try reproducing it as I am sure there are undiscovered bugs lurking.

I was initially going to say that five drawers might not be physically possible and right now the app doesn’t alert you to invalid configurations. That’s something I need to work on more. But if an add/remove worked then it is likely an issue between the UI layer and the construction engine.

Thanks! I don’t have GCode export yet but hopefully in the next 1-2 weeks.

After some further playing around, it seems the issue is only related to the initial configuration created by the tour. If I refresh the page, I can’t get it to reproduce, but if I go through the tour again, then the drawer that is automatically created has the same problem.

1 Like

Very interesting/good work! If I already had a router, I would have already gone to my lumber supplier and cranked out some cabinets as part of recent efforts to continue to organize my shop.

More general questions/comments:

  • I am curious if you are machinist who picked up software dev or the other way around? I’m Comp Sci background who has always liked to get his hands dirty “in the real world…”
  • Most folks tackle a project like this and have one of two trajectories: to help others out or plans to commercialize once they get user base/traction?
  • Not clear yet but is the nesting GC going to adapt to different router envelopes? Probably get a wider user base if you do not hardcode that to the 24R envelope so it optimizes for 2x4,4x4, 4x8, or 5x10

I have a different “cabinetry” end product where the module from cut list to GCode would be useful. Not looking to reinvent the wheel for my application, as there is a software product already that I have a paid license for that does legwork in terms of the math and design rules for the panel dimensions where the gap I would need to fill is to take the cut list/plan to generate the GC for cutting and nesting…

Same for me, though growing up I did a lot of “work with my hands” stuff, so the two worlds have always been kind of part of me.

I would say my goals are mostly (1) with some characteristics of (2). I am fortunate that the last software product I helped to create has done very well, so I have the luxury of being able to take a very long view on something like this. But I also think that the most successful products come from that. Either way, for me I consider having a very useful level of no-login and free-with-login access to be core to the mission.

Yes, the nesting is completely on the fly. The plan is actually to let the user (if they want) have an inventory of panels so that if you have partial sheets laying around it will try to use those up first.

Feel free to send me a DM and we can try to connect. I’m happy to walk you through what I’ve done.

OK, so, with the caveat that it’s VERY experimental and I haven’t really done much beyond basic eyeballing, I went ahead and pushed out a build that has very basic CAM in it.

You input the working area of your machine and it will panelize to that size. Then it will generate some very naive G-code for it using a 1/4”, 3/16”, and 1/8” tool depending on the feature size. It uses fixed conservative values for plunging and feed speeds and DOC, currently in mm only but inch-based will be forthcoming.

I would say this is more of a “coming attraction” preview than anything only because I don’t want anybody to crash their machine or something until I’ve had a chance to look it over more. It looks kind of OK to me but if you do decide to try it, just please inspect it really carefully on your control before you hit cycle start :innocent:

Full send, max rapids, Got it!

Not really though, since I don’t have a router and don’t do cabinetry :rofl: