Beginnings of some docs for SolveSpace.

[git-p4: depot-paths = "//depot/solvespace/": change = 1800]
solver
Jonathan Westhues 2008-06-20 19:36:29 -08:00
parent 89bb81b35c
commit eb0b63f5dd
2 changed files with 124 additions and 0 deletions

59
doc/rep.txt Normal file
View File

@ -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

65
doc/tutorial.txt Normal file
View File

@ -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