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