From eb0b63f5dde970d27552af6145e447e3d70aba24 Mon Sep 17 00:00:00 2001 From: Jonathan Westhues Date: Fri, 20 Jun 2008 19:36:29 -0800 Subject: [PATCH] Beginnings of some docs for SolveSpace. [git-p4: depot-paths = "//depot/solvespace/": change = 1800] --- doc/rep.txt | 59 +++++++++++++++++++++++++++++++++++++++++++ doc/tutorial.txt | 65 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 124 insertions(+) create mode 100644 doc/rep.txt create mode 100644 doc/tutorial.txt diff --git a/doc/rep.txt b/doc/rep.txt new file mode 100644 index 0000000..875d4ff --- /dev/null +++ b/doc/rep.txt @@ -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 diff --git a/doc/tutorial.txt b/doc/tutorial.txt new file mode 100644 index 0000000..f51bd89 --- /dev/null +++ b/doc/tutorial.txt @@ -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