60 lines
1.9 KiB
Plaintext
60 lines
1.9 KiB
Plaintext
|
|
||
|
The user enters requests. A request might be a line segment, or a plane,
|
||
|
or to step and repeat a group of entities, or anything else. Each
|
||
|
request has a groupid associated with it; a group will contain one or
|
||
|
more requests. The request will generate entities, and possibly equations.
|
||
|
|
||
|
Special requests would include an include, which gives us a concept of
|
||
|
hierarchy. An include pulls in all the entities from another SolveSpace
|
||
|
part, and fixes them up to a rotation and translation; so that introduces
|
||
|
six free variables. This means that the part is rigidly constrained,
|
||
|
but that it still must be placed, and that entities within the included
|
||
|
part are available to constrain against.
|
||
|
|
||
|
An entity is some geometric thing in the sketch. This might be a
|
||
|
line segment, or a datum point, or something else. Some requests
|
||
|
correspond to a single entity, in a straightforward way. Other requests
|
||
|
generate multiple entities, in some relationship (that is constrained
|
||
|
automatically, through the generated equations) to other parts of the
|
||
|
sketch. Each entity has a groupid, which is inherited from the request
|
||
|
that generated it.
|
||
|
|
||
|
One important entity is a pwl. That's a piecewise linear segment. Its
|
||
|
endpoints are fixed, so it generates no parameters.
|
||
|
|
||
|
The entity is described in terms of paramgroups. A paramgroup corresponds
|
||
|
to one or more solver parameters, grouped in such a way as to have
|
||
|
geometric meaning. For example, a point would correspond to three params,
|
||
|
x, y, and z.
|
||
|
|
||
|
The paramgroups break down in to params. These are the unknowns in the
|
||
|
solver equations.
|
||
|
|
||
|
The user enters constraints. Each constraint has groupid. The constraints
|
||
|
generate equations too.
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
The items that generate unknowns are:
|
||
|
|
||
|
POINT:
|
||
|
|
||
|
three unknowns, (x, y, z)
|
||
|
|
||
|
|
||
|
Entities are:
|
||
|
|
||
|
DATUM POINT:
|
||
|
|
||
|
one point
|
||
|
|
||
|
DATUM PLANE:
|
||
|
|
||
|
one point; the plane is through that point, and normal to the
|
||
|
vector from that point to the origin
|
||
|
|
||
|
LINE SEGMENT:
|
||
|
|
||
|
two endpoints
|