Salome HOME
"2.11 Constraint with a point from the intersection between an outer edge and plane...
[modules/shaper.git] / src / SketchPlugin / plugin-Sketch.xml
index 1e3c29cd7b47b07ddfa70d722986caecb9f597f6..c654a5535eda30e6b26869e306c6970713a4744e 100644 (file)
@@ -5,7 +5,7 @@
     <group id="Basic">
       <feature
         id="Sketch"
-        nested="SketchPoint SketchLine SketchCircle SketchArc SketchConstraintLength SketchConstraintRadius SketchConstraintDistance SketchConstraintParallel SketchConstraintPerpendicular SketchConstraintRigid SketchConstraintHorizontal SketchConstraintVertical SketchConstraintEqual SketchConstraintTangent SketchConstraintFillet SketchConstraintCoincidence SketchConstraintMirror SketchConstraintAngle SketchMultiRotation SketchMultiTranslation"
+        nested="SketchPoint SketchIntersectionPoint SketchLine SketchCircle SketchArc SketchRectangle SketchConstraintLength SketchConstraintRadius SketchConstraintDistance SketchConstraintParallel SketchConstraintPerpendicular SketchConstraintRigid SketchConstraintHorizontal SketchConstraintVertical SketchConstraintEqual SketchConstraintTangent SketchConstraintFillet SketchConstraintCoincidence SketchConstraintMirror SketchConstraintAngle SketchMultiRotation SketchMultiTranslation SketchConstraintCollinear SketchConstraintMiddle"
         when_nested="accept abort"
         title="Sketch"
         tooltip="Create sketch"
         <validator id="SketchPlugin_SolverErrorValidator"/>
       <!--icon=":pictures/x_point.png"-->
       </feature>
+
+      <!-- SketchPoint -->
       <feature id="SketchPoint" title="Point" tooltip="Create point" icon=":icons/point.png">
-        <sketch-2dpoint_selector id="PointCoordinates" title="Point" tooltip="Point coordinates"/>
+        <sketch-2dpoint_selector id="PointCoordindates" accept_expressions="0" title="Point" tooltip="Point coordinates"/>
         <boolvalue id="Auxiliary" label="Auxiliary" default="false" tooltip="Construction element" obligatory="0"/>
       </feature>
+      
+      <!-- Intersection Point -->
+      <feature
+        id="SketchIntersectionPoint"
+        title="Intersection Point"
+        tooltip="Create intersection point"
+        icon=":icons/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>
+      
+      <!-- SketchLine -->
       <feature id="SketchLine" title="Line" tooltip="Create line" icon=":icons/line.png">
-        <sketch-2dpoint_selector id="StartPoint" title="Start point" tooltip="Start point coordinates" previous_feature_param="EndPoint"/>
-        <sketch-2dpoint_selector id="EndPoint" title="End point" tooltip="End point coordinates"/>
+        <sketch-2dpoint_selector id="StartPoint" accept_expressions="0" title="Start point" tooltip="Start point coordinates" previous_feature_param="EndPoint"/>
+        <sketch-2dpoint_selector id="EndPoint" accept_expressions="0" title="End point" tooltip="End point coordinates"/>
         <boolvalue id="Auxiliary" label="Auxiliary" default="false" tooltip="Construction element" obligatory="0"/>
         <validator id="GeomValidators_Different" parameters="StartPoint,EndPoint"/>
       </feature>
-      <feature id="SketchCircle" title="Circle" tooltip="Create circle" icon=":icons/circle.png">
-        <sketch-2dpoint_selector id="CircleCenter" title="Center" tooltip="Center coordinates"/>
-        <point2ddistance id="CircleRadius" first_point="CircleCenter" label="Radius:" min="0" step="1.0" default="0" icon=":icons/radius.png" tooltip="Set radius">
-          <validator id="GeomValidators_Positive"/>
-        </point2ddistance>
-        <boolvalue id="Auxiliary" label="Auxiliary" default="false" tooltip="Construction element" obligatory="0"/>
+
+      <!-- SketchCircle -->
+      <feature 
+        id="SketchCircle"
+        title="Circle"
+        tooltip="Create circle"
+        icon=":icons/circle.png">
+        <toolbox id="CircleType">
+          <box id="CenterRadius" title="Center and radius" icon=":icons/circle_pt_rad_32x32.png">
+            <sketch-2dpoint_selector id="CircleCenter" accept_expressions="0" title="Center" tooltip="Center coordinates"/>
+            <point2ddistance id="CircleRadius" accept_expressions="0" first_point="CircleCenter" label="Radius:" min="0" step="1.0" default="0" icon=":icons/radius.png" tooltip="Set radius">
+              <validator id="GeomValidators_Positive"/>
+            </point2ddistance>
+            <boolvalue id="Auxiliary" label="Auxiliary" default="false" tooltip="Construction element" obligatory="0"/>
+          </box>
+          <box id="ThreePoints" title="Three points" icon=":icons/circle_3pt_32x32.png">
+            <sketch-2dpoint_selector id="FirstPoint" accept_expressions="0" title="First point" tooltip="First point"/>
+            <sketch-2dpoint_selector id="SecondPoint" accept_expressions="0" title="Second point" tooltip="Second point"/>
+            <sketch-2dpoint_selector id="ThirdPoint" accept_expressions="0" title="Third point" tooltip="Third point"/>
+            <boolvalue id="Auxiliary" label="Auxiliary" default="false" tooltip="Construction element" obligatory="0"/>
+          </box>
+        </toolbox>
       </feature>
-      <feature id="SketchArc" title="Arc" tooltip="Create arc" icon=":icons/arc.png">
-        <sketch-2dpoint_selector id="ArcCenter" title="Center" tooltip="Center of a circle"/>
-        <sketch-2dpoint_selector id="ArcStartPoint" title="Start point" tooltip="Start point"/>
-        <sketch-2dpoint_selector id="ArcEndPoint" title="End point" tooltip="End point"/>
-        <boolvalue id="Auxiliary" label="Auxiliary" default="false" tooltip="Construction element" obligatory="0"/>
-        <validator id="GeomValidators_Different" parameters="ArcCenter,ArcStartPoint,ArcEndPoint"/>
+
+      <!-- SketchArc -->
+      <feature
+        id="SketchArc"
+        title="Arc"
+        tooltip="Create arc"
+        icon=":icons/arc.png">
+        <toolbox id="ArcType">
+          <box id="CenterStartEnd" title="Center and two points" icon=":icons/arc_base_32x32.png">
+            <sketch-2dpoint_selector id="ArcCenter" accept_expressions="0" title="Center" tooltip="Center of a circle"/>
+            <sketch-2dpoint_selector id="ArcStartPoint" accept_expressions="0" title="Start point" tooltip="Start point"/>
+            <sketch-2dpoint_selector id="ArcEndPoint" accept_expressions="0" title="End point" tooltip="End point"/>
+            <boolvalue id="Auxiliary" label="Auxiliary" default="false" tooltip="Construction element" obligatory="0"/>
+            <validator id="GeomValidators_Different" parameters="ArcCenter,ArcStartPoint,ArcEndPoint"/>
+          </box>
+          <box id="ThreePoints" title="Three points on arc" icon=":icons/arc_3pt_32x32.png">
+            <sketch-2dpoint_selector id="ArcStartPoint" accept_expressions="0" title="Start point" tooltip="Start point"/>
+            <sketch-2dpoint_selector id="ArcEndPoint" accept_expressions="0" title="End point" tooltip="End point"/>
+            <sketch-2dpoint_selector id="ArcPassedPoint" accept_expressions="0" title="Passed point" tooltip="Passed point"/>
+            <doublevalue id="ArcRadius" accept_expressions="0" label="Radius:" default="computed" icon=":icons/radius.png" tooltip="Set radius" obligatory="1">
+              <validator id="GeomValidators_Positive"/>
+            </doublevalue>
+            <doublevalue id="ArcAngle" label="Angle:" icon=":icons/angle.png" tooltip="Set angle" default="90" use_reset="false" obligatory="1"/>
+            <boolvalue id="Auxiliary" label="Auxiliary" default="false" tooltip="Construction element" obligatory="0"/>
+            <validator id="GeomValidators_Different" parameters="ArcStartPoint,ArcEndPoint,ArcPassedPoint"/>
+          </box>
+          <box id="Tangent" title="Tangent with edge" icon=":icons/arc_tang_32x32.png">
+            <sketch_shape_selector id="ArcTangentPoint" label="Start point" tooltip="Select point on line" shape_types="vertex">
+              <validator id="SketchPlugin_ArcTangentPoint" parameters="" />
+            </sketch_shape_selector>
+            <sketch-2dpoint_selector id="ArcEndPoint" accept_expressions="0" title="End point" tooltip="End point"/>
+            <doublevalue id="ArcRadius" accept_expressions="0" label="Radius:" default="computed" icon=":icons/radius.png" tooltip="Set radius" obligatory="1">
+              <validator id="GeomValidators_Positive"/>
+            </doublevalue>
+            <doublevalue id="ArcAngle" label="Angle:" icon=":icons/angle.png" tooltip="Set angle" default="90" use_reset="false" obligatory="1"/>
+            <boolvalue id="Auxiliary" label="Auxiliary" default="false" tooltip="Construction element" obligatory="0"/>
+          </box>
+        </toolbox>
+      </feature>
+    </group>
+
+    <group id="Macro">
+      <!--  SketchConstraintFillet  -->
+      <feature id="SketchConstraintFillet" title="Fillet" tooltip="Create constraint defining fillet between two objects" icon=":icons/fillet.png">
+        <!--<sketch_shape_selector id="ConstraintEntityA"
+            label="Point" tooltip="Select point for fillet (should be shared by two entities only)" shape_types="vertex">
+          <validator id="SketchPlugin_FilletVertexValidator"/>
+        </sketch_shape_selector>-->
+        <sketch_multi_selector id="ConstraintEntityA"
+            label="Points:"
+            tooltip="Select points for fillets"
+            type_choice="Vertices">
+          <validator id="SketchPlugin_FilletVertexValidator"/>
+        </sketch_multi_selector>
+        <doublevalue label="Radius" tooltip="Fillet arc radius" id="ConstraintValue" accept_expressions="0" min="0" use_reset="false">
+          <validator id="GeomValidators_Positive"/>
+        </doublevalue>
+        <validator id="PartSet_FilletSelection"/>
       </feature>
     </group>
       
           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
           <validator id="GeomValidators_ShapeType" parameters="vertex,line"/>
         </sketch_shape_selector>
-        <sketch-2dpoint_selector id="ConstraintFlyoutValuePnt"  default="computed" internal="1" obligatory="0"/>
+        <sketch-2dpoint_flyout_selector id="ConstraintFlyoutValuePnt"  default="computed" internal="1" obligatory="0"/>
         
         <doublevalue_editor label="Value" tooltip="Distance" id="ConstraintValue" default="computed" min="0">
           <validator id="GeomValidators_Positive"/>
         <shape_selector id="ConstraintEntityA" label="Line" tooltip="Select an line" shape_types="edge" >
           <validator id="GeomValidators_ShapeType" parameters="line"/>
         </shape_selector>
-        <sketch-2dpoint_selector id="ConstraintFlyoutValuePnt" default="computed" internal="1" obligatory="0"/>
+        <sketch-2dpoint_flyout_selector id="ConstraintFlyoutValuePnt" default="computed" internal="1" obligatory="0"/>
         <doublevalue_editor label="Value" tooltip="Length" id="ConstraintValue" default="computed">
           <validator id="GeomValidators_Positive"/>
         </doublevalue_editor>
             shape_types="edge">
             <validator id="GeomValidators_ShapeType" parameters="circle"/>
         </shape_selector>
-        <sketch-2dpoint_selector id="ConstraintFlyoutValuePnt"  default="computed" internal="1" obligatory="0"/>
+        <sketch-2dpoint_flyout_selector id="ConstraintFlyoutValuePnt"  default="computed" internal="1" obligatory="0"/>
         <doublevalue_editor label="Value" tooltip="Radius" id="ConstraintValue" default="computed">
           <validator id="GeomValidators_Positive"/>
         </doublevalue_editor>
 
       <!--  SketchConstraintAngle  -->
       <feature id="SketchConstraintAngle" title="Angle" tooltip="Set fixed angle between two line segments" icon=":icons/angle_constr.png">
-        <shape_selector id="ConstraintEntityA" label="Line 1" tooltip="Select an line" shape_types="edge" >
+        <sketch_shape_selector id="ConstraintEntityA" label="Line 1" tooltip="Select an line" shape_types="edge" >
           <validator id="GeomValidators_ShapeType" parameters="line"/>
           <validator id="PartSet_DifferentObjects"/>
           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
-        </shape_selector>
-        <shape_selector id="ConstraintEntityB" label="Line 2" tooltip="Select an line" shape_types="edge" >
+        </sketch_shape_selector>
+        <sketch_shape_selector id="ConstraintEntityB" label="Line 2" tooltip="Select an line" shape_types="edge" >
           <validator id="GeomValidators_ShapeType" parameters="line"/>
           <validator id="PartSet_DifferentObjects"/>
           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
-        </shape_selector>
-        <sketch-2dpoint_selector id="ConstraintFlyoutValuePnt"  default="computed" internal="1" obligatory="0"/>
+        </sketch_shape_selector>
+        <sketch-2dpoint_flyout_selector id="ConstraintFlyoutValuePnt"  default="computed" internal="1" obligatory="0"/>
         <doublevalue_editor label="Value" tooltip="Angle" id="ConstraintValue" default="computed" min="0" max="180" />
         <validator id="PartSet_AngleSelection"/>
       </feature>
         <validator id="PartSet_PerpendicularSelection"/>
       </feature>
 
-      <!--  SketchConstraintCoincedence  -->
+      <!--  SketchConstraintCoincidence  -->
       <feature id="SketchConstraintCoincidence" title="Coincident" tooltip="Create constraint for the coincidence of two points or point on line or circle" icon=":icons/coincedence.png">
         <sketch_shape_selector id="ConstraintEntityA" label="First object" tooltip="Select a first object" shape_types="vertex edge">
           <validator id="PartSet_DifferentObjects"/>
           <validator id="PartSet_DifferentObjects"/>
           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
         </sketch_shape_selector>
+        <validator id="PartSet_EqualSelection"/>
       </feature>
       
     <!--  SketchConstraintTangent  -->
       <feature id="SketchConstraintTangent" title="Tangent" tooltip="Create constraint defining tangency of two objects with common coincident point" icon=":icons/tangent.png">
         <sketch_shape_selector id="ConstraintEntityA" 
             label="First object" tooltip="Select line or arc" shape_types="edge">
-          <validator id="PartSet_CoincidentAttr" parameters="ConstraintEntityB"/>
+          <validator id="SketchPlugin_TangentAttr" parameters="ConstraintEntityB"/>
           <validator id="PartSet_DifferentObjects"/>
         </sketch_shape_selector>
         
         <sketch_shape_selector id="ConstraintEntityB"
             label="Second object" tooltip="Select line or arc" shape_types="edge">
-          <validator id="PartSet_CoincidentAttr" parameters="ConstraintEntityA"/>
           <validator id="SketchPlugin_TangentAttr" parameters="ConstraintEntityA"/>
           <validator id="PartSet_DifferentObjects"/>
         </sketch_shape_selector>
         <validator id="PartSet_TangentSelection"/>
       </feature>
-         
-    </group>
-    
-    <group id="Edit">
-      <!--  SketchConstraintFillet  -->
-      <feature id="SketchConstraintFillet" title="Fillet" tooltip="Create constraint defining fillet between two objects" icon=":icons/fillet.png">
+      
+    <!--  SketchConstraintCollinear  -->
+      <feature id="SketchConstraintCollinear" title="Collinear" tooltip="Create constraint defining collinearity of two lines" icon=":icons/collinear.png">
         <sketch_shape_selector id="ConstraintEntityA" 
-            label="First object" tooltip="Select line or arc" shape_types="edge">
+            label="First line" tooltip="Select a line" shape_types="edge">
+          <validator id="GeomValidators_ShapeType" parameters="line"/>
           <validator id="PartSet_DifferentObjects"/>
-          <validator id="PartSet_CoincidentAttr" parameters="ConstraintEntityB"/>
         </sketch_shape_selector>
-
+        
         <sketch_shape_selector id="ConstraintEntityB"
-            label="Second object" tooltip="Select line or arc" shape_types="edge">
+            label="Second line" tooltip="Select a line" shape_types="edge">
+          <validator id="GeomValidators_ShapeType" parameters="line"/>
           <validator id="PartSet_DifferentObjects"/>
-          <validator id="PartSet_CoincidentAttr" parameters="ConstraintEntityA"/>
         </sketch_shape_selector>
+        <validator id="PartSet_CollinearSelection"/>
+      </feature>
 
-        <doublevalue label="Value" tooltip="Fillet radius" id="ConstraintValue" min="0" default="1" use_reset="false">
-          <validator id="GeomValidators_Positive"/>
-        </doublevalue>
-        <validator id="PartSet_FilletSelection"/>
+      <!--  SketchConstraintMiddle  -->
+      <feature id="SketchConstraintMiddle" title="Middle point" tooltip="Create constraint for setting middle point on a line" icon=":icons/middlepoint.png">
+        <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"/>
+          <validator id="SketchPlugin_MiddlePointAttr" parameters="ConstraintEntityB"/>
+        </sketch_shape_selector>
+        <sketch_shape_selector id="ConstraintEntityB" label="Second object" tooltip="Select a second object" shape_types="vertex edge">
+          <validator id="PartSet_DifferentObjects"/>
+          <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
+          <validator id="SketchPlugin_MiddlePointAttr" parameters="ConstraintEntityA"/>
+        </sketch_shape_selector>
+        <validator id="PartSet_MiddlePointSelection"/>
       </feature>
