This week, I built a simple toy to explore exact-constraint design in 2D; banged my head against poorly-executed trigonometry; and looked at bike frames.
PUPS 2/Lab Week 2
For PUPS/lab this week, we were assigned to create a simple toy to explore exact constraint in 2D. I started off by doing a brief literature exploration to learn more about 2D exact constraint, and particularly to identify mathematical methods for determining exact constraint. This led me to a number of interesting resources (including Douglass Blanding’s Exact Constraint: Machine Design using Kinematic Processing), but also to diagrams of a neat flat-and-vee 2D kinematic coupling. I wasn’t familiar with this coupling, and decided I’d design a toy to explore it.
The final product can be seen below. It tests four different cases for location of the vee, all of which are picked based on different locations of the intersections of the lines of contact of the three supports (2 in the vee, 1 at the flat).
- In the first (smallest) vee, the lines of contact of the two contacts in the vee are at the edge of the part.
- In the second vee, the lines of contact between the outer vee contact and the flat contact are above the edge of the part.
- In the third vee, the lines of contact between the outer vee contact and the flat contact intersect the contact point of the flat contact.
- In the fourth vee, the lines of contact between the outer vee contact and the flat contact are above the contact point of the flat contact.
As the MATLAB script shows, locating a vee at these four different positions has a significant impact on system load distribution, particularly for loads that are not purely vertically downwards (something which would be likely to occur in a manufacturing scenario). For example, for a load at -60 deg to horizontal applied at the center of the plate, the only vee location that supports the load while avoiding loss of contact is Vee #2. I wrote my script initially just to make sure that there were sufficiently interesting differences between the four loading cases I’d identified to justify building this toy – so it could use a little more expansion. The two things I would like my script to do to support further development of this type of fixture are 1) create some graphical representation of the nesting force windows created by a given support configuration, and 2) allow the user to run the script multiple times, to generate “stability maps” showing where the system is stable for certain load types.
The finished product works…okay. Some lessons learned from manufacturing:
- Never underestimate/guess at kerf widths, especially on a janky, abused laser cutter. I undersized all of my holes by .01″, but still found that my screws (which I was using for pins and load application points) were sloppy in their holes.
- MDF was a terrible material choice. The coefficient of friction of dry MDF on dry MDF is quite high, and interferes with the toy’s operation. I’ll re-cut the block out of acrylic if I have time.
- Consider errors introduced by the manufacturing process. My manufacturing process (laser cutting) doesn’t let me compensate for kerf. Assuming that the laser’s cut accuracy is significantly larger than the kerf (which is a big if, honestly), all of the kinematic mount faces should then be offset by kerf/2. This means that the faces of the vee will be offset slightly less in the vertical direction than the faces of the flat. I experimented with this in CAD, and found that for a unit line offset on the contact faces, my block geometry generated a .363 error in X and a -1.208 error in Y at the center of the block. For a different manufacturing process – for example, milling from the bottom of the block, where errors could just affect the Y-position of the features – this error would have a different impact.
I ran into one other fundamental design rule during this project: avoid inadvertently incorporating hate symbols into your designs. When I was designing my toy, I had the smart idea to incorporate all four loading conditions that I wanted to explore into the same shape – fewer parts, a more self-contained device, etc. – which meant I would be cutting four slots of different lengths into the sides of a square plate. However, after finishing the first pass of the design, I stepped back – and saw a swastika. My girlfriend and my reviewers both confirmed my reaction*. Thankfully, the design I’d generated lends itself easily to reversal, by just flipping the main plate and the block. This creates a right-handed shape rather than a left-handed shape, which doesn’t read the same way (to me, at least). Note that this makes the design shown in the MATLAB script and in my notes different from the attached images! Anyway, TL;DR – would not let this design go into a final product.
Finally, some links related to useful exact-constraint design that I ran across this week:
- Alicia Hammond’s MS thesis on quantitative foundations of exact constraint design. This reference explained the concept of the “nesting force window” particularly well – important, especially since I wasn’t able to get a hold of Blanding’s work on the subject.
- Section 2.6 from Layton Hale’s Ph.D. thesis, covering exact-constraint design.
- Slides by K. Craig, pp. 89-94. I’m not sure who the author is, but these slides are basically a condensed direct knockoff of FUNdaMENTALS. However, there’s a little more material added about 2D flexures (as near as I can tell, from other people’s work) which is helpful.
* : In retrospect, something akin to the rule about racism should probably apply here – if you have to ask if it looks too much like a hate symbol, it does look too much like a hate symbol.
This past IAP, I signed up for a bamboo bike frame building class with my neighbor. Over the course of a long weekend, we took a pile of bamboo rods, some carbon fiber thread and a whole bunch of epoxy (plus a few metal bits – head tube, BB and dropouts), and slowly wrapped and glued together a pretty great looking (and light!) bike frame.
What really impressed me about this bike was the wrapping of the frame joints – what really ties the frame together (ha ha ha). There are a few different wrappings, each of which has a different application on the bike. For example, wrapping the bottom bracket requires five separate wrappings: one for each tube (seat, down and chainstays), plus a basket wrap that joints the down tube to the chainstays, and weaves back and forth beneath the bottom bracket. Now – I don’t have any experience with composites like this, and no real understanding of their mechanics outside of that they combine a material that can take high tensile loads (CF, steel, other UHMW fibers) with a bulk material (epoxy, concrete, etc.) However, I do know that engineers make lots of money figuring out how best to orient their composite fibers for different loading conditions – so I thought I’d think a little bit about how to work with these materials, pretending that I was going to redesign the joints.
My steps would look roughly like this:
- Analyze static stresses in 2D bicycle frame (assume symmetry between sides), treating frame as a truss –> which joints are in tension and compression under standard static loading of user’s weight.
- Also try to consider a few worst-case situations. For example, what happens when the user pushes down on the pedal as hard as they can? When they try to ride up a curb? Down a curb?
- From this information, diagram where the major tensile loads in the system are.
- At these locations, design wraps that align to these
- Examine bonding between the carbon fiber and the bamboo (an interface which seems absolutely critical, and which I worry hasn’t been analyzed enough).
- Other things to consider (second pass):
- Impact of 3D loading, particularly in rear triangle.
- Amount of tension placed on the fibers during wrapping. Is it important for the fibers to be pre-stressed? Do they behave as long fibers (e.g. if the fiber isn’t pre-tensioned, it will have to lose slack before it can bear load), or are they essentially short fibers (a miniscule dX of fiber is held by epoxy all around, and so is effectively pre-tensioned when the epoxy starts to deflect)
- Impact of weaving. Does weaving the carbon fiber back and forth laterally make a difference in terms of resistance to pure tensile loads? What about torsional loads (what I suspect the weaving is for)?