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

Thickness Fixes (+ 3.0 default) #93

Merged
merged 14 commits into from
Nov 27, 2020
Merged

Conversation

dmadison
Copy link
Contributor

This PR fixes a few issues relating to panel thickness:

  • Spool width now accounts for flap width. If the calculated spool width is smaller than the flap width, the enclosure width and front opening do not shrink further (ceb3664). This also comments out the legacyAssert for spool width which is no longer needed.
  • Flap notch height and depth are now static and reflect the die-cut flap dimensions (773f4df). The flap height can be set back to auto with the flap_notch_height_auto flag.
  • Enclosure side bolts are now positioned properly for all thicknesses (e87928c)
  • The enclosure vertical inset (distance between top/bottom of front and top/bottom pieces) now has a minimum value to prevent the bolt heads and nut edges from extending past the bounds of the enclosure at thinner thicknesses (ee7e685)
  • Sets the default thickness to 3.0, matching Ponoko's current MDF availability (8172e21). Tentatively closes Using 3.0mm MDF (Ponoko no longer carries 3.2mm) #76

Comparison, Standard Thickness (master / 8172e21):

sf-thickness-comp

(Take the tab edges of the flaps with a grain of salt, they're small features that render unevenly depending on the camera position)

Comparison, 1.0 mm Front (master / 8172e21):

sf-thickness-1-mm-comp

Comparison, 1.0 mm Rear (master / 8172e21)

sf-thickness-1-mm-rear-comp

This way the bolt heads are always contained as part of the assembly.
With this the enclosure and front window do not become narrower if the calculated spool width is narrow than the flap width.
Matching Ponoko's available MDF / acrylic thickness
@scottbez1
Copy link
Owner

Everything in the summary sounds and looks great! By the way, there's some discussion around changing this value in slack if you haven't already seen that: https://splitflap.slack.com/archives/CEMSQUP1C/p1590126017050000

It's a slightly breaking change, which I'm open to making, but will need to make sure it's clearly messaged to make sure anyone who has built previous v0.5 or v0.6 modules knows that the latest design will not fit compatibly with those older versions.

Will try to review this over the weekend.

Previously the notch_depth was 3.0 with flaps that were actually 3.2, which gives an extra 0.4 mm of slop. This increases the slop by 0.4 to compensate.
@dmadison
Copy link
Contributor Author

Unfortunately I don't have slack so I haven't seen the previous discussion 😬

My view is that most people looking to build their own would be starting fresh and not adding to an existing set of displays, in which case the model should reflect current materials and availability. Plus this only breaks backwards-compatibility so long as you're using the release files and not generating them yourself -- if you set the thickness back to 3.2 (with that slop-adjustment commit above!), everything should be compatible with the older releases.

@scottbez1
Copy link
Owner

Here's the slack invite link (Slack doesn't support fully public groups for some reason, so the next best thing is to publicly share the invite link 🤷) https://join.slack.com/t/splitflap/shared_invite/zt-dpvol87b-3zUaxXrUd8WauPXr1uBj5Q

@dmadison
Copy link
Contributor Author

I just read through the Slack discussion. Are you saying that the material was always 3.0 mm? I wonder how much of this comes down to the thickness tolerance of the material. Their current material page says the thickness varies between 0.11" (2.8 mm) and 0.13" (3.3 mm).

We could do a half-change where the panel thickness is updated but all of the derived values / clearances use a value that's 0.2 mm larger, but that's quite messy.

Personally I'd err on the side of accuracy and try to have the model reflect the actual design as accurately as is reasonable. If it's never updated future changes that rely on the thickness value would either have to ignore or compensate for that 0.2 mm difference on their own, which is just asking for trouble.

@scottbez1
Copy link
Owner

Yeah, as far as I can tell the material has always been 3mm and their website was wrong before.

I agree that it's best to update the dimensions to match. I think it's just a matter of making sure the change in dimensions is noted clearly in the ordering instructions when a new release is created with this change.

@dmadison
Copy link
Contributor Author

In that case I think we need a different solution. As-is the assembly has zero clearance between many of the joints. If the assembly was rendered with a thickness value of 3.2 and ordered with a 3.0 thick panel, that gives you 0.2 mm of clearance for each joint. That's around 8 mil in imperial, which is in the ballpark of what you want for tolerance in an assembly anyways. If you trust the accuracy of your calipers you can verify that on your own displays (plus or minus the tolerance of the kerf value). I've pushed a commit to a 'thickness-real' branch, based off of v5.0, which changes the panel thickness extrusions to 3.0 while keeping all of the other thickness values at 3.2. This should give a rough look at how the model differs from the assembly as-built.

I think the solution is to lower thickness to 3.0 and modify most thickness instances to add clearance, probably in the area of 0.1 to 0.15 mm (4 mil to 6 mil). That way the model's panel thickness is accurate and the enclosure has predictable fitment tolerances.

For the time-being however I think the "3.0 as default" change should be reverted until those calculations can be updated. This PR can then be merged as-is to fix these other issues, as the 2D output at 3.2 should be identical with master.

Copy link
Owner

@scottbez1 scottbez1 left a comment

Choose a reason for hiding this comment

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

Everything here looks great. We can continue to discuss the plan forward before merging though.

3d/flap_dimensions.scad Show resolved Hide resolved
@scottbez1
Copy link
Owner

I'm actually inclined to go with 3mm as the default. Most functional dimensions are between two cuts, so material thickness shouldn't play a factor in those, so I'm not super concerned about fitment issues from changing 3.2mm to 3mm. Material thickness used to play a critical role in the spool spacing, but that was mostly fixed in 325f640#commitcomment-39978942 (though it's true that material that is oversized relative to the design dimension will still cause issues, which is more likely to happen when the design thickness is reduced to 3mm...)

I think the main place where it would come into play now is in the joints, but I think those should be just about right when reduced to 3mm, considering there has historically been a gap:
IMG_20200926_140506
IMG_20200926_140824

The default kerf correction for Ponoko MDF is maybe slightly too high (I measured ~3.19mm rather than 3.2 on some of my old Ponoko parts -- see below), which could cause fitment issues if design thickness is reduced to 3mm without fixing kerf; on that topic though, I'm thinking adding very small tolerances into the model may be a bit optimistic given the variability of laser cuts (even in different locations on the same piece/machine things like perpendicularity issues with the laser beam/mirrors can cause issues), and especially for soft MDF. Acrylic is a slightly different story since it's brittle, but to me it seems like it may be simpler to just handle fitment tolerance via the kerf correction factor (which is pretty important to get right anyway for different materials or laser-cutters) rather than adding the complexity of adding joint tolerances everywhere in the model. It's not technically "correct," but given the materials involved and the precision of measurement and cutting that most people will be using for this project, it feels like a reasonable tradeoff to make in the name of simplicity to me, but I'm not a mechanical engineer.

IMG_20200926_140632

Thoughts?

@dmadison
Copy link
Contributor Author

I agree that the joints are the crucial parts for the thickness change, we just need to figure out how best to handle them. (The spool geometry is as well, but that's handled by another commit in this PR.)

That vertical gap is definitely because of the thickness difference. I'd be curious to see the comparison between the horizontal opening on those tabs vs the horizontal bosses on the top pieces. How much clearance is there as manufactured?

I'm thinking adding very small tolerances into the model may be a bit optimistic given the variability of laser cuts (even in different locations on the same piece/machine things like perpendicularity issues with the laser beam/mirrors can cause issues), and especially for soft MDF.

Think of it the other way around. You add in small allowances like that because the machinery can be imprecise. By bumping the clearance out a bit the resulting cut can be either tighter (close fit) or looser (free fit) but still accommodate the part. If you aim for a 0 fit, the close ('-') tolerance on that cut line will be tighter than the minimum thickness of the joint.

Let me put it another way. With the current no-clearance fitment, assuming that both thickness and laser kerf as-cut are accurately represented in the model, the resulting pieces will not fit together (or would be press-fit in the case of the MDF). Those joints only work because the values are inaccurate - the real-life openings are larger than they are in the model.

I'm not a big fan of adjusting this with the kerf setting because that reduces precision and might have repercussions elsewhere in the design. I think a few small offsets for each joint, on-center, is all that's needed.

The spool might be a bit more complicated as there are no bolts holding it together, but the general idea is the same.

For clearance with proper kerf and thickness values.
All of the other spool "tab" variables refer to the tabs at the end which attach to the circular caps.
Retrieved at time of commit, provided in millimeters with one significant figure.
@dmadison
Copy link
Contributor Author

dmadison commented Oct 5, 2020

I've pushed commits to add clearance for all of the mating enclosure pieces: the front and side tabs, the spool strut tabs, the spool joints, and the connectors. These are all 0.1 mm (0.004"), which is probably a good number for the screw-retained joints but may be a tad too high for the spool. I've also updated the kerf value with the latest from Ponoko, which is a flat '0.2' for both MDF and acrylic (all thicknesses).

Do you recall the reason for the '0.02' in the kerf_width calculation?

For flush fitment of the front panel
@dmadison
Copy link
Contributor Author

dmadison commented Oct 7, 2020

I've ordered a copy of the enclosure in acrylic from Ponoko based off of commit 63fcb01 - 3 mm thickness, 0.18 mm kerf, 0.1 mm clearance on all mating surfaces. (Should have done 0.2 mm kerf on the nose but I forgot to remove the - 0.02 mm bit.) Expected to arrive in a little over 2 weeks.

I'm going to hazard a guess that the spool connections at the least are going to be a little loose, but it'll be good to get a manufactured enclosure in hand for comparative measurements.

@dmadison
Copy link
Contributor Author

There was an issue with the cutting on my first enclosure, but I'm now back and with enclosure in hand! Ordered from Ponoko out of 3 mm matte black acrylic with a kerf value of 0.18 (0.2 - 0.02, current on branch).

Ponoko gives their kerf spec as 0.2 mm for 3 mm acrylic, although on cut parts I received features that are on average offset by 0.10 mm from the SVG, which makes cutouts undersized by about -0.08 mm (again, on average). With the additional clearance in the design most features work as designed, with three exceptions:

  1. The magnet hole. This is intentionally undersized, but is possibly undersized too far. I don't have a set of gauge pins, but my calipers ballparked it at 3.75 mm (0.25 mm / 0.010" undersized). Pressing the magnet into place was difficult and caused the spool to crack internally.

  2. The motor hole. Also intentionally undersized (zero fit) although less so than the magnet. Attempting to fit my spool on the motor created a fracture through the rest of the spool, rendering it unusable.

  3. Less of an issue, but the front face is a slight press-fit rather than a free-fit.

All three of these issues will, hopefully, be resolved with a more accurate kerf setting. Although that's tricky to nail down from an online supplier when each order takes several weeks to get back. Some of this discrepancy is likely explained by the angle of the kerf, as only the widest edges are measured by the calipers (and, for that matter, are significant for fitment from the perspective of the edge).

It's also probable that all three of these issues won't seriously affect the design if it's cut out of a less brittle material such as MDF. Although it would still be better to fabricate the design as accurately as possible.

For the time-being I'd recommend dropping the kerf adjustment down, probably to 0.1 or 0.12. Ponoko's MDF may require a different value.


I've mentioned this before, but the material thickness tolerance is worth noting. For the matte black acrylic for example, Ponoko says it can vary between 2.2 and 3.5 mm. For the two enclosure sets I received, one was around 2.95 - 3 mm while the other is around 2.75 mm. I also ordered some other 3 mm acrylic samples for color comparison, and those vary as well between 2.45 mm (blue) and 3.01 mm (red), with most of them averaging around 2.7 mm.

Copy link
Owner

@scottbez1 scottbez1 left a comment

Choose a reason for hiding this comment

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

This is great, thanks so much! I am going to merge it as-is now, but let's continue discussing the thickness variability that you mentioned in your last comment and I referenced in my inline comment here.

@@ -248,7 +254,7 @@ module m4_captive_nut(bolt_length=m4_bolt_length) {

// ##### Struts for bracing spool #####
module spool_strut_tab_hole(narrow) {
square([thickness, narrow ? spool_strut_tab_width_narrow : spool_strut_tab_width], center=true);
square([thickness + spool_tab_clearance, narrow ? spool_strut_tab_width_narrow + spool_tab_clearance : spool_strut_tab_width + spool_tab_clearance], center=true);
Copy link
Owner

Choose a reason for hiding this comment

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

Hmmm, I wonder if it would make sense to define the clearance values not on a per-part basis, but as 2 high level parameters, something like:

  • thickness_clearance
  • cut_clearance

Since cuts should be consistent and much lower variability than thickness, it seems like it would make sense to use a smaller clearance value for cut-to-cut joints (where dimensions are entirely controlled by cuts) compared to cut-to-thickness joints (where dimensions rely on inherent material thickness and therefore need a larger tolerance to ensure fit).

This part of the model involves both, so it would change to something like:

Suggested change
square([thickness + spool_tab_clearance, narrow ? spool_strut_tab_width_narrow + spool_tab_clearance : spool_strut_tab_width + spool_tab_clearance], center=true);
square([thickness + thickness_clearance, narrow ? spool_strut_tab_width_narrow + cut_clearance : spool_strut_tab_width + cut_clearance], center=true);

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Maybe, but the variability for both is wide enough that I'm not sure making the distinction would be beneficial. Both the kerf and the thickness are precise but not accurate, so assuming that the initial values are correct the tolerances should be roughly the same for both. The bigger overarching problem is that the design relies on friction-fit parts which necessitate accurate manufacturing.

@scottbez1 scottbez1 merged commit 7be69db into scottbez1:master Nov 27, 2020
@dmadison dmadison deleted the thickness branch November 28, 2020 01:46
scottbez1 pushed a commit that referenced this pull request Feb 28, 2021
Increases the clearance between the motor chassis and the right outside wall of the previous module. Also refactors this variable from 'slop' to 'clearance' for a better description of what it represents.

This is still playing a bit of catch-up from the thickness change (#93). In the previous release where the thickness parameter was set to 3.2 mm but the manufactured panels were actually 3.0 mm thick, there was extra space between the motor chassis and the previous module. This change adds that additional 0.4 mm of clearance back as part of the motor clearance variable.

The additional clearance also makes the widths between the two designs approximately equal - `enclosure_width` is 82.2 mm on v0.6, and 82.25 mm here. (The discrepancy is the additional 0.05 of flap width slop that was added in #114.) Note that #122 bumps this further to 82.35.
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.

Using 3.0mm MDF (Ponoko no longer carries 3.2mm)
2 participants