-      
+         
+    </group>
+    
+    <group id="Edit">
       <!--  SketchConstraintMirror  -->
       <feature
         id="SketchConstraintMirror"
             use_external="true">
           <validator id="SketchPlugin_CopyValidator" />
         </sketch_multi_selector>
-        <groupbox title="Direction">
-          <sketch-2dpoint_selector
-              id="MultiTranslationStartPoint"
-              title="Start point"
-              tooltip="Start point of translation"/>
-          <sketch-2dpoint_selector
-              id="MultiTranslationEndPoint"
-              title="End point"
-              tooltip="Final point of translation"/>
-        </groupbox>
-        <integervalue id="MultiTranslationCopies"
-            label="Number of copies"
-            tooltip="Number of copies" 
-            default="1" min="1" use_reset="false">
+        <toolbox id="ValueType">
+          <box id="SingleValue" title="Single value" icon=":icons/translate_32x32.png">
+            <groupbox title="Direction">
+              <sketch_shape_selector
+                    id="MultiTranslationStartPoint"
+                    label="Start point"
+                    tooltip="Start point of translation"
+                    shape_types="vertex">
+                <validator id="PartSet_DifferentObjects"/>
+                <validator id="GeomValidators_ShapeType" parameters="vertex"/>
+              </sketch_shape_selector>
+              <sketch_shape_selector
+                    id="MultiTranslationEndPoint"
+                    label="End point"
+                    tooltip="Final point of translation"
+                    shape_types="vertex">
+                <validator id="PartSet_DifferentObjects"/>
+                <validator id="GeomValidators_ShapeType" parameters="vertex"/>
+              </sketch_shape_selector>
+            </groupbox>
+          </box>
+          <box id="FullValue" title="Full value" icon=":icons/translate_full_32x32.png">
+            <groupbox title="Direction">
+              <sketch_shape_selector
+                    id="MultiTranslationStartPoint"
+                    label="Start point"
+                    tooltip="Start point of translation"
+                    shape_types="vertex">
+                <validator id="PartSet_DifferentObjects"/>
+                <validator id="GeomValidators_ShapeType" parameters="vertex"/>
+              </sketch_shape_selector>
+              <sketch_shape_selector
+                    id="MultiTranslationEndPoint"
+                    label="End point"
+                    tooltip="Final point of translation"
+                    shape_types="vertex">
+                <validator id="PartSet_DifferentObjects"/>
+                <validator id="GeomValidators_ShapeType" parameters="vertex"/>
+              </sketch_shape_selector>
+            </groupbox>
+          </box>
+        </toolbox>
+        <integervalue id="MultiTranslationObjects"
+            label="Total number of objects"
+            tooltip="Total number of objects"
+            default="2" min="2" use_reset="false">
           <validator id="GeomValidators_Positive"/>
         </integervalue>
       </feature>
-      
+
       <!--  SketchMultiRotation  -->
       <feature
         id="SketchMultiRotation"
             use_external="true">
           <validator id="SketchPlugin_CopyValidator" />
         </sketch_multi_selector>
-        <sketch-2dpoint_selector
-            id="MultiRotationCenter"
-            title="Center of rotation"
-            tooltip="Center of rotation"
-            default="0"/>
-        <point2dangle id="MultiRotationAngle"
-                         first_point="MultiRotationCenter"
+        <sketch_shape_selector
+              id="MultiRotationCenter"
+              label="Center of rotation"
+              tooltip="Center of rotation"
+              shape_types="vertex">
+          <validator id="GeomValidators_ShapeType" parameters="vertex"/>
+        </sketch_shape_selector>
+        <toolbox id="AngleType">
+          <box id="SingleAngle" title="Single angle" icon=":icons/angle_up_32x32.png">
+            <doublevalue id="MultiRotationAngle"
+                         label="Angle"
+                         icon=":icons/angle.png"
+                         tooltip="Rotation angle"
+                         default="90" use_reset="false"/>
+          </box>
+          <box id="FullAngle" title="Full angle" icon=":icons/angle_up_full_32x32.png">
+            <doublevalue id="MultiRotationAngle"
                          label="Angle"
                          icon=":icons/angle.png"
                          tooltip="Rotation angle"
-                         default="90"/>
-        <integervalue id="MultiRotationCopies"
-            label="Number of copies"
-            tooltip="Number of copies" 
-            default="1" min="1" use_reset="false">
+                         default="90" use_reset="false"/>
+          </box>
+        </toolbox>
+        <integervalue id="MultiRotationObjects"
+            label="Total number of objects"
+            tooltip="Total number of objects" 
+            default="2" min="2" use_reset="false">
           <validator id="GeomValidators_Positive"/>
         </integervalue>
       </feature>