Ben Supnik Wrote:no offense, but I consider ...
I think we doing some brainstorming, do you?
Anyway, it was a really dumb idea, I agree
Your idea of a "radial rail" can be a good starting point.
- male/female problem: this can be resolved considering gear as an "opposite" of itself. Let me explain: in my model it is mandatory that connection goes in pairs, but we can add a "degenerated" connection that has itself as opposite. It will work because when you place a new part with this connection type program will search for a connection on already placed parts, excluding new part itself.
So IMHO this can be solved easily: in connection type definition file you can place a "connection pair" with only one type.
- to define connection, you can use the two points of my model as following:
* simple gears (connect only if gears are coplanar): a vector with base in center of gear and head along rotation axis. Distance between base and head (vector module) is radius of "radial rail". Gear connects if are coplanar AND distance between base points (center of gears) are equals to sum of radius.
* differential/conical/beveled gears (connects if are coplanar and if axes are in a defined angle interval): same as simple gears, but connects if "radial rails" (circles) are tangent AND axes are coplanar AND distances from intersection point between axes and both gear centers is not less than radius of smaller gear (a bit complicated, i know).
* rack and pinion: this can be a male/female connection, where rack is a line and pinion is a radial rail. It connects when a rack is tangent to a pinion radial rail AND coplanar to pinion AND tangent point is "inside" rack segment.
* worm gear... I surrender maybe we can consider a "cylindrical rail", where male is worm gear and female is a radial rail. It connects when radial rail is tangent to worm gear cylinder rail AND axes are at 90 degree. To connect rack and worm gear we can define a couple "cylindrical rail" and "linear rail" that connects only when linear rail is parallel to worm gear axis AND at cylinder radius distance. But we need more than two points to define such "cylindrical rail" and transmission ratio.
Transmission ratio is given from ratio between "radial rail" radiuses, more or less...
Ideas, just to say
Philippe Hurbain Wrote:I prefer something that allows forbidden combinations than the inverse
I agree 1000000 percent