Re: [spam][crazy][fiction][random] Non-Canon MCBoss Spinoffs
so now i am trying to port it to c++ to organize it better this is harder, i can't do c++ effectively while confused on an ipad i made the attached c++ code today at a student center that i think or hope is also open to the public. it performs the same code for the inverse involute, calculates optimized points for an involute curve rasterized to 1.0 unit output precision via subdivision, and starts to lay out classes for a gear assembly. it's another stretch for me to use c++ again. excited the rasterization seems to work.
i drafted a mesh tesselator to generate triangles for stls from parametric surfaces!!!! it was super hard to do, so inhibited. to make it easier it was made on an offline computer. it’s like 1989, making 3d triangle heightfield meshes from coordinate functions with hand point projection by writing bytes to a framebuffer device (oops) it turned out it’s easier if i don’t work with the visuals at all, less inhibition maybe less clear what i am troubleshooting (more likely reduces power) or doing
file.cpp uses something called liblibrary for the dbg visualization which is a small personal library made on that computer :s the framebuffer class it uses opens /dev/fb0 and writes uchar[4]’s to it. the coordinate to address function for accessing /dev/fb0 on that computer is (y*width+x)*4 . so excited to some day combine the mesh tesselation code with the gear curve code to make a helical gear !!! 4/24
i/we tried to make something real before the day was over its midnight 30. i will be tired tomorrow. i didn't quite finish but it may be usable. extant issues: - holes in the model may be generated if there are aliasing artefacts in the approximation function. using a euclidean approximation function removes this. the tesselation should be reviewed for correctness and upgraded to inform neighboring triangles, this would double the speed. - the surface normals may not be consistent and correct across chunks yet. i used smooth shading in the attached image to depict this. - it is possible to do more efficient tesselations. it at least may be fine to subdivide some triangles to only 3 rather than 4. - we think the code would be more organised if the two subdivision approaches were normalized as maybe the commented interface near top of file - a little more organisation etc needed in general celebrations: - it makes a solid helical gear now! the example is triple-helical. - i fudged in automatic detection of degenerate points to the tesselation so it can handle poles as well as the rest of a surface - it outputs a .stl file!
wrong log file, resent the last one here's a nicer image oh i'm sending another email i might as well fix the normal bug i fudged normal fixes in so it's a solid now. also made it twice as big and added another helix. looks like there's an unaddressed bug around changing helix%2. needs review when not mostly asleep.
_it doesn’t work at all yet_ the code got messy trying to push thru to making a physical object quickly i think i need to understand gear teeth better so one gear drives the other it seems to get stuck at the peaks and troughs which maybe aligns with me not designing them but just connecting the curves :) it’s cool to print the helical shape. i used a library makerspace i hadnt used before so it wasnt the same printer that made the working bearing. the planets are stuck into the ring and sun. the lasercut is a much easier and faster test, it cuts in 29 seconds compared to printing in an hour.
aug 1 1442 traveling west thinking about making the gear meshing functional, i observed the animations a little and it seems to me that the point where the involute curve stops, distant from the gear, needs to be moving at most tangent to the other tooth’s curve, when it does so. if it’s moving instead toward the surface of the other tooth, then it will begin pressuring the tooth at a different angle than designed. this might give a function for the final radius of the involute curve, which then could be converted to parameters … 1609 it makes more sense if i realize that the pitch point does not need to be the middle of the involute curve … but then i’m not sure if that works … 1640 i guess there’s a point where the endpoints of the curve touch, and the radiuses of the curve need to be such that the bases of triangles with the angles to that point sum to the sum of the pitch radiuses of the to gears 1642 2240 i was looking at https://upload.wikimedia.org/wikipedia/commons/c/c2/Involute_wheel.gif briefly and noting that they cut the gear teeth short such that the final contact point does not reach the base of the opposing tooth … maybe there are a handful of balanced properties in the animation, like the radii, but it’s notable that with this tooth length, exactly one tooth is pressuring at any point in time for me, there is a significant portion of the rotation where one gear cannot pressure the other, and that does seem to be where the lasercut version gets stuck. i was thinking the helical shape would fix that by providing other points in the rotation, but i never got a helical one to print with free moving parts yet … i found https://www.thingiverse.com/thing:53451 where there is an existing parametric print-in-place helical gear bearing that has been remixed over 6,000 times. hadn’t found it before. theoretically there is openscad source code somewhere but i’m thinking the idea of having the helical property help the rotation seems good, but i should also figure out my tooth radii. the files of thing 53451 include a .scad there are customizer apps online that let users reparameter scad files :) 2307 device going very slowly, hard to engage material the attached file is the source from thingiverse above and is _not_ made by karl. not sure whether my laptop runs openscad at this time … 2312
0922 looks like i’m in edt-1, aug 3 2024 earlier figured the key to gears not binding would be getting the rotation per tooth to be greater than the angular tooth width so that another tooth would come in contact wrote a little code, found the derivative of the involute function (tan^2) and by substitution the inverse (1/dinvolute(involute^1(angle))), it looked at first like if i brought my teeth lines down to the base circle that i’d get more rotation than tooth width, but - i have to figure out how to align gears now with profile shifted teeth (first) - when the teeth are farther down there is no room for the opposing tooth so i get to draw the spaces between teeth (as well as figuring out how much space is needed) which will make code more general (second) - separating the teeth means less involute curve to rotate the gear so back to the drawing board a little after that it looks to me like the gear may indeed work if printed with parts free to move (unsure), but that the lasercut approach does need this fix. the thought is that the fix would make the printed part stronger by giving more contact surface. 0928 1548 aug 8th oklahoma or west ummm so much changed may be hard to finish take careful
participants (1)
-
Undescribed Horrific Abuse, One Victim & Survivor of Many