# Tools Reference

***** DRAFT *****

## Contents

## Tools Menu

The drawing tools are used to create and modify entities such as lines, circles, etc in a drawing... yada, yada, yada

**Tool | Icon | Menu Path | Description**

### Line

**2 points** {DrawLine}: Draw a line between two assigned points.

**Angle** {DrawLineAngle}: Draw a line from an assigned point defining the start, middle or end of the line and with an assigned length and angle.

**Horizontal** {DrawLineHorizontal): Draw a horizontal line from an assigned point defining the start, middle or end of the line and with an assigned length.

**Vertical** {DrawLineVertical}: Draw a vertical line from an assigned point defining the start, middle or end of the line and with an assigned length.

**Freehand Line** {DrawLineFree}: Draw a non-geometric line.

**Parallel through point** {DrawLineParallelThrough}: Draw a given number of lines parallel to a selected existing line through an assigned point.

**Parallel** {DrawLineParallel}: Draw a given number of lines parallel to a selected existing line with a given distance between lines.

**Rectangle** {DrawLineRectangle}: Draw a rectagle by assigning the points of two diagonally opposite corners.

**Bisector** {DrawLineBisector}: Draw a given number of lines bisecting two existing non-parallel lines (e.g. at an angle to each other with or without a common point).

**Tangent (P,C)** {DrawLineTangent1}: Draw a line from an assigned point tangent to an existing circle.

**Tangent (C,C)** {DrawLineTangent2}: Draw a line tangent to two existing circles.

**Tangent Orthogonal** {DrawLineOrthTan}: Draw a line tangent to an existing circle and perpendicular to an existing line.

**Orthogonal** {DrawLineOrthogonal}: Draw a line of a given length perpendicular to an existing line placing the centre at an assigned point.

**Relative Angle** {DrawLineRelAngle}: Draw a line with a given length and at a given angle relative to an existing line placing the centre of the line at an assigned point.

**Polygon (Cen,Cor)** {DrawPolyline}: Draw a polygon with a given number of sides assigning the centre point and point of one vertex.

**Polygon (Cen,Tan)** {DrawLinePolygonCenTan}: Draw a polygon with a given number of sides assigning the centre point and point of the centre of one side.

**Polygon (Cor,Cor)** {DrawLinePolygonCorCor}: Draw a polygon with a given number of sides assigning the two points of one side.

### Circle

**Centre, Point** {DrawCircle}: Draw a circle with a given radius by assigning a centre point and a point on the circumference.

**Centre, Radius** {DrawCircleCR}: Draw a circle with a given radius centred at an assigned point.

**2 Points** {DrawCircle2P}: Draw a circle with a given diameter by assigning two opposite points on the circumference.

**2 Points, Radius** {DrawCircle2PR}: Draw a circle with two points on the circumference and with an assigned radius.

**3 Points** {DrawCircle3P}: Draw a circle assigning three points on the circumference.

**Concentric** {DrawCircleParallel}: Draw a circle concentric, with the same centre point, to an existing circle.

**Circle Inscribed** {DrawCircleInscribe}: Draw a circle inside an existing polygon of four sides or more.

**Tangential 2 Circles, Radius** {DrawCircleTan2}: Draw a circle tangential to two circles with a given radius.

**Tangential, 2 Circles, 1 Point** {DrawCircleTan2_1P}: Draw a circle tangential to two existing circles and assigning a centre point to establish the radius.

**Tangential, 2 Points** {DrawCircleTan2}: Draw a circle tangential to an existing circle and define the diameter and placement by assigning two points on the circumference.

**Tangential, 2 Circles, Radius** {DrawCircleTan2}: Draw a circle tangential to two existing circles with a given radius.

**Tangential, 3 Circles** {DrawCircleTan3}: Draw a circle tangential to three existing circles and/or lines.

### Curve

**Center, Point, Angles** {DrawArc}: Draw a curve (arc) with a given radius defined by a center point and a point on the circumference, the direction of rotation (clockwise or counter-clockwise), a point defining the start position of the arc and a point defining the end position of the arc.

**3 Points** {DrawArc3P}: Draw a curve (arc) by assigning three points on the circumference of the arc defining the start position, a point on the circumference and end position of the arc.

**Concentric** {DrawArcParallel}: Draw a curve (arc) concentric, with the same centre point, to an existing curve (arc) with a defined offset.(*)

**Arc Tangential** {DrawArcTangential}: Draw a curve (arc) tangential to the end of an exsiting line segment with a defined radius or angle (deg).

### Ellipse

**Ellipse (Axis)** {DrawEllipseAxis}: Draw an ellipse by assigning a centre point, a point on the circumference of major access and a point on the circumference the minor access.

**Ellipse Arc (Axis)** {DrawEllipseArcAxis}: N/A

**Ellipse Foci Point** {DrawEllipseFociPoint}: Draw an ellipse by assigning two foci points and a point on the circumference.

**Ellipse 4 Point** {DrawEllipse4Points}: Draw an ellipse assigning four points on the circumference.

**Ellipse Center and 3 Points** {DrawEllipseCenter3Points}: Draw an ellipse by assigning a centre point three points on the circumference.

**Ellipse Inscribed** {DrawEllipseInscribe}: Draw a Ellipse constrained by four existing non-parallel line segments.

### Spline

**Spline** {DrawSpline}: Draw an open or closed spline (curve) by assigning control points and a given degree of freedom (1 - 3).

**Spline through points** {DrawSplinePoints}: Draw an open or closed spline (curve) by defining points on the spline.

### Polyline

**Polyline** {DrawPolyline}: Draw an open or closed continuous line consisting of one or more straight line or arc segments defined by endpoints and / or radius or angle for arcs.

**Add node** {PolylineAdd}: Add node to existing polyline. (Use "Snap on Entity" to place new node on segment.)

**Append node** {PolylineAppend}: Add one or more segments to an existing polyline by selecting polyine and adding new node endpoint.

**Delete node** {PolylineDel}: Delete selected node of an existing polyline.

**Delete between two nodes** {PolylineDelBetween}: Delete one or more nodes between selected nodes of an existing polyline.

**Trim segments** {PolylineTrim}: Extend two seperate non-parallel segments of an existing polyline to intersect at a new node.

**Create Equidistant Polylines** {PolylineEquidistant}: Draw a given number of polylines parallel to a selected existing polyline with a given distance between lines.

**Create Polyline from Existing Segments** {PolylineSegment}: Create polyline from two or more existing seperate line or arc segments forming a continuous line.

### Select

**Select Entity** {SelectSingle}: Select, or deselect, one or more entities (default cursor action).

**Select Window** {SelectWindow}: Select one or more enties enclosed by selection window (L to R), or crossed by selection window (R to L) (default cursor "drag" action).

**Deselect Window** {DeselectWindow}: Deselect one or more enties enclosed by selection window (L to R), or crossed by selection window (R to L).

**(De-)Select Contour** {SelectContour}: Select or deselected entities connected by shared points.

**Select Intersected Entities** {SelectIntersected}: Select on or more entities crossed by selection line.

**Deselect Intersected Entities** {DeselectIntersected}: Deselect on or more entities crossed by selection line.

**(De-)Select Layer** {SelectLayer}: Select or deselected all entities on the layer of the selected entity.

**Select All** {SelectAll}: Select all entities on visible layers ([Ctrl]-[A]).

**Deselect all** {DeselectAll}: Deselect all entities on visible layers ([Ctrl]-[K] or default [Esc] action).

**Invert Selection** {SelectInvert}: Select all un-selected entities will deselecting all selected entities.

### Dimension

**Aligned** {DimAligned}: Apply dimension lines and text aligned to an existing entity by selecting start and end points on a line segment and placement point for the text.

**Linear** {DimLinear}: Apply dimension lines and text at an defined angle to an entity by selecting start and end points on a line segment and placement point for the text.

**Horizontal** {DimLinearHor}: Apply dimension lines and text aligned to an entity by selecting start and end points on a line segment and placement point for the text.

**Vertical** {DimLinearVer}: Apply dimension lines and text aligned to an entity by selecting start and end points on a line segment and placement point for the text.

**Radial** {DimRadial}: Apply dimension lines and text a circle's or arc's radius by selecting entity and placement point for the text.

**Diametric** {DimDiametric}: Apply dimension lines and text a circle's or arc's diameter by selecting entity and placement point for the text.

