martinbudden / BabyCube

BabyCube: small linear rails coreXY 3D printer
Other
50 stars 4 forks source link

troube viewing .scad files #5

Open daduke opened 1 month ago

daduke commented 1 month ago

Hi Martin,

I just stumbled upon the BabyCube and I think we all know I'll have to build one. I'm still trying to get a good picture of all parts involved (for example, where can I find the cork spacers for the NEMAs), so I tried to open the OpenSCAD files. I installed NopSCADlib, checked out the repo and then tried opening various .scad files, only to be greeted by multiple errors and failed assertions. In the closed issues I found a hint to create the target.scad file, but even with this in place I get assertion errors. The only files I could render were the bed variants. I noticed that you're currently reworking .scad files, so maybe that's expected, but I'd be very grateful for some hints on how to get the model opened. MainRB and SB (what's the difference?) do open, but only show one lonely triangle. OpenSCAD 2021.01 on Fedora 40.

thanks a lot, -Christian

engkon6 commented 1 month ago

Hi Christian,

For me it's easier just to convert all the STL files to STEP file & create the mockup from there to visualize it. I follow below tutorial to import and edit the STL files in FreeCAD. https://youtu.be/dr1qtaURrvI

For the cork spacers, it's installed between the motor & printed frame to insulate the heat from the motor. image

I could be wrong, but based from the commit description I assume MainRB is for Reversed belt Build and MainSB is for Staged Build.

I hope this can help.

daduke commented 1 month ago

thanks for your suggestions! I'll look into the STL -> STEP conversion, but I still think it would be nice if the OpenSCAD part were usable...

I realized what the cork spacers are for, but so far I haven't been able to locate a step/stl/dxf/whatever file for them...

thanks again, -Christian

daduke commented 1 month ago

ok by increasing the rendering limit in the OpenSCAD settings and commenting out assert(_useReversedBelts==true || test==true); in assemblies/MainAssemblyRB.scad I got the model to render!

martinbudden commented 1 month ago

Hi Christian,

sorry the late reply.

I'd hold on a little while if you want to build the BabyCube. It's currently undergoing a fairly major change: I'm changing the belt orientation. The current version is "SB" Standard Belts, the new version is "RB", reversed belts. In the reversed belts version the non-toothed side of the belts passes over (most) of the pulleys, see the illustration below. corexy

I've also now pretty well completed the Carbon Fiber version - I plan to build this myself very soon. explodedview

The new versions have a slightly increased build volume, and also feature exchangable toolheads - I'm planning to support E3DV6, E3D Revo, and DropEffectXG hotends.

martinbudden commented 1 month ago

And to address your original question, the BabyCube is built using the NopSCAD library build system - it does take a while to runt the build though. One thing you can do to get a feel for things, is to look at the files in the test directory, or indeed build the tests.

I plan to upload the build instructions for the new variants in about two weeks, so if you can hold on to then, things will be clearer.

daduke commented 1 month ago

Dear Martin,

thanks for the good news. I'll definitely wait for the new version then. It's a long-term project and I haven't ordered a single part yet. I'll be happy to test the new design and provide feedback. Do you have any pros/cons for the CF version? We have a workshop on campus that could waterjet the parts for me...

thanks! -Christian

martinbudden commented 1 month ago

The main disadvantages of the CF version are cost and accessibility. Anyone with an Ender 3, Prusa i3, or Bambu Labs (or similar sized printer) can build the original BabyCube reasonably cheaply. Most people, however, don't have access to a CNC or waterjet.

One other possible downside to CF is radio frequency transparency - I'm intending the CF version to be Klipper based and am not sure if the CF will block the WiFi from the internal Raspberry Pi. I think FR4/G10 (the fiberglass used for making PCBs) is probably a better choice of material - it's fire resistant, cheaper and doesn't block RF. However it doesn't look as cool. On the other hand it is available in a variety of colours.

