Last modified: 2024-10-24 19:36:31
< 2024-10-22 2024-10-24 >The closer one has been in the tumbler overnight, the further one has had no tumbling.
There's not a massive difference, but the tumbled one is nicer.
I tried balancing them both on the edge of a plastic pot with the quarter sovereign in, and they both balance the wrong side of the pivot hole! So they can't be calibrated by removing material from the counterweight. This is a blunder.
I think the explanation is that the polished one has the counterweight slightly short, because of a coordinate system error (?), and the other one has the "beam" slightly too thick.
Probably I should work out how many of these can be made to work, and then make matching stands, tumble everything, and see what Paul thinks? And then see about making a sheet-metal version, with either a bolted or folded counterweight.
Well I definitely know that I'm going to want to make a sheet-metal version, so I can buy a sheet of 3mm brass now and work out what I'm going to cut out of it later. I paid £31.20 for a 300mm * 200mm sheet, that's the same size as the machine table.
Also a 3mm aluminium sheet the same size, £8.10.
I'm thinking that I'll manually drill mounting holes in both sheets, and bolt them both down, using the aluminium sheet as a sacrificial layer to cut into.
If I do the "folded counterweight" idea then I'll first use the V-bit to put score marks in the back side of the material, then flip it over and machine from the top. And I'm not super sensitive to the alignment of the score marks, as long as the axes are aligned so the bends are straight. And if I come up with a suitable bolt to use as a counterweight, then I can just use that.
I wondered about making/acquiring an abrasive sanding pad for the CNC machine and using it to grain the top surface?
For making stands like this:
I think we clamp the bar in the vice on very-tall parallels (<1mm clamped), and surface off the top, and cut out 6 tessellated stand shapes almost all the way through, and drill the first pivot hole. Then separate them into pairs using the bandsaw. Then surface off the other side of 2 at a time to separate the pieces. Then machine the slot one at a time. Then drill the second hole.
So the plan is:
surface-top-6.nc
outline-6.nc
pivot-hole-6.nc
surface-top-2.nc
slot.nc
drill-1.nc
Gcode needed:
surface-top-6.nc
outline-6.nc
drill-6.nc
surface-top-2.nc
slot.nc
drill-1.nc
I made quite a lot of blunders in this, only endedu p with 3 passable stands, none "perfect".
Here is a fully-assembled one: https://www.youtube.com/watch?v=qRj19s1ggK8
The centre of mass didn't end up where I wanted it, it was the wrong side of the pivot, and by a long way! Which meant that to balance it I had to drill a load of holes in the side that the coins go in instead of one small hole in the bottom of the counterweight...
Also I didn't get the pivot hole very perpendicular so the pivot is slightly wonky.
Also the slots are too narrow.
This whole thing is just a long series of blunders.
Ruari had an idea: stand the coins vertically! That way you can pack the much closer together. We also get the thickness test and diameter test for free in one go. This one would be a big hassle to machine, but would be perfectly easy to 3d print.
I should write about my CAM workflow, and make it more rigorous.
Tooling:
And then each project has a directory for each part, and the directory contains a "master" CAD model of that part, plus a separate
CAD model for each CAM job, named after the CAM job (so my-part.FCStd
for the main part, and top-surface.FCStd
for the top surface,
which has a Path Job to create top-surface.nc
), and then a shell script to create the "final" gcode collected in the "out/"
directory.
Techniques:
I want to generate some example texts to complete "Once upon a time, "
Could we make something like https://tokenvisualizer.netlify.app/ but it tells you the probabilities and ranks etc. instead of just the token boundaries? Also, that tool suggests the tokenisation is not unambiguous, if both "L" and "LM" are real tokens?
All of these examples are completing from "Once upon a time, " with Llama3.2-1b on a RTX 3060 12GB, and excluding special tokens and non-ASCII tokens.
userankn.py
with n = 0
.
Once upon a time, 20 years ago, I was a young, single, working woman. I was living in a small town in the Midwest, and I was working at a small, local newspaper. I was a reporter, and I was covering the local government. I was covering the city council meetings, and I was covering the city manager meetings. I was covering the city manager meetings, and I was covering the city manager meetings, and I was covering the city manager meetings, and I was covering the city manager meetings, and I was covering the city manager meetings, and I was covering the city manager meetings, and I was covering the city manager meetings, and I was covering the city manager meetings, [...]
This gets stuck in a loop. The writing has a blandness.
userankn.py
with n = 1
.
Once upon a time, 10, 000 miles from home and in the midsts a blinding storm. The sky is black, and there are flashes and thunder, but no wind, no hail. I was on my bike and the rain came in a steady, heavy stream, but it didn'nt stop my ride. The wind came in gusting at times and I had a few moments where the wind blew my hat away, and the wind was cold, and the wind made the trees shake, but the wind was not strong enough to blow me off my bike. The rain was heavy and the wind was strong, but the rain did not stop my ride. I rode on and on, and on, and on, and on, and on, and on, and on, and on, and on, and on, and on, and on, [...]
This also gets stuck in a loop. The writing is more exciting than the rank-0 writing.
01rank.py
.
Once upon a time, 10, 20 or 50 miles from a city centre, you could still find a pub. But not any pub, mind you. The pubs that survived were those with character, with history and with a real sense of place. Now, with a few exceptions, those places are long-gones, their owners having sold up and moved to a new life in the suburbs. The pubs that remain, the ones with the real ale and a real atmosphere, are often in the most unlikely places, [...]
This doesn't get stuck in a loop because of the random element. This feels more like "real" writing than either of the first 2 example texts.
abovethreshold.py
with threshold=0.01
.
Once upon a time, 1993 and in 1961 I moved my mother (her daughter's child and then child in 4 generations in two and in six steps away, then three generation ago. Her grandparents on mother side married cousins with parents 40 steps, in between in her paternal greatgrand parents). When in that step removed me the parents to each step was born one to seven siblings of all. (And two steps further was another ten years or in all twenty-seven and my step-grandfater of four [...]
Word salad.
abovethreshold.py
with threshold=0.05
.
Once upon a time, 10,000 years ago in a place known as Mesopotamia (which was later named Sumer, Akkade and finally Iraq) people started building the world we live in. They had the idea to create the first city in order to live there, so that they would never get hungry. But, as soon as the people had a house they realized it wasn't a very safe place. The house had walls made from wood. So the first city had walls. Then people had the [...]
Almost believable text.
We have: