I just made a new beta Linkage app available. And yes, I did just call it an “app” because “program” sounds too old-school. The beta is here: http://www.rectorsquid.com/beta/linkage.msi.

The video above shows one of the newest simulation improvements. The little triangle link with two sliding connectors was not something I could handle in the past. The reason is that this is, like all sliding connector mechanisms, a special case that requires special code to simulate properly. I’ll explain…

The location of connector K is easily calculated because it rotates around the rotating input. To get link 3 into position, a line is first calculated to be from connector C to a point between D and E so that it is perpendicular to the line between C and D. That calculated line determines the radius of a circle around C and link 3 must end up tangent to that circle. Of course, the internal code must calculate two tangents to the circle around C and then determine which one leads to link 3 being closest to it’s expected new position (using some momentum calculations to figure out where the connectors of that link should end up). I also added code to that the path of the sliders, which is now along link 3, can be separate and not pass through connector K (which ends up being the pivot for link 3 when moving it into position during simulation). In fact, I suspect that there is a bug where certain configurations of the connectors won’t work due to always adding some amount to the radius of the circle around C when sometimes the extra amount needs to be subtracted instead. I’ll get right on fixing that!

Another new feature allows a sliding connector to be made into an input. If the path of the connector is straight then it can be given a CPM (Cycles Per Minute) and it will travel back and forth between the ends of the slide path. This is not only experimental but is also only working if the simulator can calculate and fix in place, the two connectors that define the slide path. If the slider itself is somehow fixed in place first, the path link won’t get rotated and moved to a position based on the sliding connector position along the path. It’s rather complex work to add code for all the special cases of sliding connectors in order to make this new feature work when an input slider is used. It’s easy to set a sliding connector to be an input; Once the connector is a sliding connector, showing the connector properties for it will show properties that are specific to sliding connectors. That’s where the CPM and initial direction of the slider can be set.

I also recently fixed the code that makes the single and half cycle buttons work. Setting limit angles for rotating inputs now doesn’t screw up those cycle buttons.

Stylus/pen input now works more as expected. Previously and due to some really weird choices made at Microsoft, the translation from pen input to mouse input didn’t work right and things as simple as dragging items or even right-clicking, didn’t work.

That’s about all that has recently changed for this Beta release. There should be nothing broke in any of the previously working features so if these new things are interesting, give it a try.