Salome HOME
Task 2.12. New entities: ellipses and arcs of ellipses (issue #3003)
[modules/shaper.git] / src / SketchPlugin / plugin-Sketch.xml
index 366b8b63b8f8bafc4f8ca50b51e19149e1e3d194..e26d1dd44fd905ac9059a3dbc2b1f8a0c2d84273 100644 (file)
@@ -1,24 +1,3 @@
-<!--
-Copyright (C) 2014-2017  CEA/DEN, EDF R&D
-
-This library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Lesser General Public
-License as published by the Free Software Foundation; either
-version 2.1 of the License, or (at your option) any later version.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public
-License along with this library; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-See http:##www.salome-platform.org/ or
-email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com>
--->
-
 <plugin>
   <workbench id="Sketch">
     <group id="Linear geometry">
@@ -26,6 +5,7 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
         id="Sketch"
         nested="SketchPoint SketchIntersectionPoint SketchLine
                 SketchCircle SketchMacroCircle SketchArc SketchMacroArc
+                SketchEllipse SketchMacroEllipse
                 SketchRectangle
                 SketchProjection
                 SketchConstraintLength SketchConstraintRadius SketchConstraintDistance SketchConstraintDistanceHorizontal SketchConstraintDistanceVertical
@@ -40,8 +20,9 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
         when_nested="accept abort"
         title="Sketch"
         tooltip="Create sketch"
-        icon="icons/Sketch/sketch.png">
-        <sketch-start-label id="External" title="Select a plane on which to create a sketch" tooltip="Select a plane on which to create a sketch">
+        icon="icons/Sketch/sketch.png"
+        helpfile="SketchPlugin.html">
+        <sketch-start-label id="External" geometrical_selection="true" title="Select a plane on which to create a sketch" tooltip="Select a plane on which to create a sketch">
           <validator id="GeomValidators_Face" parameters="plane"/>
         </sketch-start-label>
         <label id="SolverDOF"/>
@@ -50,14 +31,16 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
       </feature>
 
       <!-- SketchPoint -->
-      <feature id="SketchPoint" title="Point" tooltip="Create point" icon="icons/Sketch/point.png">
+      <feature id="SketchPoint" title="Point" tooltip="Create point" icon="icons/Sketch/point.png"
+                helpfile="pointFeature.html">
         <sketch-2dpoint_selector id="PointCoordinates" accept_expressions="0" title="Point" tooltip="Point coordinates"
                                  enable_value="enable_by_preferences"/>
         <boolvalue id="Auxiliary" label="Auxiliary" default="false" tooltip="Construction element" obligatory="0"/>
       </feature>
 
       <!-- SketchLine -->
-      <feature id="SketchLine" title="Line" tooltip="Create line" icon="icons/Sketch/line.png">
+      <feature id="SketchLine" title="Line" tooltip="Create line" icon="icons/Sketch/line.png"
+               helpfile="lineFeature.html">
         <sketch-2dpoint_selector id="StartPoint" accept_expressions="0" title="Start point" tooltip="Start point coordinates"
                                  enable_value="enable_by_preferences"/>
         <sketch-2dpoint_selector id="EndPoint" accept_expressions="0" title="End point" tooltip="End point coordinates"
@@ -94,7 +77,8 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
       <feature id="SketchMacroCircle"
                icon="icons/Sketch/circle.png"
                title="Circle"
-               tooltip="Create circle">
+               tooltip="Create circle"
+               helpfile="circleFeature.html">
         <toolbox id="circle_type" modified_in_edit="edit_circle_type">
           <box id="circle_type_by_center_and_passed_points"
                icon="icons/Sketch/circle_pt_rad_32x32.png"
@@ -213,7 +197,8 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
         id="SketchMacroArc"
         title="Arc"
         tooltip="Create arc"
-        icon="icons/Sketch/arc.png">
+        icon="icons/Sketch/arc.png"
+        helpfile="arcFeature.html">
         <toolbox id="arc_type" modified_in_edit="edit_arc_type">
           <box id="by_center_and_points"
                icon="icons/Sketch/arc_base_32x32.png"
@@ -288,6 +273,24 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
               <validator id="SketchPlugin_ArcEndPointValidator" parameters="end_point_ref"/>
             </sketch-2dpoint_selector>
           </box>
+          <box id="by_transversal_line"
+               icon="icons/Sketch/arc_perp_32x32.png"
+               title="Perpendicular to line">
+            <sketch_shape_selector id="tangent_point"
+                                   label="Transversal point"
+                                   tooltip="Select point on line"
+                                   shape_types="vertex">
+              <validator id="SketchPlugin_ArcTransversalPoint"/>
+            </sketch_shape_selector>
+            <sketch-2dpoint_selector id="end_point_3"
+                                     reference_attribute="end_point_ref"
+                                     title="End point"
+                                     tooltip="End point"
+                                     accept_expressions="0"
+                                     enable_value="enable_by_preferences">
+              <validator id="SketchPlugin_ArcEndPointValidator" parameters="end_point_ref"/>
+            </sketch-2dpoint_selector>
+          </box>
         </toolbox>
         <labelvalue id="radius"
                     icon="icons/Sketch/radius.png"
@@ -317,8 +320,9 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
       <!--  SketchFillet  -->
       <feature id="SketchFillet"
                title="Fillet"
-               tooltip="Create constraint defining fillet between two objects"
-               icon="icons/Sketch/fillet.png">
+               tooltip="Create constraint defining fillet between two connected segments"
+               icon="icons/Sketch/fillet.png"
+               helpfile="filletFeature.html">
         <sketch_shape_selector id="fillet_point"
                                label="Point"
                                tooltip="Select point for fillet (should be shared by two entities only)"
@@ -330,7 +334,8 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
       <!--  SketchSplit  -->
       <feature id="SketchSplit" title="Split"
                tooltip="Cut selected segment arc or circle on existing coincident points"
-               icon="icons/Sketch/split.png">
+               icon="icons/Sketch/split.png"
+               helpfile="splitFeature.html">
         <sketch_feature_point_selector
             id="SelectedObject"
             selection_attributes="SelectedObject SelectedPoint PreviewObject PreviewPoint"
@@ -345,7 +350,8 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
       <!--  SketchTrim  -->
       <feature id="SketchTrim" title="Trim"
                tooltip="Trim selected segment arc or circle on intersection points nearest to the graphic selection"
-               icon="icons/Sketch/trim.png">
+               icon="icons/Sketch/trim.png"
+               helpfile="trimFeature.html">
         <sketch_feature_point_selector
             id="SelectedObject"
             selection_attributes="SelectedObject SelectedPoint PreviewObject PreviewPoint"
@@ -359,7 +365,6 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
       </feature>
     </group>
 
-<excluded>
     <group id="Elliptic geometry">
       <!-- SketchEllipse is a hidden feature. It is created inside SketchMacroEllipse. -->
       <feature id="SketchEllipse"
@@ -372,13 +377,38 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
                                  tooltip="Center coordinates"
                                  accept_expressions="0"
                                  enable_value="enable_by_preferences"/>
-        <sketch-2dpoint_selector id="ellipse_focus"
-                                 title="Focus"
+        <sketch-2dpoint_selector id="ellipse_first_focus"
+                                 title="First focus"
+                                 tooltip="Focus coordinates"
+                                 accept_expressions="0"
+                                 enable_value="enable_by_preferences"/>
+        <sketch-2dpoint_selector id="ellipse_second_focus"
+                                 title="Second focus"
                                  tooltip="Focus coordinates"
                                  accept_expressions="0"
                                  enable_value="enable_by_preferences"/>
+        <sketch-2dpoint_selector id="ellipse_major_axis_start_point"
+                                 title="Major axis start"
+                                 tooltip="Coordinates of point on negative direction of major axis"
+                                 accept_expressions="0"
+                                 enable_value="enable_by_preferences"/>
+        <sketch-2dpoint_selector id="ellipse_major_axis_end_point"
+                                 title="Major axis end"
+                                 tooltip="Coordinates of point on positive direction of major axis"
+                                 accept_expressions="0"
+                                 enable_value="enable_by_preferences"/>
+        <sketch-2dpoint_selector id="ellipse_minor_axis_start_point"
+                                 title="Minor axis start"
+                                 tooltip="Coordinates of point on negative direction of minor axis"
+                                 accept_expressions="0"
+                                 enable_value="enable_by_preferences"/>
+        <sketch-2dpoint_selector id="ellipse_minor_axis_end_point"
+                                 title="Minor axis end"
+                                 tooltip="Coordinates of point on positive direction of minor axis"
+                                 accept_expressions="0"
+                                 enable_value="enable_by_preferences"/>
         <labelvalue id="ellipse_major_radius"
-                    icon="icons/Sketch/radius.png"
+                    icon="icons/Sketch/radius_major.png"
                     label="Major radius:"
                     tooltip="Set major radius"
                     default="computed"
@@ -386,7 +416,7 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
                     enable_value="enable_by_preferences">
         </labelvalue>
         <labelvalue id="ellipse_minor_radius"
-                    icon="icons/Sketch/radius.png"
+                    icon="icons/Sketch/radius_minor.png"
                     label="Minor radius:"
                     tooltip="Set minor radius"
                     default="computed"
@@ -399,30 +429,59 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
       <feature id="SketchMacroEllipse"
                icon="icons/Sketch/ellipse.png"
                title="Ellipse"
-               tooltip="Create ellipse">
-        <sketch-2dpoint_selector id="center_point"
-                                 reference_attribute="center_point_ref"
-                                 title="Center point"
-                                 tooltip="Center point coordinates"
-                                 accept_expressions="0"
-                                 enable_value="enable_by_preferences"/>
-        <sketch-2dpoint_selector id="major_axis_point"
-                                 reference_attribute="major_axis_point_ref"
-                                 title="Major axis point"
-                                 tooltip="Major axis point coordinates"
-                                 accept_expressions="0"
-                                 enable_value="enable_by_preferences"/>
-        <sketch-2dpoint_selector id="passed_point"
-                                 reference_attribute="passed_point_ref"
-                                 title="Passed point"
-                                 tooltip="Passed point coordinates"
-                                 accept_expressions="0"
-                                 enable_value="enable_by_preferences">
-<!--          <validator id="SketchPlugin_CirclePassedPointValidator"/> -->
-        </sketch-2dpoint_selector>
+               tooltip="Create ellipse"
+               helpfile="ellipseFeature.html">
+        <toolbox id="ellipse_type" modified_in_edit="edit_ellipse_type">
+          <box id="by_center_axis_point"
+               icon="icons/Sketch/ellipse_cent_rad_32x32.png"
+               title="Center, major semi-axis and passing point">
+            <sketch-2dpoint_selector id="first_point"
+                                     reference_attribute="first_point_ref"
+                                     title="Center point"
+                                     tooltip="Center point coordinates"
+                                     accept_expressions="0"
+                                     enable_value="enable_by_preferences"/>
+            <sketch-2dpoint_selector id="second_point"
+                                     reference_attribute="second_point_ref"
+                                     title="Major axis point"
+                                     tooltip="Major axis point coordinates"
+                                     accept_expressions="0"
+                                     enable_value="enable_by_preferences"/>
+            <sketch-2dpoint_selector id="passed_point"
+                                     reference_attribute="passed_point_ref"
+                                     title="Passed point"
+                                     tooltip="Passed point coordinates"
+                                     accept_expressions="0"
+                                     enable_value="enable_by_preferences">
+              <!--          <validator id="SketchPlugin_CirclePassedPointValidator"/> -->
+            </sketch-2dpoint_selector>
+          </box>
+          <box id="by_major_axis_and_point"
+               icon="icons/Sketch/ellipse_axes_32x32.png"
+               title="Major axis and passing point">
+            <sketch-2dpoint_selector id="first_point"
+                                     reference_attribute="first_point_ref"
+                                     title="Major axis start point"
+                                     tooltip="Major axis start point coordinates"
+                                     accept_expressions="0"
+                                     enable_value="enable_by_preferences"/>
+            <sketch-2dpoint_selector id="second_point"
+                                     reference_attribute="second_point_ref"
+                                     title="Major axis end point"
+                                     tooltip="Major axis end point coordinates"
+                                     accept_expressions="0"
+                                     enable_value="enable_by_preferences"/>
+            <sketch-2dpoint_selector id="passed_point"
+                                     reference_attribute="passed_point_ref"
+                                     title="Passed point"
+                                     tooltip="Passed point coordinates"
+                                     accept_expressions="0"
+                                     enable_value="enable_by_preferences"/>
+          </box>
+        </toolbox>
 <!--        <validator id="GeomValidators_Different" parameters="center_point_ref,passed_point_ref"/> -->
-        <labelvalue id="ellipse_major_radius"
-                    icon="icons/Sketch/radius.png"
+        <labelvalue id="major_radius"
+                    icon="icons/Sketch/radius_major.png"
                     label="Major radius:"
                     tooltip="Set major radius"
                     default="computed"
@@ -431,8 +490,8 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
                     enable_value="enable_by_preferences">
           <validator id="GeomValidators_Positive"/>
         </labelvalue>
-        <labelvalue id="ellipse_minor_radius"
-                    icon="icons/Sketch/radius.png"
+        <labelvalue id="minor_radius"
+                    icon="icons/Sketch/radius_minor.png"
                     label="Minor radius:"
                     tooltip="Set minor radius"
                     default="computed"
@@ -448,33 +507,15 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
                    obligatory="0"/>
       </feature>
     </group>
-</excluded>
 
     <group id="Projection">
-      <!-- Intersection Point -->
-      <!-- feature
-        id="SketchIntersectionPoint"
-        title="Intersection Point"
-        tooltip="Create intersection point"
-        icon="icons/Sketch/intersection_point.png">
-        <sketch_shape_selector
-              id="ExternalLine"
-              label="Edge"
-              tooltip="Select external line."
-              shape_types="edge"
-              use_external="false"
-              use_sketch_plane="false">
-          <validator id="GeomValidators_ShapeType" parameters="line"/>
-          <validator id="SketchPlugin_IntersectionValidator"/>
-        </sketch_shape_selector>
-      </feature -->
-
       <!-- Projected feature -->
       <feature
         id="SketchProjection"
         title="Projection"
         tooltip="Project feature onto sketch plane"
-        icon="icons/Sketch/projection.png">
+        icon="icons/Sketch/projection.png"
+        helpfile="projectionFeature.html">
         <sketch_shape_selector
               id="ExternalFeature"
               label="Object"
@@ -488,6 +529,27 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
         <boolvalue id="IncludeToResult" label="Include into the sketch result" default="true" tooltip="Include projected feature into the sketch result"/>
         <validator id="PartSet_ProjectionSelection"/>
       </feature>
+
+      <!-- Intersection Point -->
+      <feature
+        id="SketchIntersectionPoint"
+        title="Intersection"
+        tooltip="Intersect edge with sketch plane"
+        icon="icons/Sketch/intersection.png"
+        helpfile="intersectionFeature.html">
+        <sketch_shape_selector
+              id="ExternalFeature"
+              label="Object"
+              tooltip="Select external edge."
+              shape_types="edge"
+              use_external="true"
+              can_create_external="false"
+              use_sketch_plane="false">
+          <validator id="SketchPlugin_IntersectionValidator"/>
+        </sketch_shape_selector>
+        <boolvalue id="IncludeToResult" label="Include into the sketch result" default="true" tooltip="Include projected feature into the sketch result"/>
+        <validator id="PartSet_IntersectionSelection"/>
+      </feature>
     </group>
 
     <group id="Replication">
@@ -495,7 +557,8 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
       <feature
         id="SketchConstraintMirror"
         title="Mirror copy" icon="icons/Sketch/mirror.png"
-        tooltip="Create constraint, mirroring group of objects">
+        tooltip="Create constraint, mirroring group of objects"
+        helpfile="mirrorFeature.html">
         <sketch_shape_selector id="ConstraintEntityA"
             label="Mirror line" tooltip="Select mirror line" shape_types="edge">
           <validator id="GeomValidators_ShapeType" parameters="line"/>
@@ -504,7 +567,7 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
         <sketch_multi_selector id="ConstraintMirrorList"
             label="Segments:"
             tooltip="Select list of objects to be mirrored"
-            type_choice="Edges"
+            shape_types="Edges"
             use_external="true"
             greed ="true">
           <validator id="SketchPlugin_MirrorAttr" />
@@ -516,11 +579,12 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
       <feature
         id="SketchMultiTranslation"
         title="Linear copy" icon="icons/Sketch/translate.png"
-        tooltip="Copy objects and move">
+        tooltip="Copy objects and move"
+        helpfile="translationFeature.html">
         <sketch_multi_selector id="MultiTranslationList"
             label="Segments:"
             tooltip="Select list of objects to be translated"
-            type_choice="Edges"
+            shape_types="Edges"
             use_external="true"
             greed ="true">
           <validator id="SketchPlugin_CopyValidator" />
@@ -584,11 +648,12 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
       <feature
         id="SketchMultiRotation"
         title="Angular copy" icon="icons/Sketch/rotate.png"
-        tooltip="Copy objects and rotate">
+        tooltip="Copy objects and rotate"
+        helpfile="rotationFeature.html">
         <sketch_multi_selector id="MultiRotationList"
             label="Segments:"
             tooltip="Select list of objects to be rotated"
-            type_choice="Edges"
+            shape_types="Edges"
             use_external="true"
             greed ="true">
           <validator id="SketchPlugin_CopyValidator" />
@@ -602,12 +667,12 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
           <validator id="SketchPlugin_ReplicationReference" parameters="ConstraintEntityB"/>
         </sketch_shape_selector>
         <toolbox id="AngleType">
-          <box id="SingleAngle" title="Single angle" icon="icons/Sketch/angle_up_32x32.png">
+          <box id="FullAngle" title="Full angle" icon="icons/Sketch/angle_up_full_32x32.png">
             <doublevalue id="MultiRotationAngle"
                          label="Angle"
                          icon="icons/Sketch/angle.png"
                          tooltip="Rotation angle"
-                         default="90" min="0" max="360"
+                         default="360" min="0" max="360"
                          use_reset="false">
               <validator id="SketchPlugin_MultiRotationAngleValidator" />
             </doublevalue>
@@ -617,7 +682,7 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
                        default="false"
                        obligatory="0"/>
           </box>
-          <box id="FullAngle" title="Full angle" icon="icons/Sketch/angle_up_full_32x32.png">
+          <box id="SingleAngle" title="Single angle" icon="icons/Sketch/angle_up_32x32.png">
             <doublevalue id="MultiRotationAngle"
                          label="Angle"
                          icon="icons/Sketch/angle.png"
@@ -636,7 +701,7 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
         <integervalue id="MultiRotationObjects"
             label="Total number of objects"
             tooltip="Total number of objects"
-            default="2" min="2" use_reset="false">
+            default="4" min="2" use_reset="false">
           <validator id="GeomValidators_Positive" parameters="1"/>
         </integervalue>
         <validator id="PartSet_MultyTranslationSelection" />
@@ -644,12 +709,13 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
     </group>
 
     <group id="Dimensional constraints">
-    <!--  SketchConstraintDistance  -->
+      <!--  SketchConstraintDistance  -->
       <feature
         id="SketchConstraintDistance"
         title="Distance"
         tooltip="Set fixed distance from a point to an object"
-        icon="icons/Sketch/distance.png">
+        icon="icons/Sketch/distance.png"
+        helpfile="distanceFeature.html">
         <label title="Select objects for distance definition. Following objects can be accepted: point, line or arc end point, center of circle or arc."/>
         <sketch_shape_selector
               id="ConstraintEntityA"
@@ -697,7 +763,8 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
         id="SketchConstraintDistanceHorizontal"
         title="Horizontal Distance"
         tooltip="Set horizontal distance between two points"
-        icon="icons/Sketch/distance_h.png">
+        icon="icons/Sketch/distance_h.png"
+        helpfile="horizontalDistFeature.html">
         <label title="Select points for distance definition."/>
         <sketch_shape_selector
               id="ConstraintEntityA"
@@ -741,7 +808,8 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
         id="SketchConstraintDistanceVertical"
         title="Vertical Distance"
         tooltip="Set vertical distance between two points"
-        icon="icons/Sketch/distance_v.png">
+        icon="icons/Sketch/distance_v.png"
+        helpfile="verticalDistFeature.html">
         <label title="Select points for distance definition."/>
         <sketch_shape_selector
               id="ConstraintEntityA"
@@ -781,7 +849,8 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
       </feature>
 
       <!--  SketchConstraintLength  -->
-      <feature id="SketchConstraintLength" title="Length" tooltip="Set fixed length of a line segment" icon="icons/Sketch/length.png">
+      <feature id="SketchConstraintLength" title="Length" tooltip="Set fixed length of a line segment" icon="icons/Sketch/length.png"
+               helpfile="lengthFeature.html">
         <label title="Select a line on which to calculate length" tooltip="Select a line on which to calculate length"/>
         <shape_selector id="ConstraintEntityA" label="Line" tooltip="Select a line" shape_types="edge" >
           <validator id="GeomValidators_ShapeType" parameters="line"/>
@@ -804,7 +873,8 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
       </feature>
 
       <!--  SketchConstraintAngle  -->
-      <feature id="SketchConstraintAngle" title="Angle" tooltip="Set fixed angle between two line segments" icon="icons/Sketch/angle_constr.png">
+      <feature id="SketchConstraintAngle" title="Angle" tooltip="Set fixed angle between two line segments" icon="icons/Sketch/angle_constr.png"
+               helpfile="angleFeature.html">
         <sketch_shape_selector id="ConstraintEntityA" label="Line 1" tooltip="Select a line" shape_types="edge" >
           <validator id="GeomValidators_ShapeType" parameters="line"/>
           <validator id="PartSet_DifferentObjects"/>
@@ -841,7 +911,8 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
       </feature>
 
       <!--  SketchConstraintRadius  -->
-      <feature id="SketchConstraintRadius" title="Radius" tooltip="Set fixed radius of a circle or an arc" icon="icons/Sketch/radius_constr.png">
+      <feature id="SketchConstraintRadius" title="Radius" tooltip="Set fixed radius of a circle or an arc" icon="icons/Sketch/radius_constr.png"
+               helpfile="radiusFeature.html">
         <label title="Select a circle or an arc on which to calculate radius" tooltip="Select a circle or an arc on which to calculate radius"/>
         <shape_selector id="ConstraintEntityA" label="Circle or Arc" tooltip="Select a circle or an arc"
             shape_types="edge">
@@ -870,7 +941,8 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
     <group id="Geometrical constraints">
 
       <!--  SketchConstraintHorizontal  -->
-      <feature id="SketchConstraintHorizontal" title="Horizontal" tooltip="Create constraint defining horizontal line" icon="icons/Sketch/horisontal.png">
+      <feature id="SketchConstraintHorizontal" title="Horizontal" tooltip="Create constraint defining horizontal line" icon="icons/Sketch/horisontal.png"
+               helpfile="horizontalFeature.html">
         <sketch_shape_selector id="ConstraintEntityA"
             label="Line" tooltip="Select a line" shape_types="edge" use_external="false">
           <validator id="GeomValidators_ShapeType" parameters="line"/>
@@ -880,7 +952,8 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
       </feature>
 
       <!--  SketchConstraintVertical  -->
-      <feature id="SketchConstraintVertical" title="Vertical" tooltip="Create constraint defining vertical line" icon="icons/Sketch/vertical.png">
+      <feature id="SketchConstraintVertical" title="Vertical" tooltip="Create constraint defining vertical line" icon="icons/Sketch/vertical.png"
+               helpfile="verticalFeature.html">
         <sketch_shape_selector id="ConstraintEntityA"
             label="Line" tooltip="Select a line" shape_types="edge" use_external="false">
           <validator id="GeomValidators_ShapeType" parameters="line"/>
@@ -890,7 +963,8 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
       </feature>
 
       <!--  SketchConstraintRigid  -->
-      <feature id="SketchConstraintRigid" title="Fixed" tooltip="Fix an object" icon="icons/Sketch/fixed.png">
+      <feature id="SketchConstraintRigid" title="Fixed" tooltip="Fix an object" icon="icons/Sketch/fixed.png"
+               helpfile="rigidFeature.html">
         <sketch_shape_selector id="ConstraintEntityA" label="Object"
                         tooltip="Select point, line end point, line, center of circle or arc."
                         shape_types="edge vertex">
@@ -902,7 +976,7 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
 
       <!--  SketchConstraintParallel  -->
       <feature id="SketchConstraintParallel" title="Parallel" tooltip="Create constraint defining two parallel lines"
-               icon="icons/Sketch/parallel.png">
+               icon="icons/Sketch/parallel.png" helpfile="parallelFeature.html">
         <sketch_shape_selector id="ConstraintEntityA"
             label="First line" tooltip="Select a line" shape_types="edge">
           <validator id="GeomValidators_ShapeType" parameters="line"/>
@@ -919,30 +993,34 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
         <validator id="PartSet_ParallelSelection"/>
       </feature>
 
-    <!--  SketchConstraintPerpendicular  -->
+      <!--  SketchConstraintPerpendicular  -->
       <feature id="SketchConstraintPerpendicular" title="Perpendicular"
-        tooltip="Create constraint defining two perpendicular lines"
-        icon="icons/Sketch/perpendicular.png">
+               tooltip="Create constraint defining two orthogonal objects"
+               icon="icons/Sketch/perpendicular.png"
+               helpfile="perpendicularFeature.html">
         <sketch_shape_selector id="ConstraintEntityA"
-            label="First line" tooltip="Select a line"
+            label="First object" tooltip="Select line or arc"
             shape_types="edge">
           <validator id="PartSet_DifferentObjects"/>
           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
-            <validator id="GeomValidators_ShapeType" parameters="line"/>
+          <validator id="SketchPlugin_PerpendicularAttr" parameters="ConstraintEntityB"/>
+          <validator id="GeomValidators_ShapeType" parameters="line,circle"/>
         </sketch_shape_selector>
 
         <sketch_shape_selector id="ConstraintEntityB"
-            label="Second line" tooltip="Select a line"
+            label="Second object" tooltip="Select line or arc"
             shape_types="edge">
-            <validator id="PartSet_DifferentObjects"/>
+          <validator id="PartSet_DifferentObjects"/>
           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
-            <validator id="GeomValidators_ShapeType" parameters="line"/>
+          <validator id="SketchPlugin_PerpendicularAttr" parameters="ConstraintEntityA"/>
+          <validator id="GeomValidators_ShapeType" parameters="line,circle"/>
         </sketch_shape_selector>
         <validator id="PartSet_PerpendicularSelection"/>
       </feature>
 
       <!--  SketchConstraintTangent  -->
-      <feature id="SketchConstraintTangent" title="Tangent" tooltip="Create constraint defining tangency of two objects with common coincident point" icon="icons/Sketch/tangent.png">
+      <feature id="SketchConstraintTangent" title="Tangent" tooltip="Create constraint defining tangency of two segments with common coincident point" icon="icons/Sketch/tangent.png"
+               helpfile="tangentFeature.html">
         <sketch_shape_selector id="ConstraintEntityA"
             label="First object" tooltip="Select line or arc" shape_types="edge">
           <validator id="SketchPlugin_TangentAttr" parameters="ConstraintEntityB"/>
@@ -958,7 +1036,8 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
       </feature>
 
       <!--  SketchConstraintCoincidence  -->
-      <feature id="SketchConstraintCoincidence" title="Coincident" tooltip="Create constraint for the coincidence of two points or point on line or circle" icon="icons/Sketch/coincedence.png">
+      <feature id="SketchConstraintCoincidence" title="Coincident" tooltip="Create constraint for the coincidence of two points or point on line or circle" icon="icons/Sketch/coincedence.png"
+               helpfile="coincedenceFeature.html">
         <sketch_shape_selector id="ConstraintEntityA" label="First object" tooltip="Select a first object" shape_types="vertex edge">
           <validator id="PartSet_DifferentObjects"/>
           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
@@ -972,7 +1051,9 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
       </feature>
 
       <!--  SketchConstraintMiddle  -->
-      <feature id="SketchConstraintMiddle" title="Middle point" tooltip="Create constraint for setting middle point on a line" icon="icons/Sketch/middlepoint.png">
+      <feature id="SketchConstraintMiddle" title="Middle point" tooltip="Create constraint for setting middle point on a line"
+               icon="icons/Sketch/middlepoint.png"
+               helpfile="middleFeature.html">
         <sketch_shape_selector id="ConstraintEntityA" label="First object" tooltip="Select a first object" shape_types="vertex edge">
           <validator id="PartSet_DifferentObjects"/>
           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
@@ -989,7 +1070,8 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
       <!--  SketchConstraintEqual  -->
       <feature id="SketchConstraintEqual" title="Equal"
         tooltip="Create constraint defining equal lengths of two lines or line and arc or equal radii of two arcs or two circles or arc and circle"
-        icon="icons/Sketch/equal.png">
+        icon="icons/Sketch/equal.png"
+               helpfile="equalFeature.html">
         <sketch_shape_selector id="ConstraintEntityA"
             label="First object" tooltip="Select line, circle or arc" shape_types="edge">
           <validator id="PartSet_DifferentObjects"/>
@@ -1005,8 +1087,10 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
         <validator id="PartSet_EqualSelection"/>
       </feature>
 
-    <!--  SketchConstraintCollinear  -->
-      <feature id="SketchConstraintCollinear" title="Collinear" tooltip="Create constraint defining collinearity of two lines" icon="icons/Sketch/collinear.png">
+      <!--  SketchConstraintCollinear  -->
+      <feature id="SketchConstraintCollinear" title="Collinear" tooltip="Create constraint defining collinearity of two lines"
+               icon="icons/Sketch/collinear.png"
+               helpfile="collinearFeature.html">
         <sketch_shape_selector id="ConstraintEntityA"
             label="First line" tooltip="Select a line" shape_types="edge">
           <validator id="GeomValidators_ShapeType" parameters="line"/>
@@ -1020,8 +1104,6 @@ email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com
         </sketch_shape_selector>
         <validator id="PartSet_CollinearSelection"/>
       </feature>
-
     </group>
-
   </workbench>
 </plugin>