bug 1 [buhg]  noun, verb, bugged, bug·ging.


  1. Also called true bug, hemipteran, hemipteron. a hemipterous insect.
  2. (loosely) any insect or insect-like invertebrate.
  3. Informal. any microorganism, especially a virus: He was laid up for a week by an intestinal bug.
  4. Informal. a defect or imperfection, as in a mechanical device, computer program, or plan; glitch: The test flight discovered the bugs in the new plane.
  5. Informal.
    1. a person who has a great enthusiasm for something; fan or hobbyist: a hi-fi bug.
    2. a craze or obsession: He’s got the sports-car bug.

I have an urge to add cams to the Linkage program. After adding the ability to affix drawing elements to links, I realized that I had created the method to affix cams to links. That was a stumbling block I was not able to overcome for a while. By using that method to attach cams to a mechanism, I get past what had been holding me back for a while.

I also figured out the other issue which is designing a user interface to edit cam shapes. Although I would prefer to edit the shape right in the drawing editor, and I may add that, I would use a properties dialog box to provide the initial cam creation UI.

Three Types of Cams

I have identified three types of cams: eccentrics, typical, and Bezier. Typical cams are those found in engines and have a single lobe or protrusion. Although they can have very complex shapes, I would limit them to having a base radius, a tangent radius, and a nose radius. Bezier cams would be my own method of letting a person create a complex motion controlling cam with almost any shape desired. Eccentrics are just offset circles and might not be so useful. I’m not sure if the follower motion of an eccentric is the same as a crank but I think that it is. The only reason to support eccentrics is to more accurately represent what a person intends to build.

Each cam type would be edited in it’s own properties dialog box that has controls for the specific cam type. Although it would require a lot of typing to create the code for this, there is nothing in the user interface that I have not already experimented with on my geometric constructions page.image

Geometric Constructions Page – Bezier Cam


Geometric Construction Page – Typical Cam

Getting the cams to work in the simulator is a different problem from creating the UI to create them. This part would be tricky since the typical and Bezier cam types have unusual mechanical issues. Intersecting a line or circle with a cam becomes problematic. For instance, finding an intersection with a typical cam requires intersecting with four different arcs. Intersecting with a Bezier curve might require iterations through a set of small lines used to form the curve and through multiple Bezier curves of a single cam.

Other Work

Unfortunately, or fortunately, I have a paid contract coming up. It is Windows Phone programming work. It has replaced the contract for IOS programming that I was looking forward to doing but it is a lot of work and a lot of extra pay. So the Linkage program gets a lower priority again. I will need to make sure that I don’t end up writing half-assed cam code like I did with the DXF file creation code. That stuff is still only partially working and I’ve lost interest in making it better.