**Angular** {DimAngular}: Apply angular dimension by selecting two existing non-parallel line segments and placement point for the text.

**Leader** {DimLeader}: Draw a text leader by by selecting start (arrow location), intermediate and end points.

### Modify

**Attributes** {ModifyAttributes}: Modify the common attributes of * one or more* selected entities, including Layer, Pen color, Pen width, and Pen Line type.

**Delete** {ModifyDelete}: Mark one or more entities to be deleted, press [Enter] to complete operation.

**Delete selected** {ModifyDeleteQuick}: Delete one or more selected entities.

**Delete Freehand** {ModifyDeleteFree}: Delete segment within a polyline define by two points. (Use "Snap on Entity" to place points.)

**Move / Copy** {ModifyMove}: Move a selected entity by defining a reference point and a relative target point. Optionally keep the original entity (Copy), create mulitple copies and / or alter attributes and layer.

**Revert direction** {ModifyRevertDirection}: Swap start and end points of one or more selected entities.

**Rotate** {ModifyRotate}: Rotate a selected entity around a rotation point, moving the entity from a reference point to a target point. Optionally keep the original entity, create multiple copies and / or alter attributes and layer.

**Scale** {ModifyScale}: Increase or decrease the size of a selected entity from a reference point by a defined factor for both axis. Optionally keep the original entity, create mulitple copies and / or alter attributes and layer.

**Mirror** {ModifyMirror}: Create a mirror image of a selected entity around an axis defined by two points. Optionally keep the original entity and / or alter attributes and layer.

**Move and Rotate** {ModifyMoveRotate}: Move a selected entity by defining a reference point and a relative target point and rotataing the entity at a given angle. Optionally keep the original entity, create mulitple copies and / or alter attributes and layer.

**Rotate Two** {ModifyRotate2}: Rotate a selected entity around an absolute rotation point, while rotating the entity around a relative reference point to a target point. Optionally keep the original entity, create multiple copies and / or alter attributes and layer.

**Stretch** {ModifyStretch}: Move a selected portion of a drawing by defining a reference point and a relative target point.

**Bevel** {ModifyBevel}: Create a sloping edge between two intersecting line segments with defined by a setback on each segment.

**Fillet** {ModifyRound}: Create a rounded edge between two intersecting line segments with defined radius.

**Explode Text into Letters** {ModifyExplodeText}: Separate a string of text into individual character entities.

**Explode** {BlocksExplode}: Separate one or more selected blocks into individual entities.

### Info

**Point inside contour** {InfoInside}: Provides indication of point being inside or outside of the selected *closed* contour (polygon, circle, ployline, etc).

**Distance Point to Point** {InfoDist}: Provides distance, cartesian and polar coordinates between two specified points.

**Distance Entity to Point** {InfoDist2}: Provides shortest distance selected entity and specified point.

**Angle between two lines** {InfoAngle}: Provides angle between two selected line segments, measured counter-clockwise.

**Total length of selected entities** {InfoTotalLength}: Provides total length of one or more selected entities (length of line segment, circle circimference, etc).

**Polygonal Area** {InfoArea}: Provides area of polygon defined by three or more specified points.

### Misc

**MText** {DrawMText}: Insert multi-line text into drawing at a specified base point. Optionally define font, text height, angle, width factor, alignment, angle, special symbols and character set.

**Text** {DrawText}: Insert single-line text into drawing at a specified base point. Optionally define font, text height, alignment, angle, special symbols and character set.

**Hatch** {DrawHatch}: Fill a closed entity (polygon, circle, polyline, etc) with a defined pattern or a solid fill. Optionally define scale and angle.

**Insert Image** {DrawImage}: Insert an image, bitmapped or vector, at a specified point. Optionally define angle, scale factor and DPI.

**Points** {DrawPoint}: Draw a point at the assigned coordinates.

## Related

Points: http://wiki.librecad.org/index.php/Points

Snapping: http://wiki.librecad.org/index.php/Snapping

http://wiki.librecad.org/index.php/Category:Tools

http://wiki.librecad.org/index.php/Commands

http://wiki.librecad.org/index.php/A_short_manual_for_use_from_the_command_line