florianfesti / boxes

Boxes.py - laser cutting boxes and more
GNU General Public License v3.0
984 stars 357 forks source link

Air Purifier Box Generator- will pay #615

Closed MachineryEnchantress closed 9 months ago

MachineryEnchantress commented 9 months ago

There is a small community of people who DIY very quiet, very powerful HEPA filters using PC fans- mostly for classrooms. I have created several templates for them: https://github.com/opennukit/Nukit-Open-Air-Purifier/

Users need to be able to design their own boxes by specifying filter dimensions, how many filters, the number of fans, on which sides of the box, and if they are 120mm or 140mm fans.

My Python is a little rusty but I'm happy to pay, or barter. I can help you get pretty much any hardware sourced, fabricated or manufactured in Shenzhen that you might ever want.

Thanks to anyone interested🙇🏻‍♀️

Nukit-Open-Air-Purifier-3-v1 0

florianfesti commented 9 months ago

This is just a simple box. I cobbled something together: https://festi.info/boxes.py/AirPurifier Still misses a few details like screw holes for the fans. I also wonder if we really need those large panels which are basically all hole. May be we can get away with just rails left and right?

MachineryEnchantress commented 9 months ago

Thank you! The filters are made of paper and polypropylene- so not very stiff, if they aren't pressed a bit on all four sides the air purifier will leak and the CADR drops by a lot. The big empty square is easy to cut on half later.

This is what I had it mind:

The filter slots on each side are mirrored and the filter XYZ size is defined by three variables in mm. This, along with the specified fan size (140mm or 120mm), determines the overall dimensions of the box.

So we need to be able to define the size of the PC fans used. One variable- 120mm/140mm

The inner channel will always be one of two fixed widths defined by which size fans were selected above- 142mm wide for 140mm fans, or 122mm wide for 120mm fans.

The user can select one, left or right, or two filters. In the case that one filter is set, the inner filter lip on one side of the box becomes closed (with finger joints). So one variable for number of filters- two, one left, one right

We need to be able to define the number of those PC fans on each side (front, back, top, bottom since sometimes these are hung from the ceiling horizontally). These are arranged in a single row. Four variables, 0-12.

No less then 27mm between fan mounting screw hole centers, but otherwise evenly distributed.

Main fan hole edge no closer than 30mm to box edge.

The height of the filter lips are a single variable in mm.

Material thickness is a single variable in mm.

Finger length is a single variable in mm.

Fingers or no is a single variable Y/N.

It’s a lot😣 That why I’m happy to pay or offer something.

florianfesti commented 9 months ago

Nah, that easily fits in just 140 lines. I think I got everything for now. May be test cut a small model and check if everything fits together.

MachineryEnchantress commented 9 months ago

Amazing! Perfect on the first go💪🏻 I just dry fitted it for testing, will glue one up for a picture. (Ignore the bulge in the back there, that's me, I didn't leave enough kerf when I split the part and it's a bit tight😅) 20240112_231437

The original has a maximum of three fans per side, this maxes at two. Can we make it three? With only four in total the CADR will be quite low...

Huge ask, if it’s a pain don’t bother, is it possible to have cutting the big filter frame pieces in two as a built in option? A lot of the people making these are parents on library Makerspace 6040 CO2 cutters that will probably get stuck at trying to split the part (or mess it up like I did the first try). But if it’s a pain never mind. Screenshot 2024-01-12 at 11 03 19 PM

These settings as the default work perfectly with a standard HVAC MERV 13 filter: https://festi.info/boxes.py/AirPurifier?FingerJoint_angle=90.0&FingerJoint_style=rectangular&FingerJoint_surroundingspaces=2.0&FingerJoint_bottom_lip=0.0&FingerJoint_edge_width=1.0&FingerJoint_extra_length=0.0&FingerJoint_finger=2.0&FingerJoint_play=0.0&FingerJoint_space=2.0&FingerJoint_width=1.0&x=498.0&y=496.0&filter_height=46.77&rim=30.0&fan_diameter=140&filters=2&fans_left=-1&fans_right=-1&fans_top=0&fans_bottom=0&screw_holes=5.0&thickness=3.0&format=svg&tabs=0.0&qr_code=0&debug=0&labels=0&labels=1&reference=100&inner_corners=loop&burn=0.1&language=en&render=0 Screenshot 2024-01-12 at 10 59 06 PM

Thank you so so so much- please let me know what I can do in return- now or anytime🙏🏻

florianfesti commented 9 months ago

OK; three minor tweaks:

I think instead of cutting the pieces holding the filters in two I will divide them up in 4 rectangles. With dovetail joints that should be robust enough. We can still add stiffeners later if they are not sturdy enough. May take another day or two, though.

MachineryEnchantress commented 9 months ago

Thank you!

florianfesti commented 9 months ago

A little bit of insomnia goes a long way...

Here's the new split_frames parameter that turns the frame pieces in to four separate sides connected by dove tails. Not only will this make all pieces fit on a 60x40cm machine but now the 2 filter variant will need the same or slightly less material than the one filter one.

With so many changes we probably need a few more test cuts to cover at least some of the variants. Assembly instructions with pictures would also be nice. This is now a pretty nice 3D jigsaw puzzle...

PS: https://festi.info/boxes.py/JointPanel offers a better method to split large piece and joining them back together

MachineryEnchantress commented 9 months ago

Fantastic, will test and let you know- thank you!

MachineryEnchantress commented 9 months ago

I think this is a misslice? No? Default box. 20240114_163016 Screenshot 2024-01-14 at 4 38 05 PM

florianfesti commented 9 months ago

No, this is intended. These are two separate Finger Joint Hole sections. One for the cross part and one for the side piece of the frame. If you assemble the frame first you should have something that just fits into there.

MachineryEnchantress commented 9 months ago

Ok will double check...

MachineryEnchantress commented 9 months ago

The top makes sense, doubled tabs on the side panel, continuous on the back: 20240114_170546

...but still working on this, doubled tabs on the back and the side panel: 20240114_170409 20240114_170322

Will let you know if I figure it out😅

florianfesti commented 9 months ago

Oops, indeed. I am currently AFK. Will fix in a few hours.

MachineryEnchantress commented 9 months ago

Oh thank goodness I thought I was going crazy😅 No rush at all, I'm immensely grateful for all this.

florianfesti commented 9 months ago

OK, should be fixed with c40cb4249af530c08e4e9d013f13dd37899bec5b. No worries. I don't feel rushed. I am just slightly annoyed at myself that I didn't quite get what the issue was right away. This is a super simple thing to fix and I easily could have done that thi morning before leaving the house. Otoh this was all before my second coffee - so I don't take any responsibility for that ;)

MachineryEnchantress commented 9 months ago

Will try and take a pic😆

MachineryEnchantress commented 9 months ago

Fantastic! It works perfectly! Thank you so much Florian! If there's ever anything you need from Shenzhen- you have my email, it's yours! 20240116_230805-s 20240116_224243-s

tyeth commented 9 months ago

This is wonderful! Thank you both ❤️‍🔥

As a smaller laser cutter owner (320x350), I can do longer pieces (awkwardly + unreliably aligned) in my machine but not wider, so it made me wonder if the larger squares could be cut into 90 degree sections / quarters instead. That would leave more waste and in theory the need for long front panels anyway (although I wondered about splitting them between fans and doing tabs for the long panels too, probably with reinforcing tape+glue). I guess at this point it makes more sense for me to manually cut the larger unsplit design with inkscape and insert breaks + tab joints myself (maybe copying from another joint example). Any advice appreciated, including just telling me to get them done by a professional cutting service.

florianfesti commented 9 months ago

As I pointed out above Boxes.py has Joint Panel to divide larger pieces. Small Dovetail joints (Adjust depth and size in the DoveTail Settings) with tight joints can be hammered together to form basically one pieces that is just as strong.

florianfesti commented 9 months ago

OK, I declared the generator as complete. If anyone has better images or assembly instructions feel free to open an PR or just post them here.