Beginnings of some docs for SolveSpace.
[git-p4: depot-paths = "//depot/solvespace/": change = 1800]solver
parent
89bb81b35c
commit
eb0b63f5dd
|
@ -0,0 +1,59 @@
|
||||||
|
|
||||||
|
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
|
|
@ -0,0 +1,65 @@
|
||||||
|
|
||||||
|
In mechanical drawing, it's common to use a parallel projection of a
|
||||||
|
3d model into a 2d drawing. A parallel projection is also known as an
|
||||||
|
axonometric projection; orthographic, isometric, dimetric, and trimetric
|
||||||
|
projections are examples of such a projection. In a parallel projection,
|
||||||
|
any two lines that are parallel in real life must also appear parallel
|
||||||
|
on the drawing.
|
||||||
|
|
||||||
|
This differs from a perspective projection. In a perspective projection,
|
||||||
|
objects that are closer to the "camera" appear larger than objects
|
||||||
|
that are farther away. This means that some lines that are parallel in
|
||||||
|
real life will not be parallel on the drawing; they will converge at a
|
||||||
|
vanishing point. This may cause confusion.
|
||||||
|
|
||||||
|
By default, NTsolver displays a parallel projection of the model. To
|
||||||
|
display a perspective projection, choose #LINK(configuration) in the text
|
||||||
|
window, and set the perspective factor to something other than zero.
|
||||||
|
The distance from the "camera" to the model is equal to one thousand
|
||||||
|
pixels divided by the perspective factor.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
The user interface consists of two windows: a large graphics window that
|
||||||
|
displays the model being drawn, and a smaller text window, that displays
|
||||||
|
information about the model.
|
||||||
|
|
||||||
|
After starting a new file, the model is empty except for the three
|
||||||
|
coordinate planes. The graphics window's view is aligned so that the XY
|
||||||
|
plane is parallel to the plane of your monitor.
|
||||||
|
|
||||||
|
NTsolver requires a mouse with a scrollwheel or center button. To pan
|
||||||
|
the view to the left or right, center-drag the mouse. To rotate the view
|
||||||
|
around the horizontal or vertical axes of the screen, shift-center-drag
|
||||||
|
the mouse. To rotate the view around the axis perpendicular to the screen,
|
||||||
|
control-center-drag the mouse.
|
||||||
|
|
||||||
|
After moving the view, it's possible to orient the view back on to the
|
||||||
|
active workplane. Choose #MENU(Sketch -> Draw in Workplane), or press
|
||||||
|
#KEY(W). This produces an orthographic projection of the model. When
|
||||||
|
drawing lines and curves in a workplane, it's convenient to work with
|
||||||
|
the view oriented on to that workplane.
|
||||||
|
|
||||||
|
To zoom in, rotate the mouse wheel, or choose #MENU(View -> Zoom In /
|
||||||
|
Out). This will not have any visible effect until a model has been
|
||||||
|
drawn, though, since the coordinate planes are automatically scaled to
|
||||||
|
fit on-screen.
|
||||||
|
|
||||||
|
The text window works like a web browser; any underlined text is a link,
|
||||||
|
which may be activated by clicking on it. At the top of the text window,
|
||||||
|
two rows of links will show and hide different features of the sketch
|
||||||
|
(workplanes, normals, points, constraints, shaded, faces, mesh, hidden
|
||||||
|
lines).
|
||||||
|
|
||||||
|
Below that, the text window displays a list of groups. A group is a set of
|
||||||
|
entities, like lines, circles, or planes. In a new file, two groups exist:
|
||||||
|
the references, and a drawing group. The references are the coordinate
|
||||||
|
planes (XY, YZ, and ZX); they provide the initial geometric entities to
|
||||||
|
constrain against. The drawing group is active; if you draw a line, or
|
||||||
|
a rectangle, or some other new geometry, then that geometry will appear
|
||||||
|
in the active drawing group.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
To start, we
|
Loading…
Reference in New Issue