cam groove

Post here for help on using FreeCAD's graphical user interface (GUI).
Forum rules
and Helpful information
IMPORTANT: Please click here and read this first, before asking for help

Also, be nice to others! Read the FreeCAD code of conduct!
emills2
Posts: 875
Joined: Tue Apr 28, 2015 11:23 pm

Re: cam groove

Post by emills2 »

UR_ wrote: Sat Jul 14, 2018 9:35 pm Here we have another approach:
another cam.gif

file:
another cam.FCStd

workflow:
- creating a bspline in SketcherWB (path for cam roller)
- making an upper / lower offset curve (roller diameter)
- wrap these curves onto a cylindrical face using curvesWB
- using PartWB 3D-Offset to make the groove
- cut groove from cylinder

not that fast, because lots of click work,
but hopefully with correct geometry satisfying contact to roller :roll:
i wish i had noticed your version sooner...somehow i missed it. i think your method is correct. do you have any reason to believe it isn't?

i tried looking into your file, but i'm not familiar enough with those object types. to check it i need to slice your offset object along Normal-Binormal plane based on the center path. but the center path doesn't seem to exist in the 'cylinder wrapped' version.
emills2
Posts: 875
Joined: Tue Apr 28, 2015 11:23 pm

Re: cam groove

Post by emills2 »

TheMarkster wrote: Mon Jul 16, 2018 8:30 pm I made the slot object manually using dwires instead of bsplines so I'd have some lines with which to use the measuring tool to check the angles. All of them came up 90 degrees that I checked.
your picture looks good but i wasn't able to read your file correctly. the groove is garbled
yac(v2) 01.PNG
yac(v2) 01.PNG (196.77 KiB) Viewed 864 times
it seems the groove cutting object is not opening correctly on my computer.
yac(v2) 02.PNG
yac(v2) 02.PNG (209.67 KiB) Viewed 864 times
maybe it's just me, but maybe this method is unstable.
emills2
Posts: 875
Joined: Tue Apr 28, 2015 11:23 pm

Re: cam groove

Post by emills2 »

deleted. stupid and pointless
Last edited by emills2 on Tue Jul 17, 2018 5:23 am, edited 1 time in total.
TheMarkster
Veteran
Posts: 5505
Joined: Thu Apr 05, 2018 1:53 am

Re: cam groove

Post by TheMarkster »

I did something wrong. That's not how it's supposed to look. Probably connected one of the edges wrong or something.
TheMarkster
Veteran
Posts: 5505
Joined: Thu Apr 05, 2018 1:53 am

Re: cam groove

Post by TheMarkster »

It's the orientation of the ruled surfaces. Some need to be forward, some reversed.
yac3-screenshot.png
yac3-screenshot.png (87.47 KiB) Viewed 859 times
TheMarkster
Veteran
Posts: 5505
Joined: Thu Apr 05, 2018 1:53 am

Re: cam groove

Post by TheMarkster »

I think I have it straightened out now.
Attachments
yac(v4).py
(11.12 KiB) Downloaded 39 times
emills2
Posts: 875
Joined: Tue Apr 28, 2015 11:23 pm

Re: cam groove

Post by emills2 »

it looks like you have the angles well under control. it still narrows in the slopes and widens in the peaks and valleys, if you measure the perpendicular cross section

The fact that the angles are steadier might mean that the roller will have a solid line of contact. it's certainly a big improvement.

a potential problem that i care a lot about personally is being able to clearly specify the path of the cam axis, because that is the motion that the cam+roller system specifies/produces. the rolling surfaces are just a necessary evil to get the cam axis shifted where we want.

if you accept widening, narrowing, and rolling at semi-random on a tilted surface with a ball roller....you have very limited control over the actual path of the cam axis (and whatever is attached to it). you can probably achieve specific heights at the extremes by iteration, but the transitions will be pretty wild (if it rolls at all, jamming and wedging is more likely)

have you examined UR_'s technique from page 1 of this thread? this might be the whole deal! the only question in my mind is whether the fact that he offset both sides of the path before projecting to the center is valid.

i can't tell right off the bat if the order of operations matters.
Attachments
yac(v4) 01.PNG
yac(v4) 01.PNG (162.43 KiB) Viewed 856 times
emills2
Posts: 875
Joined: Tue Apr 28, 2015 11:23 pm

Re: cam groove

Post by emills2 »

yac(v4) is looking really good. if we're not worried above reverse motion / slop, this groove surface is top notch. i only tested the lower surface and i got full roller line contact everywhere.

the test roller is locked tangent to the outer cylindrical surface,so it always points correctly at the cylinder axis. then i locked it tangential to the lower cam surface at the outside of the groove. then i dragged it around and everywhere i looked, the other side of the cam was also riding on the inside curve of the lower surface of the cam groove.

it does seem to dip below by a hair on the inside. might be a rendering artifact. might be worse on bigger slopes, but high angles are not realistic for cams. should be in tolerance for most applications.
yac(v4) 02.PNG
yac(v4) 02.PNG (120.17 KiB) Viewed 854 times
yac(v4) 03.PNG
yac(v4) 03.PNG (116.04 KiB) Viewed 854 times
yac(v4) 04.PNG
yac(v4) 04.PNG (77.69 KiB) Viewed 854 times
yac(v4) 05.PNG
yac(v4) 05.PNG (89.84 KiB) Viewed 854 times
yac(v4) 06.PNG
yac(v4) 06.PNG (64.99 KiB) Viewed 854 times
emills2
Posts: 875
Joined: Tue Apr 28, 2015 11:23 pm

Re: cam groove

Post by emills2 »

file seems to load ok on forum.
if you want to play with the the roller, select Sketch > data tab > Attachment > Map Path Parameter and change it between 0 and 1 (can't scroll, increments too big). make sure to look at it from the top at some point to check the cam alignment.

it takes time to type in each new value...but it's fun for me :D
Attachments
yac(v4) 00.FCStd
(624.49 KiB) Downloaded 25 times
TheMarkster
Veteran
Posts: 5505
Joined: Thu Apr 05, 2018 1:53 am

Re: cam groove

Post by TheMarkster »

I did look at UR_'s technique, but I didn't fully understand it (understatement). In hindsight I think I see the problem with my earlier attempt using the bsplines created at different radii -- the amplitude of the sine waves were being increased along with the increased radius, which wasn't how I was envisioning it in my mind. Switching to using draft scaling (but leaving z at 1.0) was the way to go because that allowed for increasing the radius without affecting the amplitude. (I think this is also why I'm having trouble getting my thread angles exactly right in a related project.)

To finish off this macro I'll go ahead and add a minimal ui, so the user doesn't have to edit the source to change the parameters.
Post Reply