Construction plug-in
====================
+Construction plug-in includes features for creation of different constructive objects. It provides following features:
+
.. toctree::
:titlesonly:
:maxdepth: 1
Axis
====
+The feature Axis creates a new constructive axis line.
+
Axis is a construction object and it can be created as in a part as in part set. To create an axis:
#. select in the Main Menu *Construction - > Axis* item or
There are 6 algorithms for creation of an Axis:
+.. image:: images/axis_dxyz_32x32.png
+ :align: left
+**By three dimensions** creates an axis by dimensions along X, Y, Z axes starting form existing origin.
+
+.. image:: images/by_two_points_32x32.png
+ :align: left
+**By two points** creates an axis using existing points.
+
+.. image:: images/axis_by_line_32x32.png
+ :align: left
+**By line** creates an axis using a line.
+
+.. image:: images/axis_by_line_32x32.png
+ :align: left
+**As an axis of cilindrical face** creates an axis using a cilindrical face.
+
+.. image:: images/axis_by_line_32x32.png
+ :align: left
+**By plane and point** creates an axis using a plane and point.
+
+.. image:: images/axis_by_line_32x32.png
+ :align: left
+**By two planes** creates an axis as intersection of two planes.
+
+By three dimensions
+"""""""""""""""""""
+
.. image:: images/Axis1.png
:align: center
In this case user has to define dX, dY, dZ values of a vector.
+**TUI Commands**: *model.addAxis(Part_doc, 10, 10, 10)*
+
+**Arguments**: Part + 3 values (dX, dY, dZ values).
+
+By two points
+"""""""""""""
+
.. image:: images/Axis2.png
:align: center
In this case user has to select two points or vertices.
+**TUI Commands**: *model.addAxis(Part_doc, model.selection("VERTEX", "Box_1_1/Back&Box_1_1/Left&Box_1_1/Top"), model.selection("VERTEX", "Box_1_1/Front&Box_1_1/Right&Box_1_1/Bottom"))*
+
+**Arguments**: Part + 2 vertices.
+
+By line
+"""""""
+
.. image:: images/Axis3.png
:align: center
In this case user has to select a linear edge.
+**TUI Commands**: *model.addAxis(Part_doc, model.selection("EDGE", "Box_1_1/Left&Box_1_1/Top"))*
+
+**Arguments**: Part + edge.
+
+As an axis of cilindrical face
+""""""""""""""""""""""""""""""
+
.. image:: images/Axis4.png
:align: center
In this case user has to select a cylindrical face. Axis of the cylinder will define an axis object.
+**TUI Commands**: *model.addAxis(Part_doc, model.selection("FACE", "Cylinder_1_1/Face_1"))*
+
+**Arguments**: Part + cylindrical face.
+
+By plane and point
+""""""""""""""""""
+
.. image:: images/Axis5.png
:align: center
In this case user has to select a point or vertex and plane (or planar face). Axis will be defined as a normal from the point to the plane.
+**TUI Commands**: *model.addAxis(Part_doc, model.selection("FACE", "Box_1_1/Front"), model.selection("VERTEX", "Box_1_1/Back&Box_1_1/Right&Box_1_1/Top"))*
+
+**Arguments**: Part + plane + point.
+
+By two planes
+"""""""""""""
+
.. image:: images/Axis6.png
:align: center
In this case user has to select two planes. Intersection of that planes defines an axis. User can define offset for axis definition from both planes.
-**TUI Commands**:
+**TUI Commands**: *model.addAxis(Part_doc, model.selection("FACE", "Box_1_1/Top"), 5, False, model.selection("FACE", "Box_1_1/Front"), 3, False)*
+
+**Arguments**: Part + plane + offcet value + is reversed flag + plane + offcet value + is reversed flag.
-#. *model.addAxis(Part_doc, 10, 10, 10)* **Arguments**: Part + 3 values (dX, dY, dZ values).
-#. *model.addAxis(Part_doc, model.selection("VERTEX", "Box_1_1/Back&Box_1_1/Left&Box_1_1/Top"), model.selection("VERTEX", "Box_1_1/Front&Box_1_1/Right&Box_1_1/Bottom"))* **Arguments**: Part + 2 vertices.
-#. *model.addAxis(Part_doc, model.selection("EDGE", "Box_1_1/Left&Box_1_1/Top"))* **Arguments**: Part + edge.
-#. *model.addAxis(Part_doc, model.selection("FACE", "Cylinder_1_1/Face_1"))* **Arguments**: Part + cylindrical face.
-#. *model.addAxis(Part_doc, model.selection("FACE", "Box_1_1/Front"), model.selection("VERTEX", "Box_1_1/Back&Box_1_1/Right&Box_1_1/Top"))* **Arguments**: Part + plane + point.
-#. *model.addAxis(Part_doc, model.selection("FACE", "Box_1_1/Top"), 5, False, model.selection("FACE", "Box_1_1/Front"), 3, False)* **Arguments**: Part + plane + offcet value + is reversed flag + plane + offcet value + is reversed flag.
+Result
+""""""
The Result of the operation will be an axis:
Plane
=====
+The feature Plane creates a new constructive plane.
+
Plane is a construction object and it can be created as in a part as in part set. To create a plane:
#. select in the Main Menu *Construction - > Plane* item or
There are 4 algorithms for creation of a Plane:
+.. image:: images/plane_by_three_points_32x32.png
+ :align: left
+**By three points** creates a plane by three points.
+
+.. image:: images/plane_by_line_and_point_32x32.png
+ :align: left
+**By line and point** creates a plane by a line and a point.
+
+.. image:: images/plane_by_other_plane_32x32.png
+ :align: left
+**By other plane** creates a plane parallel to another plane.
+
+.. image:: images/plane_by_two_parallel_planes_32x32.png
+ :align: left
+**By two parallel planes** creates a plane between two parallel planes.
+
+By three points
+"""""""""""""""
+
.. image:: images/Plane1.png
:align: center
In this case user has to select three points in a viewer to define a new plane.
+**TUI Commands**: *model.addPlane(Part_doc, model.selection("VERTEX", "Box_1_1/Back&Box_1_1/Left&Box_1_1/Top"), model.selection("VERTEX", "Box_1_1/Front&Box_1_1/Right&Box_1_1/Top"), model.selection("VERTEX", "Box_1_1/Front&Box_1_1/Left&Box_1_1/Bottom"))*
+
+**Arguments**: Part + 3 vertices.
+
+By line and point
+"""""""""""""""""
+
.. image:: images/Plane2.png
:align: center
In this case user has to select a linear edge and point to define a plane. It is possible to make the new plane perpendicular to the selected edge.
+**TUI Commands**: *model.addPlane(Part_doc, model.selection("EDGE", "Box_1_1/Left&Box_1_1/Top"), model.selection("VERTEX", "Box_1_1/Front&Box_1_1/Right&Box_1_1/Bottom"), False)*
+
+**Arguments**: Part + line + point + is perpendicular to line flag.
+
+By other plane
+""""""""""""""
+
.. image:: images/Plane3.png
:align: center
In this case user has to select an already existing plane (planar face). There are following possibilities to define a new plane:
-#. By distance from the selected plane.
-#. By coincidence to a point.
-#. By rotation around an edge on a specified angle.
+.. image:: images/plane_by_distance_from_other_24x24.png
+ :align: left
+
+By distance from the selected plane.
+
+.. image:: images/plane_by_coincident_to_point_24x24.png
+ :align: left
+
+By coincidence to a point.
+.. image:: images/plane_by_rotation_24x24.png
+ :align: left
+
+By rotation around an edge on a specified angle.
+
+**TUI Commands**: *model.addPlane(Part_doc, model.selection("FACE", "Box_1_1/Front"), 10, False)*
+
+**Arguments**: Part + a plane + offset + is reverse flag.
+
+
+By two parallel planes
+""""""""""""""""""""""
+
.. image:: images/Plane4.png
:align: center
In this case user has to select two parallel planes. A new plane will be defined between them.
-**TUI Commands**:
+**TUI Commands**: *model.addPlane(Part_doc, model.selection("FACE", "Box_1_1/Left"), model.selection("FACE", "Box_1_1/Right"))*
+
+**Arguments**: Part + 2 planes.
-#. *model.addPlane(Part_doc, model.selection("VERTEX", "Box_1_1/Back&Box_1_1/Left&Box_1_1/Top"), model.selection("VERTEX", "Box_1_1/Front&Box_1_1/Right&Box_1_1/Top"), model.selection("VERTEX", "Box_1_1/Front&Box_1_1/Left&Box_1_1/Bottom"))* **Arguments**: Part + 3 vertices.
-#. *model.addPlane(Part_doc, model.selection("EDGE", "Box_1_1/Left&Box_1_1/Top"), model.selection("VERTEX", "Box_1_1/Front&Box_1_1/Right&Box_1_1/Bottom"), False)* **Arguments**: Part + line + point + is perpendicular to line flag.
-#. *model.addPlane(Part_doc, model.selection("FACE", "Box_1_1/Front"), 10, False)* **Arguments**: Part + a plane + offset + is reverse flag.
-#. *model.addPlane(Part_doc, model.selection("FACE", "Box_1_1/Left"), model.selection("FACE", "Box_1_1/Right"))* **Arguments**: Part + 2 planes.
+Result
+""""""
The Result of the operation will be a plane:
Point
=====
+The feature Point creates a new constructive point.
+
Point is a construction object and it can be created as in a part as in part set. To create a point:
#. select in the Main Menu *Construction - > Point* item or
There are 5 algorithms for creation of a Point:
+.. image:: images/point_by_xyz_32x32.png
+ :align: left
+**By X,Y,Z** creates a point by three coordinates.
+
+.. image:: images/point_by_distance_on_edge_32x32.png
+ :align: left
+**By distance on edge** creates a point on an edge.
+
+.. image:: images/point_by_projection_32x32.png
+ :align: left
+**By projection on edge or plane** creates a point projecting of existing point on an edge or plane.
+
+.. image:: images/point_by_intersection_32x32.png
+ :align: left
+**By intersection of objects** creates a point by intersection of planes or/ and edges.
+
+.. image:: images/point_by_geometrical_property_32x32.png
+ :align: left
+**By geometrical property of object** creates a point in COG or center of arc or circle.
+
+By X,Y,Z
+""""""""
+
.. image:: images/Point1.png
:align: center
In this case user has to input X, Y, and Z coordinates.
+**TUI Commands**: *model.addPoint(Part_doc, 50, 50, 50)*
+
+**Arguments**: Part + 3 values (X, Y, Z coordinates).
+
+By distance on edge
+"""""""""""""""""""
+
.. image:: images/Point2.png
:align: center
In this case user has to select an edge in a viewer and to define a distance along the edge where point will be defined. This distance can be defined as by an absolute value as by relative as a ratio to the edge length. The direction of the edge can be reverced by the corresponded check box.
+**TUI Commands**: *model.addPoint(Part_doc, model.selection("EDGE", "Box_1_1/Left&Box_1_1/Top"), 0.5, True, False)*
+
+**Arguments**: Part + edge + value + is by ratio flag + to reverce flag.
+
+By projection on edge or plane
+""""""""""""""""""""""""""""""
+
.. image:: images/Point3.png
:align: center
In this case user has to select an existing point or vertex and an edge or face. The new point will be created by projection of the selected point on the edge or face.
+**TUI Commands**: *model.addPoint(Part_doc, model.selection("VERTEX", "Box_1_1/Front&Box_1_1/Left&Box_1_1/Top"), model.selection("EDGE", "Box_1_1/Right&Box_1_1/Top"))*
+
+**Arguments**: Part + vertex + edge (or plane).
+
+By intersection of objects
+""""""""""""""""""""""""""
+
.. image:: images/Point4.png
:align: center
The new point will be defined by intersection of selected objects.
+**TUI Commands**: *model.addPoint(Part_doc, model.selection("EDGE", "Box_1_1/Front&Box_1_1/Top"), model.selection("FACE", "Box_1_1/Left"), 10, False)*
+
+**Arguments**: Part + edge + plane (planar face) + offset value + is offcet reversed.
+
+By geometrical property of object
+"""""""""""""""""""""""""""""""""
+
.. image:: images/Point5.png
:align: center
In this case the new point can be defined as a center of gravity of selected object or as a center of a circle. User has to select desirable object.
-**TUI Commands**:
+**TUI Commands**: *model.addPoint(Part_1_doc, model.selection("SOLID", "Box_1_1"))*
+
+**Arguments**: Part + solid
-#. *model.addPoint(Part_doc, 50, 50, 50)* **Arguments**: Part + 3 values (X, Y, Z coordinates).
-#. *model.addPoint(Part_doc, model.selection("EDGE", "Box_1_1/Left&Box_1_1/Top"), 0.5, True, False)* **Arguments**: Part + edge + value + is by ratio flag + to reverce flag.
-#. *model.addPoint(Part_doc, model.selection("VERTEX", "Box_1_1/Front&Box_1_1/Left&Box_1_1/Top"), model.selection("EDGE", "Box_1_1/Right&Box_1_1/Top"))* **Arguments**: Part + vertex + edge (or plane).
-#. *model.addPoint(Part_doc, model.selection("EDGE", "Box_1_1/Front&Box_1_1/Top"), model.selection("FACE", "Box_1_1/Left"), 10, False)* **Arguments**: Part + edge + plane (planar face) + offset value + is offcet reversed.
-#. *model.addPoint(Part_1_doc, model.selection("SOLID", "Box_1_1"))* **Arguments**: Part + solid
+Result
+""""""
The Result of the operation will be a construction point: