Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lasercutoutBox: have num_fingers be an array (vs. a scalar value) #13

Open
phdoerfler opened this issue May 16, 2019 · 6 comments
Open

Comments

@phdoerfler
Copy link

Boxes like this (num_fingers = 2) would look nicer if the finger width would be more consistent between short and long sides:

image

Either implement some finger_width parameter or turn num_fingers into an array so it's possible to specify the number of fingers per side.

@bmsleight
Copy link
Owner

I like the idea. I will add to a to do file.

Any PR as a starter ?

@AlexCPU
Copy link
Contributor

AlexCPU commented Dec 7, 2022

@phdoerfler if you're still interested in this, I've added a finger_width to my fork AlexCPU#4. I haven't submitted a PR to this, as I've made breaking changes to get symmetrical fingers.
image

@phdoerfler
Copy link
Author

@AlexCPU interesting, thanks for the pointer!

@dizcza
Copy link
Contributor

dizcza commented Mar 6, 2023

Wow, I was just about to open an issue when I saw @AlexCPU has already done it!

I like using this lasercut tool a lot in my OpenSCAD projects, I recently made them available here.

What I'm missing are two features:

  • add a boolean symmetric flag, false by default, or always use symmetric just like Alex does. I must note that unsymmetric parts are really a pain in the neck: I need to assemble the parts before adding any glue to make sure I haven't messed up with the sides. Symmetric joints will decrease the number of such mistakes. Also, my colleagues, who prefer designing in AutoCAD, always produce symmetric parts and I find them neat.
  • add the finger width as the fourth parameter in simple_tabs and simple_tab_holes:
finger_width = 14;

lasercutoutSquare(thickness=thickness, x=x, y=y,
    simple_tabs=[
            [UP, x/2, y, finger_width],
            [DOWN, x/2, finger_width]
        ]
    );

Alternatively, we can borrow Alex's approach to pass the finger_width as another parameter but such an approach forces all finger joints (inner and outer) to be of the same size.

Simple tab finger joints larger than the material thickness will sustain more weight put on them (see the inner stut in my router case example).


In either case, I'd like to see Alex's PR merged! That's really a great job.

@bmsleight
Copy link
Owner

Hi @dizcza Thanks for links to your made boxes - great motivation to me that library is being used.

Concerned that @AlexCPU PR had breaking changes. If a PR can be open with additional parameters with good backward compatibility I will pull it.

I will have at inner stut.

@mmuman
Copy link

mmuman commented Nov 20, 2024

An option to implement this could be to check for the type of the parameter, converting to always be an array in the function, so you could adjust the number based on the sizes:

num_fingers_a = is_num(num_fingers) ? [1,1,1] * num_fingers : num_fingers;

Still not as nice as specifying the width though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants