Do we need another LDraw building program?

Re: Do we need another LDraw building program?
#35
Hi Ben.

Ben Supnik Wrote:1. Is it possible to specify -snapping-? Examples:
- A technic axle and axle hole requires that the rotation (around the axis of the axle) be a multiple of 90 degrees.
- The new* locking hinges require the angle multiplier between the two hinge parts to be 22.5 degrees.
In this first try, connection logic isn't that sophisticated. Giving axle example, we need to add some information to the connection to verify angle between axle "axis" and hole. We can assume that axlehole is oriented at the same angle of part where hole is, but there can be parts where axlehole is oriented in other direction. There are some parts where axlehole is "+" oriented and other where axlehole is "x" oriented, so we need to add "orientation" to the connection itself (to the axlehole and to the axle).
For locking hinge, I can add a step of 22.5 degree to the rotation step on popup menu. Anyway, it is up to user to check the correctness of part orientation in these examples.
Also, program doesn't use collision volumes at all, so cannot detect wrong part orientation (like an axle placed in "x" where axlehole is "+").

Ben Supnik Wrote:2. Is it possible to specify a many-to-many connector relationship? Or is it expected that multiple connectors that are at the same location describe these interactions?
To keep program and logic simple, I chose to place multiple connection type on the same coordinates. Using your example, the "open stud" has three connetion type, two coincident: a plain stud, a "clip" type for bar and a underside pin receiver (a "stud3.dat"), to allow connection of a brick 1x2 on a plate 1x2 with single stud open on top (jumper).

I chose to lower amount of mathematics and logic for every connection, because number of connections in a simple model it easily grows over thousands. A plain 2x8 plate has 39 connections, a 4x8 plate has 85 connections and so on...

On the other hand, I think that define too many conneciton type can be confusing.

There is space for lot of improvements, program needs lot of works.

Talking about age, I remember last set my parents bought before I entered in the "dark age", this: