diff --git a/doc/reference.txt b/doc/reference.txt deleted file mode 100644 index 5b3bbe4..0000000 --- a/doc/reference.txt +++ /dev/null @@ -1,1387 +0,0 @@ - -This is a reference manual for SolveSpace. This document is not intended -for new users; to learn about this program, see the video tutorials. - -

General Navigation

- - The user interface consists of two windows: a larger window that - contains mostly graphics, and a smaller window that contains mostly - text. The graphics window is used to draw the geometry, and to view - the 3d model. The text window provides information about the model, - and may also be used to modify settings and numerical parameters. - -

Graphics Window and Model View

- - To pan the view, right-drag with the mouse. - - To rotate the view, center-drag with the mouse. This turns the - part over, so that the surfaces that used to be hidden (because - they were facing backwards, away from the viewer) become visible. - - To rotate the view within the plane of the monitor, - Ctrl+center-drag with the mouse. - - It is also possible to pan by Shift+center-dragging, or to rotate - by Shift+right-dragging. - - To zoom in or out, rotate the scroll wheel. It is also possible - to zoom by using the View menu, or the associated keyboard - shortcuts (+ and -). Some features, including the planes, are - always drawn the same size on-screen, and are therefore not - affected by zooming. - - To zoom to the extent of the part, choose View -> Zoom To - Fit. This adjusts the zoom level so that the part fits exactly - on the screen, and then pans to center the part. The rotation - of the part is not affected. - - If a workplane is active, then choose Sketch -> In Workplane (or - press W) to align the view to the workplane. After doing this, - the plane of the screen is coincident with the workplane, and - the center of the workplane is at the center of the screen. The - zoom level is not affected. - - The x, y, and z coordinate axes are always drawn at the bottom - left of the graphics window, in red, green, and blue. These axes - are live: they can be highlighted and selected with the mouse, in - the same way as any other normals. (This means that the coordinate - axes are always conveniently available on-screen, which is useful - e.g. when constraining a line parallel to the x-axis.) - -

Dimension Entry and Units

- - Dimensions may be displayed in either millimeters or inches. - Millimeter dimensions are always displayed with two digits - after the decimal point (45.23), and inch dimensions are always - displayed with three (1.781). - - Choose View -> Dimensions in Inches/Mm to change the current - display units. This does not change the model; if the user - changes from inches to millimeters, then a dimension that was - entered as 1.0 is now displayed as 25.40. - - All dimensions are entered in the current display units. In most - places where a dimension is expected, it's possible to enter an - arithmetic expression ("4*20 + 7") instead of a single number. - -

Text Window

- - The text window appears as a floating palette window. It may - be shown or hidden by pressing Tab, or by choosing View -> - Show Text Window. - - The text window works like a web browser. Any underlined text is - a link. To activate a link, click it with the mouse. The links - may be used to navigate to other pages in the text window. For - example, the "home" screen is a list of groups in the sketch: - - - - To navigate to a group's page, click on that group's name (e.g., - "g002-sketch-in-plane"). The links may also trigger actions in - the sketch. For example, in the above screenshot, all of the - groups are shown. To hide a group, click on the word "yes" in the - "show" column. - - As a convenience, the text window will sometimes automatically - navigate to a page that is likely to be relevant. For example, - when a new group is created, the text window displays that new - group's page. It's always possible to navigate to a different - page, by clicking the "home" link at the top left corner (or - pressing Esc), and following the links from there. - - When sketch entities are selected (e.g., the user has clicked - on them with the mouse), information about those entities is - displayed in the text window. If a single entity is selected, - then information about that entity is displayed. For example, - the window display's a circle's center and radius. - - If multiple entities are selected, then the text window can - sometimes display information about all of them. These cases - include: - - two points: the distance between the points - - a point and a plane face: the distance from the point to the - plane - - two points, and a vector: the distance between the points, - projected along the vector - - two plane faces: the angle between the plane faces - - -

Show / Hide Entities

- - As the sketch becomes more complex, it may be useful to hide - unnecessary information. SolveSpace provides several different - ways to do this. - - In the second and third line of the text window, links are - provided to hide and show different things. These are: - - wrkpls -- When a new "Sketch In New Workplane" group is - created, an associated workplane is created - automatically. If wrkpls is hidden, then that - workplane is visible only when its associated - group is active. If wrkpls is shown, then the - workplane is always visible. - - normals -- By default, normals are drawn as blue-grey arrows, - in the direction of the normal. These normals may - be hovered and selected with the mouse, for - example in order to constrain them. This link - may be used to hide them. - - points -- By default, points are drawn as green squares. - These points may be hovered and selected with the - mouse, for example in order to constrain them. - This link may be used to hide them. If points are - hidden, then they will still appear when the mouse - hovers over them, and may still be selected. - - constraints - When a constraint is created, a graphical - representation of that constraint is displayed - in purple. The constraints in a group are - visible only when that group is active. To hide - them even then, use this link. - - shaded -- The 3d part is displayed as an opaque solid, - with lighting effects to give the impression of - depth. This link may be used to hide that - view. - - faces -- Some surfaces on the 3d model may be selected. - For example, the user can select a plane face - of the part, and constrain a point to lie on - that plane. If faces are shown, then the faces - will appear highlighted when the mouse hovers - over them. The user can click the mouse to - select the face, as they would for any other - entity. - - As a convenience, faces are automatically - hidden when a new sketch group is created, - and automatically shown when a new extrusion is - created. If this behavior is not what's desired, - then the faces can be shown or hidden manually - with this link. - - mesh -- The 3d model of the part consists of many - triangles; for example, a rectangular face is - represented by two triangles. Use this link to - show the triangles on the model. This is a good - way to see how fine or coarse the mesh is - before exporting it. - - hidden-lines - With the part in a given orientation, some of - the lines in the part will be invisible, - because they are buried inside the solid part. - To show those lines anyways, as if the part - were transparent, use this link. This is useful - when drawing a sketch that lies within the - volume of the part. - - In addition to the above options, it is possible to hide and show - entire groups. If a group is hidden, then all of the entities - (line segments, circles, arcs, points, etc.) from that group - are hidden. The solid model is not affected; if a hidden group - contains a circle that is extruded to form a cylinder, then the - cylinder will remain visible. - - To hide a group, go to the home screen in the text window, by - pressing Esc or choosing the link at the top left. A list of - groups is displayed, along with their visibility. If a group is - visible, then the "show" column contains the word "yes" in green. - Click the "yes"; it now appears as a greyed "no", and the group - is hidden. - - The show / hide status of groups is saved in the part file. If - a part is imported into an assembly, then entities that were - visible in the part file will be visible in the assembly, and - entities that were hidden will be hidden. - -

Active Workplane

- - SolveSpace represents all geometry in 3d; it's possible to draw - line segments anywhere, not just in some plane. - - This freedom is not always useful, so SolveSpace also makes - it possible to draw in a plane. If a workplane is active, then - all entities that are drawn will be forced to lie that plane. - The active workplane ("wrkpl") is indicated in the top line of - the text window, at the right. - - When SolveSpace starts with a new empty file, a workplane parallel - to the XY plane is active. To deactivate the workplane, and draw - in 3d, choose Sketch -> Anywhere In 3d. - - To activate a workplane, select it, and then choose Sketch -> - In Workplane. When a workplane is activated, the view is aligned - onto that workplane. (The workplane remains active until the - user chooses Sketch -> Anywhere In 3d, or a different workplane - is activated. If the user rotates the view, so that the view - is no longer aligned onto the workplane, then the workplane - remains active.) - - In a "Sketch in New Workplane" group, the group's associated - workplane may be activated by choosing Sketch -> In Workplane; - there is no need to select it first. - -

Active Group

- - When a new line, circle, or other curve is created, it will be - created in the active group. - - Geometry from the active group is drawn in white; geometry from - earlier groups is drawn in brown. Later groups are hidden. - - In the text window's home screen (press Escape, or choose the - link in the top left corner), the active group's line in the - list of groups has "yes" in the "actv" column. All other groups - (except g001-#references, which cannot be activated) have "no" - in that column. To activate an inactive group, click on the "no". - - -

Sketch Entities

- -

Construction Geometry

- - In normal operation, the user draws line and curves in a - sketch. Those curves describe the geometry to be manufactured; - ultimately, the endmill or the laser or some other tool will - cut along those curves. - - In some cases, it is useful to draw a line that should not - appear on the final part. For example, the user may wish to draw - a center line for a symmetric part; but that center line is only - a guide, and should not actually get exported with the CAM data. - These lines are called construction lines. - - To mark an entity as construction-only, choose Sketch -> Toggle - Construction. A construction entity will behave just like any - other entity, except that it is drawn in green, and does not - contribute to the geometry for export (or to the section that - will be extruded or lathed or swept). - -

Datum Point

- - This entity is defined by a single point. - - If a workplane is active when the datum point is created, - then that datum point will always lie in the workplane. If no - workplane is active, then the datum point will be free in 3d. - (This is the same behaviour as for all points, including e.g. the - endpoints of a line segment.) - - Datum points are typically used as construction geometry. The user - might place datum points in order to simplify the dimensioning - of line segments or other entities. - -

Workplane

- - This entity is specified by a point and a normal. The point - defines its origin, and the normal defines its orientation. - - A workplane makes it possible to draw a section in 2d. If a - workplane is active, then any entities that are drawn must lie - in that workplane. - - It's almost never necessary to create workplanes explicitly. - Instead, create a new Sketch in New Workplane group. - -

Line Segment

- - This entity is specified by its two endpoints. If a workplane is - active, then the two endpoints will always lie in that workplane. - - To create the line segment, choose Sketch -> Line Segment, and - then left-click one endpoint of the line. Then release the mouse - button; the other endpoint is now being dragged. - - To create another line segment, that shares an endpoint with - the line segment that was just created, left-click again. This - is a fast way to draw closed polygons. - - To stop drawing line segments, press Escape, or right- or - center-click the mouse. SolveSpace will also stop drawing new - line segments if an automatic constraint is inserted. (For - example, draw a closed polygon by left-clicking repeatedly, and - then hovering over the starting point before left-clicking the - last time. The endpoint of the polyline will be constrained to - lie on the starting point, and since a constraint was inserted, - SolveSpace will stop drawing.) - -

Rectangle

- - This entity consists of two vertical line segments, and two - horizontal line segments, arranged to form a closed curve. - Initially, the rectangle is specified with the mouse by two - diagonally opposite corners. The line segments (and points) - in the rectangle may be constrained in the same way as ordinary - line segments. - - It would be possible to draw the same figure by hand, by drawing - four line segments and inserting the appropriate constraints. The - rectangle command is a faster way to draw the exact same thing. - - A workplane must be active when the rectangle is drawn, since - the workplane defines the meaning of "horizontal" and "vertical". - -

Circle

- - This entity is specified by its center point, by its diameter, - and by its normal. - - To create the circle, choose Sketch -> Circle, and then left-click - the center. Then release the mouse button; the diameter of - the circle is now being dragged. Left-click again to place - the diameter. - - If a workplane is active, then the center point must lie in - that workplane, and the circle's normal is parallel to the - workplane's normal (which means that the circle lies in the - plane of the workplane). - - If no workplane is active, then the center point is free in space, - and the normal may be dragged (or constrained) to determine the - circle's orientation. - -

Arc of a Circle

- - This entity is specified by its center point, the two endpoints, - and its normal. - - To create the arc, choose Sketch -> Arc of a Circle, and then - left-click one of its endpoints. Then release the mouse button; - the other endpoint is now being dragged. The center is also being - dragged, in such a way as to form an exact semi-circle. - - Left-click again to place the other endpoint, and then drag the - center to the desired position. The arc is drawn counter-clockwise - from the first point to the second. - - The arc must be drawn in a workplane; it cannot be drawn in - free space. - - Tangent arcs may be created automatically. To do so, first select - a point where two line segments join. Then choose Sketch -> - Arc of a Circle; the arc will be created, and automatically - constrained tangent to the two line segments. - - The initial line segments will become construction lines, and - two new lines will be created, that join up to the arc. - - The arc's diameter may then be constrained in the usual way, with - Distance / Diameter or Equal Length / Radius constraints. This - is a simple way to round a sharp corner. - -

Bezier Cubic Segment

- - This entity is specified by its four Bezier points: two endpoints, - and two (in general, off-curve) control points. - - To create the Bezier cubic, choose Sketch -> Bezier Cubic - Segment. Then left-click one endpoint of the cubic segment. - Release the mouse button; the other endpoint of the cubic segment - is now being dragged. - - The two control points are intially placed on the straight line - between the endpoints; this means that the cubic originally - appears as a straight line. Drag the control points to produce - the desired curve. - -

Text in a TrueType Font

- - This entity is defined by two points, at the top left and bottom - left of the text. The distance between the points determines the - height of the text; the angle of the line between them determines - the orientation of the text, and their position determines the - text's position. - - To create the text, choose Sketch -> Text in TrueType Font. Then - left-click the top left point of the text. The bottom right point - of the text is now being dragged; left-click again to place it. - - To change the font, select the text entity. A list of installed - fonts appears in the text window; click the font name to select - it. To change the displayed text, select the text entity and - click the [change] link in the text window. - - -

Constraints

- -

General

- - To create a constraint, first select the geometry to be - constrained. For example, when constraining the distance between - two points, first select those two points. Then choose the - appropriate constraint from the Constrain menu. - - Depending on what is selected, the same menu item may generate - different constraints. For example, the Distance / Diameter menu - item will generate a diameter constraint if a circle is selected, - but a length constraint if a line segment is selected. If the - selected items do not correspond to an available constraint, - then SolveSpace will display an error message, and a list of - available constraints. - - Most constraints are available in both 3d and projected versions. - If a workplane is active, then the constraint applies on the - projection of the geometry into that workplane. If no workplane - is active, then the constraint applies to the actually geometry - in free space. - - For example, consider the line shown below: - - - - The line's length is constrained in two different ways. The upper - constraint, for 50 mm, applies to its actual length. The lower - constraint, for 40 mm, applies to the length of its projection - into the xy plane. (The xy plane is highlighted in yellow.) The - dotted purple lines are drawn to indicate the locations of the - line segment's projected endpoints. - - In normal operation, the user activates a workplane (or a - workplane is activated automatically, for example by creating a - "Sketch in New Workplane" group). The user then draws an entity, - for example a line. Since a workplane is active, the line is - created in that workplane. The user then constrains that line, - for example by specifying its length. Since the workplane is - still active, the constraint actually applies to the projection - of the line segment into the workplane. - - In this case, the projected distance is equivalent to the - 3d distance. If the line segment lies in the workplane, then - the projection of that line segment into the workplane is just - that line segment. This means that when drawing in a workplane, - most of this can be ignored. - - It's possible to use projected constraints in more complex ways, - though. For example, the user might create a line segment in - workplane A, and constrain its projection into workplane B. - - Constraints are drawn in purple on the sketch. If a constraint - has a label associated with it (e.g. a distance or an angle), then - that label may be repositioned by dragging it with the mouse. To - modify the dimension, double-click the label; a text box will - appear on the screen, where the new value can be entered. Press - enter to commit the change, or Esc to cancel. - -

Failure to Solve

- - In some cases, the solver will fail. This is usually because the - specified constraints are inconsistent or redundant. For example, - a triangle with internal angles of 30, 50, and 90 degrees is - inconsistent--the angles don't sum to 180, so the triangle could - never be assembled. This is an error. - - A triangle with internal angles constrained to 30, 50, and 100 - degrees is also an error. This is not inconsistent, because the - angles do sum to 180 degrees; but it's redundant, because only - two of those angles need to be specified. - - If the sketch is inconsistent or redundant, then the background - of the graphics window is drawn in red (instead of the usual - black), and an error is displayed in the text window: - - - - As a convenience, SolveSpace calculates a list of constraints - that could be removed to make the sketch consistent again. To - see which constraints those are, hover the mouse over the links - in the text window; the constraint will appear highlighted in - the graphics window. By deleting one or more of the constraints - in that list, the user can make the sketch consistent again. - - A different type of error occurs when the solver fails to - converge. This may be a defect in the solver, or it may occur - because impossible geometry was specified (for example, a - triangle with side lengths 3, 4, and 10; 3 + 4 = 7 < 10), In - that case, a similar error message is displayed, but without a - list of constraints to remove to fix things. The problem can be - resolved by removing or editing the constraints, or by choosing - Edit -> Undo. - - -

Reference Dimensions

- - By default, the dimension drives the geometry. If a line segment - is constrained to have a length of 20.00 mm, then the line - segment is modified until that length is accurate. - - A reference dimension is the reverse: the geometry drives the - dimension. If a line segment has a reference dimension on its - length, then it's still possible to freely change that length, - and the dimension displays whatever that length happens to be. A - reference dimension does not constrain the geometry. - - To convert a dimension into a reference dimension, choose - Constrain -> Toggle Reference Dimension. A reference dimension - is drawn with "REF" appended to the displayed length or angle. - Double-clicking a reference dimension does nothing; the - dimension is specified by the geometry, not the user, so it is - not meaningful to type in a new value for the reference dimension. - -

Specific Constraints

- - To get help on a specific constraint, choose its menu item without - first selecting any entities. An error message will be displayed, - listing all of the possibilities. - - In general, the order in which the entities are selected doesn't - matter. For example, if the user is constraining point-line - distance, then they might select the point and then the line, or - the line and then the point, and the result would be identical. - Some exceptions exists, and are noted below. - -

Distance / Diameter

- - This constraint sets the diameter of an arc or a circle, or the - length of a line segment, or the distance between a point and - some other entity. - - When constraining the distance between a point and a plane, or - a point and a plane face, or a point and a line in a workplane, - the distance is signed. The distance may be positive or negative, - depending on whether the point is above or below the plane. The - distance is always shown positive on the sketch; to flip to the - other side, enter a negative value. - -

Angle

- - This constraint sets the angle between two vectors. A vector - is anything with a direction; in SolveSpace, line segments and - normals are both vectors. (So the constraint could apply to - two line segments, or to a line segment and a normal, or to two - normals.) The angle constraint is available in both projected - and 3d versions. - - The angle must always lie between 0 and 180 degrees. Larger or - smaller angles may be entered, but they will be taken modulo - 180 degrees. The sign of the angle is ignored. - - When two lines intersect, four angles are formed. These angles - form two equal pairs. For example, the pictured lines interesect - at 30 degrees and 150 degrees. These two angles (30 and 150) are - known as supplementary angles, and they always sum to 180 degrees. - - - - (Notice that in the sketch, three of the angle constraints are - reference dimensions. Given any one of the angles, we could - calculate the other three; so a sketch that specified more than - one of those angles would be overconstrained, and fail to solve.) - - When a new angle constraint is created, SolveSpace chooses - arbitrarily which supplementary angle to constrain. An arc is - drawn on the sketch, to indicate which angle was chosen. As the - constraint label is dragged, the arc will follow. - - If the wrong supplementary angle is constrained, then select the - constraint and choose Constrain -> Other Supplementary Angle. A - constraint of 30 degrees on one supplementary angle is exactly - equivalent to a constraint of 150 degrees on the other. - -

Horizontal / Vertical

- - This constraint forces a line segment to be horizontal or - vertical. It may also be applied to two points, in which case - it applies to the line segment connecting those points. - - A workplane must be active, because the meaning of "horizontal" - or "vertical" is defined by the workplane. - - It's good to use horizontal and vertical constraints whenever - possible. These constraints are very simple to solve, and will - not lead to convergence problems. Whenever possible, define - the workplanes so that lines are horizontal and vertical within - those workplanes. - -

On Point / Curve / Plane

- - This constraint forces two points to be coincident, or a point - to lie on a curve, or a point to lie on a plane. - - The point-coincident constraint is available in both 3d and - projected versions. The 3d point-coincident constraint restricts - three degrees of freedom; the projected version restricts only - two. If two points are drawn in a workplane, and then constrained - coincident in 3d, then an error will result--they are already - coincident in one dimension (the dimension normal to the plane), - so the third constraint equation is redundant. - - When a point is constrained to lie on a circle (or an arc of - a circle), the actual constraint forces the point to lie on - the cylindrical surface through that circle. If the point and - the circle are already coplanar (e.g., if they are both drawn - in the same workplane), then the point will lie on the curve, - but otherwise it will not. - -

Equal Length / Radius

- - This constraint forces two lengths, angles, or radiuses to - be equal. - - The equal-angle constraint requires four vectors as input: - the two equal angles are the angle between each pair of inputs. - For example, select line segments A, B, C, and D. The constraint - forces the angle between lines A and B to be equal to the angle - between lines C and D. If the wrong supplementary angle is chosen, - then choose Constrain -> Other Supplementary Angle, as for the - angle constraint. - -

Length Ratio

- - This constraint sets the ratio between the lengths of two line - segments. For example, if line A and line B have length ratio - 2:1, then the constraint is satisfied if A is 50 mm long and B - is 25 mm long. - - The order in which the lines are selected matters; if line A is - selected before line B, then the ratio is length of A:length of B. - -

At Midpoint

- - This constraint forces a point to lie on the midpoint of a line. - - The at-midpoint constraint can also force the midpoint of a line - to lie on a plane; this is equivalent to creating a datum point, - constraining it at the midpoint of the line, and then constraining - that midpoint to lie on the plane. - -

Symmetric

- - This constraint forces two points to be symmetric about some - plane. Conceptually, this means that if we placed a mirror at - the symmetry plane, and looked at the reflection of point A, - then it would appear to lie on top of point B. - - The symmetry plane may be specified explicitly, by selecting a - workplane. Or, the symmetry plane may be specified as a line in - a workplane; the symmetry plane is then through that line, and - normal to the workplane. Or, the symmetry plane may be omitted; - in that case, it is inferred to be parallel to either the active - workplane's vertical axis or its horizontal axis. The horizontal - or vertical axis is chosen, depending which is closer to the - configuration in which the points were initially drawn. - -

Perpendicular

- - This constraint is exactly equivalent to an angle constraint - for ninety degrees. - -

Parallel / Tangent

- - This constraint forces two vectors to be parallel. - - In 2d (i.e., when a workplane is active), a zero-degree angle - constraint is equivalent to a parallel constraint. In 3d, it - is not. - - Given a unit vector A, and some angle theta, there are in general - infinitely many unit vectors that make an angle theta with A. (For - example, if we are given the vector (1, 0, 0), then (0, 1, 0), - (0, 0, 1), and many other unit vectors all make a ninety-degree - angle with A.) But this is not true for theta = 0; in that case, - there are only two, A and -A. - - This means that while a normal 3d angle constraint will restrict - only one degree of freedom, a 3d parallel constraint restricts - two degrees of freedom. - - This constraint can also force a line to be tangent to a curve. - In order to do this, the line must already share an endpoint with - the curve; this would usually be achieved with a point-coincident - constraint. The constraint will force them to also be tangent - at that point. - -

Same Orientation

- - This constraint forces two normals to have the same orientation. - - A normal has a direction; it is drawn as an arrow in that - direction. The direction of that arrow could be specified by - two angles. The normal specifies those two angles, plus one - additional angle that corresponds to the twist about that arrow. - - (Technically, a normal represents a rotation matrix from one - coordinate system to another. It is represented internally as - a unit quaternion.) - - For example, the picture below shows two workplanes, whose - normals are constrained to be parallel: - - - - Because the normals are parallel, the planes are parallel. But one - plane is twisted with respect to the other, so the planes are not - identical. The line on the left is constrained to be horizontal - in the leftmost plane, and the line on the right is constrained - to be horizontal in the rightmost. These lines are not parallel, - even though the normals of the workplanes are parallel. - - If we replace the "parallel" constraint with a "same orientation" - constraint, then the two workplanes become identical, and the - two horizontal lines become parallel. - - This is a useful constraint when building an assemblies; a single - "same orientation" constraint will fix all three of the imported - part's rotational degrees of freedom. - -

Comment

- - A comment is a single line of text that appears on the drawing. - When the comment is created, it appears in the center of the - screen. To move the comment, drag it with the mouse. To change - the text, double-click it. - - The comment has no effect on the geometry; it is only a - human-readable note. - - -

Groups

- -

General

- - To view a list of groups, go to the home page of the text window. - This is accessible from the link at the top left of the text - window, or by pressing Esc. To view a group's page, click on - its name in the list. - - All groups have a name. When the group is created, a default name - (e.g., "g008-extrude") is assigned. The user may change this name; - to do so, go to the group's page in the text window, and choose - [rename]. - - Groups that create a solid (e.g. extrudes or sweeps) have a "MERGE - AS" option, which is displayed in the page in the text window. - The group can be merged as union, which adds material to the - model, or as difference, which cuts material away. - - These groups also have a color, which determines the color of - the surfaces they produce. To change the color, click on one of - the swatches in the group's page in the text window. - - The group's page in the text window also includes a list of all - requests, and of all constraints. To identify a constraint or a - request, hover the mouse over its name; it will appear highlighted - in the graphics window. To select it, click on the link in the - text window. This is equivalent to hovering over and clicking - the actual object in the graphics window. - -

Sketch in 3d

- - This creates a new empty group, in which the user may draw lines, - circles, arcs, and other curves. - - The ultimate goal is usually to draw closed sections (like - a triangle, or a square with a circular cutout, or some more - complicated shape). These sections are the input for later groups. - For example, an extrude group takes a flat section, and uses it - to form a solid. - - If all of the entities in the group can be assembled into closed - loops, then the area that the loops enclose is shaded in very - dark blue. This is the area that would be swept or extruded or - lathed by a subsequent group. - -

Sketch in New Workplane

- - This creates a new empty group, similar to a new "Sketch in 3d". - The difference is that a "Sketch in New Workplane" also creates - a workplane. The workplane is created based on the entities that - are selected when the sketch is created. These may be: - - A point and two line segments - - The new workplane has its origin at the specified point. The - workplane is parallel to the two lines. If the point is a - vertex on a face of the part, and the two lines are two edges - of that face, then the resulting workplane will be coincident - with that face (i.e., the user will be drawing on that face). - - A point - - The new workplane has its origin at the specified point. The - workplane is orthogonal to the base coordinate system; for - example, its horizontal and vertical axes might lie in the - +y and -z directions, or +x and +z, or any other combination. - - The orientation of the workplane is inferred from the - position of the view when the workplane is created; the - view is snapped to the nearest orthographic view, and the - workplane is aligned to that. - - If a part consists mostly of ninety degree angles, then this - is a quick way to create workplanes. - - The new group's associated workplane is automatically set to be - the active workplane. - - If the entities in this group do not form closed curves, then - an error message is displayed on the screen, and a red line is - drawn across the gap. An error is also displayed if the curves - are not all coplanar. - -

Step Translating

- - This group takes geometry in the active group, and copies it - multiple times along a straight line. - - If a workplane is active when the step translating group is - created, then the translation vector must lie parallel to that - workplane. Otherwise, the translation vector may go anywhere in - free space. - - The number of copies to create is specified by the user. To - change this value, click the [change] link in the group's page - in the text window. - - The copies may be translated on one side, or on two sides. If - the copies are translated on one side, then the original will - appear to the left of (or above, below, etc.) all the copies. If - the copies are translated on two sides, then the original will - appear in the center of the copies. - - The copies may be translated starting from the original, - or starting from copy #1. If the translation starts from the - original, then the translation will contain the original. (So - a 1-element step will always produce the input geometry in its - original location.) If the translation starts from copy #1, then - the original is not included in the output. (So a 1-element step - makes a single copy of the input geometry, and allows the user - to translate it anywhere in space.) - - If the active group is a sketch (sketch in 3d, sketch in new - workplane), the the sketch is stepped and repeated. In that case - the user would typically draw a section, step and repeat that - section, and then extrude the step and repeat. - - If the active group is a solid (extrude, sweep, lathe), then - the solid is stepped and repeated. In this case, the user would - draw a section, extrude the section, and then step and repeat - the extrusion. - - In some cases, these two possibilities (extrude the step, vs. - step the extrusion) are equivalent. If the translation vector - isn't parallel to the section plane, then only the second option - will work. - -

Step Rotating

- - This group takes the geometry in the active group, and copies - it mutiple times along a circle. - - Before creating the group, the user must select its axis of - rotation. One way to do this is to select a point, plus either - a line segment or a normal; the axis of rotation goes through - the point, and is parallel to the line segment or normal. - - If a workplane is active, then it's also possible to select - just a point; in that case, the axis of rotation goes through - that point, and is normal to the workplane. This means that the - rotation remains within the plane of the workplane. - - The step and repeat options (one side / two sides, with original / - with copy #1) are the same as for step translating groups. - - The numer of copies is specified in the same way as for step - translating. If the rotated geometry has not yet been constrained, - then the copies will be spaced evenly around a circle; for - example, if 5 copies are requested, then the spacing will be - 360/5 = 72 degrees. - - To place the copies along less than (or more than) a complete - circle, drag a point on one of the copies with the mouse; all - of the rest will follow, as the step rotation angle is modified. - Constraints (for example an angle constraint, or a point-on-lie - constraint) may be used to specify the angle of rotation exactly. - -

Extrude

- - This group takes a flat section, and extrudes it to form a solid. - The flat section is taken from the section of the group that - is active when the extrude group is created. (This is usually - a sketch in workplane, or a sketch in 3d, but could also be a - step and repeat.) - - The sketch may be extruded on one side, or on two sides. If the - sketch is extruded on one side, then the new solid is either - entirely above or entirely below the original sketch. Drag a - point on the new surface to determine the extrude direction, - and also to determine the extrude depth. Once the extrusion - depth looks approximately correct, it may be specified exactly - by using constraints. For example, the user might constrain the - length of one of the newly extruded edges. - - If the sketch is extruded on two sides, then the original sketch - lies at the exact midpoint of the new solid. This means that - the solid is symmetric about the original sketch plane. Later - dimensioning often becomes simpler when the part has symmetry, - so it's useful to extrude on two sides whenever possible. - - If a workplane is active when the group is created, then the - extrude path is automatically constrained to be normal to that - workplane. This means, for example, that a rectangle is extruded - to form a rectangular prism. The extrusion has one degree of - freedom, so a single distance constraint will fully constrain it. - This is usually the desired behaviour. - - If no workplane is active when the group is created, then the - extrude path may be in any direction. This means that a rectangle - could be extruded to form a parallelepiped. The extrusion has - three degrees of freedom. This is not typically useful. - - By default, no workplane is active in a new extrude group. This - means that constraints will apply in 3d; for example, a length - constraint is a constraint on the actual length, and not on the - length projected into some plane. This is typically the desired - behaviour, but it's possible to activate a workplane in the usual - way (by selecting it, then choosing Sketch -> In Workplane). - -

Lathe

- - This group takes a flat sketch, and sweeps it around a - specified axis, to form a solid of revolution. The section - is taken from the group that is active when the lathe group - is created. - - To create a lathe group, first select a line segment. Then choose - New Group -> Lathe. The line segment is the axis of revolution. - - The section must not intersect itself as it is swept along the - curve. If the section crosses the axis of rotation, then it is - certain to intersect itself and fail. - -

Sweep

- - This group takes a flat sketch, and sweeps it along an arbitrary - trajectory. The section is taken from the group that is active - when the sweep group is created. The path is taken from the - group that precedes the active group. - - The section to sweep should be drawn approximately normal - (perpendicular) to the trajectory. As the section is swept, - it is maintained normal to the trajectory. - -

Helical Sweep

- - This group takes a flat sketch, and sweeps it along a helix. The - section is taken from the group that is active when the helical - sweep is created. - - To create a helical sweep, first select a line segment and a - point. Then choose New Group -> Helical Sweep. The line segment - is the axis of the helix, and the point determines the radius - of the helix. - - To change the parameters of the helix, enter new values in the - helical sweep's page in the text window. For example, a 1/2"-10 - screw thread has axial pitch 0.100" per turn (since ten turns - of 0.100" make an inch), and dRadius = 0. A flat coil has axial - pitch zero, but some dRadius. A sweep with nonzero pitch and - dRadius produces a conical helix. - -

Import / Assemble

- - In SolveSpace, there is no distinction between "part" files and - "assembly" files; it's always possible to import one file into - another. An "assembly" is just a part file that imports one or - more other parts. - - The imported file is not editable within the assembly. It is - imported exactly as it appears in the source file, but with an - arbitrary position and orientation. This means that the imported - part has six degrees of freedom. - - To move (translate) the part, click any point on the imported - part and drag it. To rotate the part, click any point and Shift+ - or Ctrl+drag it. The position and orientation of the part may be - fixed with constraints, in the same way that any other geometry - is constrained. - - The Same Orientation constraint is particularly useful when - importing parts. This one constraint completely determines the - imported part's rotation. (Select a normal on the imported part, - select some other normal to constrain it against, and choose - Constrain -> Same Orientation). - - Import groups have a special "MERGE AS" option: in addition - to the usual "union" and "difference", they have "assemble". - The "assemble" option is identical to "union", except that - it displays a warning if the components intersect with each - other. This is useful when checking to see if the assembled parts - interfere. If the parts interfere, then a warning is displayed - underneath the "MERGE AS" line in the group's text window page. - The interfering surfaces are also highlighted in the graphics - window, in red with black stripes. - - When an assembly file is loaded, SolveSpace loads all of the - imported files as well. If the imported files are not available, - then an error occurs. When transfering an assembly file to another - computer, it's necessary to transfer all of the imported files - as well. - -

Analysis

- -

Trace Point

- - SolveSpace can draw a "trail" behind a point as it moves. This - is useful when designing mechanisms. The sketch shown below is - a four-bar linkage: - - - - As the linkage is worked, the midpoint of the top link moves - along the cyan curve. This image was produced by drawing the - linkage, tracing that midpoint, and then dragging the linkage - through its full range of motion with the mouse. - - To start tracing, select a point, and choose Analyze -> Trace - Point. When the point moves, a cyan trail will be drawn behind it. - - To stop tracing, choose Analyze -> Stop Tracing. A dialog - will appear, with the option to save the trace as a CSV - (comma-separated value) file. To save the trace, enter a - filename. To abandon the trace, choose Cancel or hit Esc. - - The trace is saved as a text file, with one point per line. Each - point appears in the format x, y, z, separated by commas. Many - programs, including spreadsheets like Excel, can read this format. - The units for the coordinates are determined by the export - scale factor. (If the export scale factor is 1, then they are - millimeters, and if it's 25.4, then they're inches.) - - If the mechanism is worked by dragging it with the mouse, then - the points in the trace will be unevenly spaced, because the - motion of the mouse is irregular. A plot of x vs. y (like the - cyan trace above) is not affected, but a plot of x or y vs. t - is useless, because the "speed" along the curve is not constant. - - To avoid this problem, move the point by stepping a dimension, - rather than by dragging with the mouse. Select the dimension to - be stepped; this can be any distance or angle. Choose Analyze -> - Step Dimension. Enter the new final value for that dimension, - and the number of steps; then click "step dimension now". - - The dimension will be modified in multiple steps, and solved - at each intermediate value. For example, consider a dimension - that is now set to 10 degrees. The user steps this dimension to - 30 degrees, in 10 steps. This means that SolveSpace will solve - at 12 degrees, then 14 degrees, then 16, and so on, until it - reaches 30 degrees. - - The position of the traced point will be recorded at each - intermediate value. When the trace is exported, it represents - the position of that point, as the dimensioned link rotates with - constant angular speed. - - The step dimension feature can also improve convergence. In some - difficult cases, the solver will fail to find a solution when a - dimension is changed. If the specified constraints have multiple - solutions, then the solver may also find an undesired solution. In - this case, it may be useful to try stepping the dimension to - its new value, instead of changing it in a single step. - -

Measure Volume

- - This feature reports the volume of the part. Depending on - the active units, the volume is given in cubic inches, or in - millilitres and cubic millimeters. - - If the part contains smooth curves (e.g. circles), then the - mesh is not an exact representation of the geometry. This means - that the measured volume is only an approximation; for a mesh - that looks fairly smooth on-screen, expect an error around one - percent. To decrease this error, choose a finer chord tolerance. - - -

Export

- -

Bitmap Image

- - This option will export a bitmap image of whatever is displayed - on-screen. It is equivalent to taking a screenshot. This option - is useful for producing human-readable output. - - Choose File -> Export Image. The file is exported as a PNG, - which most graphics software can open. - -

2d Vector (DXF)

- - This option will generate a 2d vector file that represents a - specified plane in the part. Most 2d CAM software, including - the software that ships with most laser or waterjet cutters, - will accept a DXF file. - - Before exporting a DXF, it is necessary to specify which plane of - the part should be exported. This may be specified by: - - a face: - - Any surfaces coplanar with that plane face will appear in the - file. The faces must be shown before they can be selected; - click the link in the third line of the text window. - - a point, and two lines or vectors: - - The export plane is through the point, and parallel to - the two lines or vectors. If the two lines or vectors are - perpendicular, then they will become the x and y axis in the - DXF file. Whichever line is more horizontal in the current - view becomes the x axis, and the other one becomes the y. - - This means that it's possible to rotate the exported DXF - through ninety degrees by rotating the view through ninety - degrees (in the plane of that face). Similarly, by rotating - the part around to look at the face from behind instead of - in front, the exported DXF is mirrored. - - the active workplane - - If a workplane is active, and nothing is selected when the - export command is chosen, then SolveSpace will export any - surfaces that are coplanar with the active workplane. The - workplane's horizontal and vertical axes become the x and - y axis in the DXF file. - - The units of the DXF file are determined by the export scale - factor, which may be specified in the configuration screen. - - The exported DXF contains only line segments; all curves are - broken down into lines, with the specified chord tolerance. - -

3d Mesh (STL)

- - This option will generate a 3d triangle mesh that represents - the entire part. Most 3d CAM software, including the software - for most 3d printers, will accept an STL file. - - The mesh from the active group will be exported; this is the - same mesh that is displayed on screen. The coordinate system - for the STL file is the same coordinate system in which the part - is drawn. To use a different coordinate system (e.g., to rotate - or translate the part), create an assembly with the part in the - desired position, and then export an STL file of the assembly. - - The units of the STL file are determined by the export scale - factor, which may be specified in the configuration screen. - -

Configuration

- -

Material Colors

- - In the text window screen for certain groups (extrude, lathe, - sweep), a palette of eight colors is displayed. This palette - allows the user to choose the color of any surfaces generated - by that group. - - These eight colors are specified here, by their components. - The components go from 0 to 1.0. The color "0, 0, 0" is black, - and "1, 1, 1" is white. The components are specified in the order - "red, green, blue". - - A change to the palette colors does not change the color of any - existing surfaces in the sketch, even if the color of an existing - surface no longer appears in the palette. - -

Light Directions

- - The 3d part is displayed with simulated lighting, to produce - the impression of depth. The directions and intensities of these - lights may be modified according to user preference. - - The lights do not have a position; they have only a direction, - as if they were coming from very far away. This direction is - specified in 3 components, "right, top, front". The light with - direction "1, 0, 0" is coming from the right of the screen. - The light with direction "-1, 0, 0" is coming from the left of - the screen. The light with direction "0, 0, 1" is coming from - in front of the screen. - - The intensity must lie between 0 and 1. A light with intensity - 0 has no effect, and 1 is full brightness. - - Two lights are available. If only one is desired, then the second - may be disabled by setting its intensity to zero. When the part - is rotated or translated, the lights do not move. - -

Chord Tolerance, and Max Segments

- - SolveSpace does not represent curved edges or surfaces exactly. - Any curves are broken down into piecewise linear segments, - and surfaces are represented as triangles. - - This introduces some error. The chord tolerance determines how - much error is introduced; it is the maximum distance between - the exact curve and the line segments that approximate it. If - the chord tolerance is decreased, then more line segments will - be generated, to produce a better approximation. - - The chord tolerance is specified in units of screen pixels. This - means that when the user zooms in on the model, a better - approximation is produced. - - The same tolerance is used for the mesh that's displayed on - screen, and for the mesh that is used to export to a file. It - may be helpful to use a large chord tolerance (2-5 pixels) while - drawing, for fast response, and then temporarily specify a small - chord tolerance (~0.5 pixels) before exporting an STL or DXF file. - - The fineness of the mesh is also limited by the specified maximum - number of piecewise linear segments. A single curve will never - be broken down into more than that number of line segments, - no matter how fine the chord tolerance. - -

Perspective Factor

- - To display a 3d part on-screen, it must be projected into 2d. One - common choice is a parallel projection. In a parallel projection, - any two lines that are parallel in real life are also parallel - in the drawing. A parallel projection is also known as an - axonometric projection. Isometric and orthographic views are - examples of parallel projections. - - Another way to transform the image into 2d is with a perspective - projection. In a perspective projection, objects 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 in the drawing; they will converge at a vanishing point. - - The image below is a perspective projection. All of the square - cutouts are the same size, but the ones at the front (closer to - the viewer) are drawn larger, and the ones at the back are drawn - smaller. - - - - The next image is a parallel projection. All of the square - cutouts are the same size on the drawing. (The cutouts at the - top might look slightly larger, but that is an optical illusion, - because the eye is accustomed to seeing images with perspective.) - - - - A perspective projection will often look more realistic, and - gives a better impression of depth. The disadvantage is that - the perspective distorts the image, and may cause confusion. - - By default, SolveSpace displays a parallel projection. To display - a perspective projection, 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. - -

Edge Color

- - The surfaces of the 3d part are shaded according to the specified - lighting. Different faces will catch the light at slightly - different angles, and will therefore appear slightly brighter - or darker. This permits the viewer to distinguish the boundary - between the faces. - - Depending on the lighting, this may not provided very much - constrast. To make the edges of the part more visible, it's - possible to emphasize them with a solid-color line. - - If the edge color is specified as "0,0,0", then no emphasized - edges will be drawn. If any other color is specified, then the - edges will be drawn in that color. The edge color is specified - in the same format as for the material color. - -

Export Scale Factor

- - Internally, SolveSpace represents lengths in millimeters. Before - exporting geometry to an STL or DXF file, these lengths are - divided by the export scale factor. This scale factor determines - the units for the exported file. - - If the scale factor is set equal to 1, then exported files are - in millimeter units. If the scale factor is set equal to 25.4, - then the exported files are in inch units, since 1 inch = 25.4 mm. - - SolveSpace works in a right-handed coordinate system. If the - scale factor is negative, then the exported file will appear in - a left-handed coordinate system (so that a right-handed screw - thread will become left-handed). - -

Draw Back Face

- - SolveSpace always works with solid shells. This means that in - normal operation, only the outside of a surface should be visible. - This setting should therefore have no effect. - - If a self-intersecting shell is drawn, then inside surfaces may - be exposed. Even if the shell is watertight, a few stray pixels - from an inside surface may "show through", depending on how the - graphics card renders triangles. This setting determines whether - those surfaces are discarded, or drawn highlighted in red. - -

Licensing

- - As downloaded, SolveSpace does not include a license key. This means - that it cannot create files with more than six groups. Larger files - may be opened, but not modified. This light version of SolveSpace - is intended for evaluation, but non-commercial / personal use is - also permitted. - - The licensed version of SolveSpace can create files with an unlimited - number of groups. - - When a license is purchased, a license file ("solvespace.key") - will be sent via email. To activate the license, save this file - somewhere on your computer. In SolveSpace, choose Help -> Load - License... A file dialog box will appear; select the license file. - - No license server or dongle is required, and licenses do not expire. - - -

Bugs

- - Boolean operations are performed on triangle meshes, and not on - exact curved surfaces. This often results in poor mesh quality. An - equally good mesh might have been achieved with fewer triangles, - if the curves were piecewise-linear approximated differently. Or - the mesh may contain long skinny triangles. - - This means that the exported STL files do not contain a high - quality mesh. This is generally not a problem, but could be in - some applications. - - Another consequence is that the program runs slower as the number - of triangles increases. To obtain a coarser mesh, increase the chord - tolerance in the configuration screen. - - To improve speed and mesh quality, draw the part using fewer Boolean - operations. For example, a plate with a hole might be modeled - by extruding the plate, and then cutting the hole with a second - extrusion. Instead, make a single sketch with both the outline of - the plate and the hole, and extrude only once. - - -This is the introductory tutorial. We review the basic user interface, -and draw a simple 2d part. This covers rectangles, symmetry constraints, -distance/length constraints, and equal length constraints. - -We draw a slightly more complex part, by combining multiple extrusions. -This introduces workplanes and Boolean ops, and several new constraints. - -We look at constraints in more detail. This covers inconsistent -and nonconverging sketches (two common error conditions), projected -constraints in 3d, reference dimensions, and construction geometry. - -We look at step and repeat; this takes entities, and copies them multiple -times along a line (translating) or the arc of a circle (rotating). The -details of the step are specified using constraints. - -We build an assembly from multiple parts. The positions and orientations -of the parts are enforced using constraints. We run a computed -intersection check, to verify that the parts don't interfere. - -We draw linkages and other mechanisms, and simulate their operation using -the constraint solver. The trajectory of certain points on the linkage -is traced and exported. We also attach a linkage to a solid model, -and animate the solid model by dragging the linkage. - - diff --git a/doc/rep.txt b/doc/rep.txt deleted file mode 100644 index 875d4ff..0000000 --- a/doc/rep.txt +++ /dev/null @@ -1,59 +0,0 @@ - -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 deleted file mode 100644 index f51bd89..0000000 --- a/doc/tutorial.txt +++ /dev/null @@ -1,65 +0,0 @@ - -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