When I implemented the gear feature in the Linkage software, I decided to make the gears be links. This was mostly hidden and whenever a gear needed to turn a crank or be turned by a crank, I opted to have the user “fasten” the gear to the crank link. This turned out to be a bad idea and I eventually decided to just let any link have a gear aspect to it. In other words, any link can have a gear as part of the link in addition to the various connectors.
When I implemented the splines, I wanted to let the user use splines as drawing elements. The idea is that the shape of a link could be defined by a spline. The spline would then get “fastened” to the link in the same way any other drawing element is fastened to a link. This seemed like a good idea at the time although it made things interesting when a sliding connector is made to slide on the spline. I change the spline layer to be on the mechanism layer and this all works fine. The problem is, the spline could have just been a link like gears are a link. If there is no sliding connector, the user still would want to the drawing of the spline to show in the parts list to see the shape of the link.
So now I’m torn. It’s fine the way it is but it’s not the same as gears. It really should be the same as gears if only because right now, fastening a spline to a single lone connector won’t work right.
I’ve been working on this change by adding a spline object to the link object in the source code. Of course, some aspects of the spline, such as it being in the list of splines internally, won’t happen – it will be in the list of links because it is the link that is tracked, moved, rotated, etc. This makes things difficult in another way which is the whole spline selection and editing process. Ugh. It’s a tough coding problem no matter how I make it work. But in the future, splines might just be a checkbox option for links.