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

Update cube size based on caliper measurements. #19

Merged
merged 2 commits into from
Jan 18, 2018

Conversation

IamfromSpace
Copy link
Collaborator

No description provided.

@IamfromSpace
Copy link
Collaborator Author

Only question is do we want to include tolerance in the measurement or do we want it to be exact and include tolerance as needed?

@MichaelRFairhurst
Copy link
Owner

Probably want to include tolerance as needed? I'm thinking, for instance, that tolerance is a property of the printer and the specific shape in question and the play in the structure. So our cube_holder() may need 1mm of tolerance, but our static claw may need 3mm of tolerance. So it seems like we shouldn't "double" them.

That said...I'm not positive it isn't a good idea to have some basic tolerance. Basically, from the perspective of, "this printer is designed for a cube up to 57mm wide...however, most cubes are a bit smaller, which is fine" type of thing.

Copy link
Owner

@MichaelRFairhurst MichaelRFairhurst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

approved, however you want to do it, I gave you my thoughts and have no clear reason to say they aren't dumb

@IamfromSpace
Copy link
Collaborator Author

Yeah, tolerance is weird because it’s really a manufacturing detail—which inevitably affects the design.

Probably makes more sense to pull it out, and have it be a module input—similar to the way $fn works. Maybe we can make it a constant, since it should be about the extrusion size for 3D printing but would be much lower for something that was CNC’d.

@MichaelRFairhurst
Copy link
Owner

Yeah I have definitely learned though that tolerances, at least in 3d printing, are very strange. Like, they can cumulative in different ways, they can depend upon different things like the physical results of the printer (which in itself is complicated: globs, warping, overhang, bridging, overextrusion, striations), material flex, temperature, postproduction like sanding...

Using a $ var like $fn (you can make your own) is an interesting idea! I suppose you could even go so far as to like, multiply them or regress them etc in places where it made sense to do so.

I wonder how professional engineers do it...

@IamfromSpace
Copy link
Collaborator Author

Updated! Let me know what you think. I'd also update #18 once merged to use $tol everywhere that tolerance is used now--which I think is much more consistent/manageable.

Copy link
Owner

@MichaelRFairhurst MichaelRFairhurst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still approved, still more rambling thoughts!

difference() {
cube([width, depth, width], center=true);
cube([cube_size, 3*depth, cube_size], center=true);
cube([tolerant_cube_size, 3*depth, tolerant_cube_size], center=true);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

how about a function which takes a value and/or vector?

// in util.scad:
function tol(x) = isnum(x) ? x + $tol : vtol(x);
function vtol(x) = [ for i [0:len(x) -1] tol(i) ];
...
// here:
  cube(tol([cube_size, 3*depth, cube_size]), center=true);
// or even just:
  cube(tol(cube_size), center=true);

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Interesting, makes sense! I'm going to merge these as is, but let's definitely add to utils to help manage tolerances!

@IamfromSpace IamfromSpace merged commit 4b6f9d7 into master Jan 18, 2018
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

Successfully merging this pull request may close these issues.

2 participants