Generally speaking the CF version is superior (well, hopefuly - I haven't yet built one). It's easier to build and manages to eke out a few extra millimeters of build volume in the X and Y directions.

One refinement that I'd like to make in the future is to have CNC'ed aluminium motor mounts - but that can wait until I've actually built my first version.

It would be great to have someone to test/prototype the new design. It would be especially good to have someone provide feedback on the CF version.

I'm unfamiliar with waterjets. The CF design requires cuts with a 1.5mm radius - for 3mm sized bolt holes, and also for dogbones with 1.5mm radius ends. Can a waterjet achieve that resolution?

I've also removed target.scad from .gitignore. I had it there because it changes every time I swap between build variants, but I hadn't considered that it is required by other people viewing the .scad files.

Finally, I'm busy over the next week, and so probably won't be able to answer any further questions on here for about a week, but will make any replies after that.

daduke commented 1 month ago

great news. I'm not too concerned re: RF blocking - you can always route a thin U.FL coax cable and slap the antenna to the outside. what thickness of CF plates are you aiming for? I could then use the time to talk to our workshop specialists to see what's feasible.

let's do this!

thanks, -Christian

martinbudden commented 1 month ago

3mm thick CF.

I've slightly increased the size, so current planned sizes are:

Front, back, left and right sides: 220x210x3mm Top: 220x220x3mm

Additionally aluminium base, 220x220x3mm. The only cutting required is drilling holes for mounting the PSU and PCBs, but you might want to investigate having this cut as well.

I'm hoping to increase the build volume from 90x80x60mm (for the original BabyCube) to 99x99x84mm for the CF version., although this varies a bit depending on which hotend used.

martinbudden commented 1 month ago

One thing you could ask your workshop specialist is about kerf - is there any kerf when cutting with a waterjet? If so, do the .dxf files have to account for this, or does the waterjet control software offset the kerf?

The config files have a parameter for tolerance, currently this is set to 0.05mm for CNC (giving a total tolerance of 0.1mm for fitting the pieces together), but I can adjust this and produce a configuration specifically for waterjet.

Also, does the waterjet treat edge cuts and drilling holes differently - will I also need to adjust the diameter of the boltholes for cutting by waterjet? I haven't coded in the ability to do this, but it should be a relatively straightforward change,

daduke commented 3 weeks ago

ok I talked to our workshop chief. There is a waterjet cutter at our university, but not in our department (they hope to get one next year), which makes access a bit harder than it could have been. Kerf should be compensated in software, for him the bigger issue was drilling holes - they need to be pre-drilled on a CNC to avoid delamination, and he doesn't like CF in his CNCs since the carbon dust kills his rails. Looking at the many holes on the top plate to hold the linear rails, that might be an issue. He gave me the contact for a local waterjet specialist shop he had worked with in the past, but this being Switzerland, I'm somewhat hesitant to ask for a quote 🤑 I also tried to find other commercial waterjet services, but at least the usual suspects (JLCPCB, PCBWAY) don't seem to offer it. How were you going to have your CF cut?

martinbudden commented 3 weeks ago

Hi again. Thanks for looking into the waterjet cutting. It looks like it's not really a good option - if you need to use a CNC to drill the holes, then you might as well do the whole thing by CNC. All the faces of the BabyCube have holes drilled, for various purposes, fans, motors, rails and of course to attach the faces to each other.

I'm now at the stage where I can start getting the faces machined. My first step will be to send off a test piece to get check the tolerances for a good fit between the faces.

I've started looking at quotes. There are a couple of small UK CNC workshops that do one-offs and small quantities, so I'll try and get a quote from them this week.

I've also been looking at JLCPCB and PCBWAY. Both do CNC machining, and PCBWAY also does laser cutting. JLCPCB are cheaper, but unfortunately they only do aluminium, polycarbonate and green FR4. PCBWAY do those and also black FR4 and carbon fiber.

I got quotes for cutting out the back face, it's probably fairly representative. All the faces are near enough the same size, but require different amounts of machining. Here are the costs I've got, all for doing the back face (220x210x3mm):

PCBWAY

CNC machining

Material Cost
Aluminium $41.82
Black FR4 $40.08
Carbon Fiber $85.84
PolyCarbonate $39.58

Laser Cut

Material Cost
Aluminium $33.86
Carbon Fiber $69.15

JLCPCB

CNC machining

Material Cost
Aluminium $30.78
FR4 (green) $35.15
Polycarbonate $31.05

So it's not cheap, but it's not outrageous either. So with and aluminium base and black FR4 sides it will be about $240 plus tax and shipping. More if you want carbon fiber rather than black FR4. I've also been toying with the idea of making the back out of aluminium, that way if I at some point upgrade the motor mounts to aluminium, the whole back face would act as a big heat sink for the motors.

As I say, I'll check some UK suppliers, but I doubt their prices would be substantially different.

I'm a little surprised your university has a waterjet but not a CNC machine.

So my next step is to get a test piece sent off to check tolerances.

daduke commented 2 weeks ago

Hi Martin,

Hi again. Thanks for looking into the waterjet cutting. It looks like it's not really a good option - if you need to use a CNC to drill the holes, then you might as well do the whole thing by CNC. All the faces of the BabyCube have holes drilled, for various purposes, fans, motors, rails and of course to attach the faces to each other.

well, you need a CNC to PRE-drill tiny holes, so that the waterjet can start cutting the real holes sideways instead of delaminating the CF when trying to punch through. But yes, the amount of extra work is the same. My understanding from reading teh intarwebs was that WJ cutting produces far better cuts in CF compared to milling or laser cutting.

[..]

So it's not cheap, but it's not outrageous either. So with and aluminium base and black FR4 sides it will be about $240 plus tax and shipping. More if you want carbon fiber rather than black FR4. I've also been toying with the idea of making the back out of aluminium, that way if I at some point upgrade the motor mounts to aluminium, the whole back face would act as a big heat sink for the motors.

compared to just printing the panels that's quite the premium.. I wonder if CF or FR4 really is that much better than ABS sheets (also taking into account the far greater flexibility of printed parts). I'll have to read some more.

I'm a little surprised your university has a waterjet but not a CNC machine.

oh they have plenty of CNCs, but he told me that CF dust kills their rails, so he avoids cutting/milling this material.

cheers, -Christian

martinbudden commented 2 weeks ago

I wonder if CF or FR4 really is that much better than ABS sheets (also taking into account the far greater flexibility of printed parts).

I don't think CF or FR4 is that much better. I'm more considering it for the "bling" factor. My BabyCube is 3D printed in PETG and it performs very well. I've had it several years, and it is my "go to" printer - I only use one of my other printers if the part is too big for the BabyCube (that's one of the motivations for this work, to support a bigger print size)

So I think using ABS sheets is a good option.

daduke commented 2 weeks ago

bling is all fine and dandy, but unless I find a somewhat cheaper way to source FR4 or CF for a printer I need about as bad as a hole in the head, I might just stick with ABS... so I guess I'll try to set up the NopSCAD workflow next in order to be able to use OpenSCAD.

thanks!

martinbudden commented 2 weeks ago

OK, I'll presume you will be using ABS, and cutting with a waterjet.

We need to cut a calibration piece.

Can you clarify about kerf. You said:

Kerf should be compensated in software,

Does that mean that the waterjet control software compensates for kerf, or does it mean the CAD software should compensate for kerf?

Also, does your workshop prefer .step or .dxf files?

Calibration piece will be something like this: dogbonetolerance

to check hole diameters and that the dogbones fit snugly.

daduke commented 2 weeks ago

OK, I'll presume you will be using ABS, and cutting with a waterjet.

uhm actually I was talking about ABS printed panels :) if going the waterjet route (which isn't easy with the waterjet in a different department), I might as well go FR4 or CF, so my first shot would have been just printing the panels.

Kerf should be compensated in software,

Does that mean that the waterjet control software compensates for kerf, or does it mean the CAD software should compensate for kerf?

my guy doesn't operate the WJ cutter, but he told me that basically all those machines take the desired dimensions and then make sure that they themselves compensate for all these machine details.

Also, does your workshop prefer .step or .dxf files?

no idea and again, right now I'm not sure I'll be using their services at all...

martinbudden commented 2 weeks ago

OK, I've just uploaded the BC220 build instructions, see https://github.com/martinbudden/BabyCube/tree/main/BC220

This is not the final version, there are a couple of minor changes I want to make to the Left and Right Faces, and to the pulleys, but it is fairly close to the final version. It's certainly enough for you to look at and familiarise youself with the assembly process and the parts required.

If any of the instructions aren't clear, let me know and I'll try and correct them.

daduke commented 2 weeks ago

I did some more research. With the 3018 CNC I recently bought it should be possible to mill CF sheets, and those who tried got pretty decent results. So I ordered a 3mm CF panel for testing. Size will be an issue as my work area is 280 x 180 mm, but I guess I can flip it around or something. I'll check your instructions now.

daduke commented 2 weeks ago

in Left_Face assembly, what does 4. Attach the wires to the switch and bolt the Switch_Shroud to the left face. mean? What switch?

martinbudden commented 2 weeks ago

That's left over from the original version of the BabyCube which had the on/off switch on the Left_Face. I'll correct it.

martinbudden commented 2 weeks ago

With the 3018 CNC I recently bought it should be possible to mill CF sheets, and those who tried got pretty decent results. So I ordered a 3mm CF panel for testing. Size will be an issue as my work area is 280 x 180 mm, but I guess I can flip it around or something.

I don't think flipping over will work, the tolerances are quite tight and I think it would be difficult to get the cuts to align. However Genmitsu produce a 3018 Y-axis Extension Kit for £40 - this lengthens the Y-axis to 40cm. https://www.amazon.co.uk/Genmitsu-Extension-Accessories-Compatible-Machines/dp/B08RYGQ28W/ref=sr_1_1_sspa It says it is compatible with most 3018 CNCs.

daduke commented 2 weeks ago

I'll have to experiment - I'm still very new to all this CAM stuff. The Y extender is plan B

daduke commented 2 weeks ago

plan B it is. EUR 40 is not worth flipping anything

martinbudden commented 5 days ago

I've created a calibration piece at https://github.com/martinbudden/BabyCube/blob/main/cadquery/calibration/DogboneTolerance_CNC.step

The dogbones have different tolerances on the top, bottom, left, and right sides. The idea is to CNC two of them and see which side gives the best fit when the two pieces are fitted together.

daduke commented 10 hours ago

I've created a calibration piece at https://github.com/martinbudden/BabyCube/blob/main/cadquery/calibration/DogboneTolerance_CNC.step

The dogbones have different tolerances on the top, bottom, left, and right sides. The idea is to CNC two of them and see which side gives the best fit when the two pieces are fitted together.

IMHO you should generate accurate parts and leave material and process specific corrections to the user in CAM/slicer - or is your tolerance setting parametric and can be set at compile time?

my CF test sheet has arrived - looks gorgeous. After my vacation I'll give milling a try.