Salome HOME
bf5db26b3dca4746f3c114b2525d585db8e89195
[modules/shaper.git] / src / SketchPlugin / plugin-Sketch.xml
1 <!-- Copyright (C) 2014-20xx CEA/DEN, EDF R&D -->
2
3 <plugin>
4   <workbench id="Sketch">
5     <group id="Linear geometry">
6       <feature
7         id="Sketch"
8         nested="SketchPoint SketchIntersectionPoint SketchLine SketchCircle SketchArc
9                 SketchRectangle
10                 SketchProjection
11                 SketchConstraintLength SketchConstraintRadius SketchConstraintDistance
12                 SketchConstraintParallel SketchConstraintPerpendicular
13                 SketchConstraintRigid SketchConstraintHorizontal SketchConstraintVertical
14                 SketchConstraintEqual SketchConstraintTangent
15                 SketchFillet SketchConstraintSplit SketchTrim
16                 SketchConstraintCoincidence
17                 SketchConstraintMirror SketchConstraintAngle
18                 SketchMultiRotation SketchMultiTranslation
19                 SketchConstraintCollinear SketchConstraintMiddle"
20         when_nested="accept abort"
21         title="Sketch"
22         tooltip="Create sketch"
23         icon="icons/Sketch/sketch.png">
24         <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">
25           <validator id="GeomValidators_Face" parameters="plane"/>
26         </sketch-start-label>
27         <label id="SolverDOF"/>
28         <label id="SolverError" styleSheet="color : red; font : bold"/>
29         <validator id="SketchPlugin_SolverErrorValidator"/>
30       </feature>
31
32       <!-- SketchPoint -->
33       <feature id="SketchPoint" title="Point" tooltip="Create point" icon="icons/Sketch/point.png">
34         <sketch-2dpoint_selector id="PointCoordindates" accept_expressions="0" title="Point" tooltip="Point coordinates"
35                                  enable_value="enable_by_preferences"/>
36         <boolvalue id="Auxiliary" label="Auxiliary" default="false" tooltip="Construction element" obligatory="0"/>
37       </feature>
38       
39       <!-- SketchLine -->
40       <feature id="SketchLine" title="Line" tooltip="Create line" icon="icons/Sketch/line.png">
41         <sketch-2dpoint_selector id="StartPoint" accept_expressions="0" title="Start point" tooltip="Start point coordinates"
42                                  enable_value="enable_by_preferences"/>
43         <sketch-2dpoint_selector id="EndPoint" accept_expressions="0" title="End point" tooltip="End point coordinates"
44                                  enable_value="enable_by_preferences"/>
45         <labelvalue id="LineLength" accept_expressions="0" label="Length:" default="computed" icon="icons/Sketch/distance_value.png"
46                      tooltip="Line length" obligatory="0" enable_value="false"/>
47         <boolvalue id="Auxiliary" label="Auxiliary" default="false" tooltip="Construction element" obligatory="0"/>
48         <validator id="GeomValidators_Different" parameters="StartPoint,EndPoint"/>
49       </feature>
50     </group>
51     <group id="Circular geometry">
52       <!-- SketchCircle -->
53       <feature 
54         id="SketchCircle"
55         title="Circle"
56         tooltip="Create circle"
57         icon="icons/Sketch/circle.png">
58         <toolbox id="CircleType">
59           <box id="CenterRadius" title="Center and radius" icon="icons/Sketch/circle_pt_rad_32x32.png">
60             <sketch-2dpoint_selector id="CircleCenter" accept_expressions="0" title="Center" tooltip="Center coordinates"
61                                      enable_value="enable_by_preferences"/>
62           </box>
63           <box id="ThreePoints" title="Three points" icon="icons/Sketch/circle_3pt_32x32.png">
64             <sketch-2dpoint_selector id="FirstPoint" accept_expressions="0" title="First point" tooltip="First point"
65                                      enable_value="enable_by_preferences"/>
66             <sketch-2dpoint_selector id="SecondPoint" accept_expressions="0" title="Second point" tooltip="Second point"
67                                      enable_value="enable_by_preferences"/>
68             <sketch-2dpoint_selector id="ThirdPoint" accept_expressions="0" title="Third point" tooltip="Third point"
69                                      enable_value="enable_by_preferences"/>
70           </box>
71         </toolbox>
72         <point2ddistance id="CircleRadius" accept_expressions="0" first_point="CircleCenter" label="Radius:" min="0" step="1.0"
73                          default="0" icon="icons/Sketch/radius.png" tooltip="Set radius"
74                          enable_value="enable_by_preferences">
75           <validator id="GeomValidators_Positive"/>
76         </point2ddistance>
77         <boolvalue id="Auxiliary" label="Auxiliary" default="false" tooltip="Construction element" obligatory="0"/>
78       </feature>
79
80       <!-- SketchArc -->
81       <feature
82         id="SketchArc"
83         title="Arc"
84         tooltip="Create arc"
85         icon="icons/Sketch/arc.png">
86         <toolbox id="ArcType">
87           <box id="CenterStartEnd" title="Center and two points" icon="icons/Sketch/arc_base_32x32.png">
88             <sketch-2dpoint_selector id="ArcCenter" accept_expressions="0" title="Center" tooltip="Center of a circle"
89                                      enable_value="enable_by_preferences"/>
90             <sketch-2dpoint_selector id="ArcStartPoint" accept_expressions="0" title="Start point" tooltip="Start point"
91                                      enable_value="enable_by_preferences"/>
92             <sketch-2dpoint_selector id="ArcEndPoint" accept_expressions="0" title="End point" tooltip="End point"
93                                      enable_value="enable_by_preferences"/>
94             <validator id="GeomValidators_Different" parameters="ArcCenter,ArcStartPoint,ArcEndPoint"/>
95           </box>
96           <box id="ThreePoints" title="Three points on arc" icon="icons/Sketch/arc_3pt_32x32.png">
97             <sketch-2dpoint_selector id="ArcStartPoint" accept_expressions="0" title="Start point" tooltip="Start point"
98                                      enable_value="enable_by_preferences"/>
99             <sketch-2dpoint_selector id="ArcEndPoint" accept_expressions="0" title="End point" tooltip="End point"
100                                      enable_value="enable_by_preferences"/>
101             <sketch-2dpoint_selector id="ArcPassedPoint" accept_expressions="0" title="Passed point" tooltip="Passed point"
102                                      enable_value="enable_by_preferences"/>
103             <validator id="GeomValidators_Different" parameters="ArcStartPoint,ArcEndPoint,ArcPassedPoint"/>
104           </box>
105           <box id="Tangent" title="Tangent with edge" icon="icons/Sketch/arc_tang_32x32.png">
106             <sketch_shape_selector id="ArcTangentPoint" label="Tangent point" tooltip="Select point on line" shape_types="vertex">
107               <validator id="SketchPlugin_ArcTangentPoint" parameters="" />
108             </sketch_shape_selector>
109             <sketch-2dpoint_selector id="ArcEndPoint" accept_expressions="0" title="End point" tooltip="End point"
110                                      enable_value="enable_by_preferences"/>
111           </box>
112         </toolbox>
113         <labelvalue id="ArcRadius" accept_expressions="0" label="Radius:" default="computed" icon="icons/Sketch/radius.png"
114                      tooltip="Set radius" obligatory="0" enable_value="enable_by_preferences">
115           <validator id="GeomValidators_Positive"/>
116         </labelvalue>
117         <labelvalue id="ArcAngle" label="Angle:" icon="icons/Sketch/angle.png" tooltip="Set angle" default="90" use_reset="false" obligatory="0"
118                      enable_value="enable_by_preferences"/>
119         <boolvalue id="Auxiliary" label="Auxiliary" default="false" tooltip="Construction element" obligatory="0"/>
120       </feature>
121
122       <!--  SketchConstraintFillet  -->
123       <feature id="SketchFillet"
124                title="Fillet"
125                tooltip="Create constraint defining fillet between two objects"
126                icon="icons/Sketch/fillet.png">
127         <sketch_shape_selector id="fillet_point"
128                                label="Point"
129                                tooltip="Select point for fillet (should be shared by two entities only)"
130                                shape_types="vertex">
131           <validator id="SketchPlugin_FilletVertexValidator"/>
132         </sketch_shape_selector>
133         <!--<validator id="PartSet_FilletSelection"/>-->
134       </feature>
135       <!--  SketchConstraintSplit  -->
136       <feature id="SketchConstraintSplit" title="Split"
137                tooltip="Cut selected segment arc or circle on existing coincident points"
138                icon="icons/Sketch/split.png">
139         <sketch_sub_shape_selector
140             id="ConstraintValue"
141             label="Split feature"
142             tooltip="Select feature for split"
143             shape_types="edge"
144             use_external="false"
145             use_graphic_intersection="false">
146           <validator id="SketchPlugin_SplitValidator"/>
147         </sketch_sub_shape_selector>
148         <validator id="PartSet_SplitSelection"/>
149       </feature>
150       <!--  SketchTrim  -->
151       <feature id="SketchTrim" title="Trim"
152                tooltip="Trim selected segment arc or circle on intersection points nearest to the graphic selection"
153                icon="icons/Sketch/trim.png">
154         <sketch_feature_point_selector
155             id="BaseObject"
156             label="Split feature"
157             tooltip="Select feature for split"
158             shape_types="edge"
159             use_external="false"
160             use_graphic_intersection="true">
161           <!--<validator id="SketchPlugin_SplitValidator" parameters="use_graphic_intersection"/> -->
162         </sketch_feature_point_selector>
163         <validator id="PartSet_SplitSelection"/>
164       </feature>
165     </group>
166
167     <group id="Projection">
168       <!-- Intersection Point -->
169       <!-- feature
170         id="SketchIntersectionPoint"
171         title="Intersection Point"
172         tooltip="Create intersection point"
173         icon="icons/Sketch/intersection_point.png">
174         <sketch_shape_selector
175               id="ExternalLine"
176               label="Edge"
177               tooltip="Select external line."
178               shape_types="edge"
179               use_external="false"
180               use_sketch_plane="false">
181           <validator id="GeomValidators_ShapeType" parameters="line"/>
182           <validator id="SketchPlugin_IntersectionValidator"/>
183         </sketch_shape_selector>
184       </feature -->
185
186       <!-- Projected feature -->
187       <feature
188         id="SketchProjection"
189         title="Projection"
190         tooltip="Project feature onto sketch plane"
191         icon="icons/Sketch/projection.png">
192         <sketch_shape_selector
193               id="ExternalFeature"
194               label="Edge"
195               tooltip="Select external edge."
196               shape_types="edge"
197               use_external="true"
198               can_create_external="false"
199               use_sketch_plane="false">
200           <validator id="SketchPlugin_ProjectionValidator"/>
201         </sketch_shape_selector>
202         <validator id="PartSet_ProjectionSelection"/>
203       </feature>
204     </group>
205
206     <group id="Replication">
207       <!--  SketchConstraintMirror  -->
208       <feature
209         id="SketchConstraintMirror"
210         title="Mirror" icon="icons/Sketch/mirror.png"
211         tooltip="Create constraint, mirroring group of objects">
212         <sketch_shape_selector id="ConstraintEntityA"
213             label="Mirror line" tooltip="Select mirror line" shape_types="edge">
214           <validator id="GeomValidators_ShapeType" parameters="line"/>
215         </sketch_shape_selector>
216         <sketch_multi_selector id="ConstraintMirrorList"
217             label="Segments:"
218             tooltip="Select list of objects to be mirrored"
219             type_choice="Edges"
220             use_external="true"
221             greed ="true">
222           <validator id="SketchPlugin_MirrorAttr" />
223         </sketch_multi_selector>
224         <validator id="PartSet_MultyTranslationSelection" />
225       </feature>
226
227       <!--  SketchMultiTranslation  -->
228       <feature
229         id="SketchMultiTranslation"
230         title="Translation" icon="icons/Sketch/translate.png"
231         tooltip="Multiple translation">
232         <sketch_multi_selector id="MultiTranslationList"
233             label="Segments:"
234             tooltip="Select list of objects to be translated"
235             type_choice="Edges"
236             use_external="true"
237             greed ="true">
238           <validator id="SketchPlugin_CopyValidator" />
239         </sketch_multi_selector>
240         <toolbox id="ValueType">
241           <box id="SingleValue" title="Single value" icon="icons/Sketch/translate_32x32.png">
242             <groupbox title="Direction">
243               <sketch_shape_selector
244                     id="MultiTranslationStartPoint"
245                     label="Start point"
246                     tooltip="Start point of translation"
247                     shape_types="vertex">
248                 <validator id="PartSet_DifferentObjects"/>
249                 <validator id="GeomValidators_ShapeType" parameters="vertex"/>
250               </sketch_shape_selector>
251               <sketch_shape_selector
252                     id="MultiTranslationEndPoint"
253                     label="End point"
254                     tooltip="Final point of translation"
255                     shape_types="vertex">
256                 <validator id="PartSet_DifferentObjects"/>
257                 <validator id="GeomValidators_ShapeType" parameters="vertex"/>
258               </sketch_shape_selector>
259             </groupbox>
260           </box>
261           <box id="FullValue" title="Full value" icon="icons/Sketch/translate_full_32x32.png">
262             <groupbox title="Direction">
263               <sketch_shape_selector
264                     id="MultiTranslationStartPoint"
265                     label="Start point"
266                     tooltip="Start point of translation"
267                     shape_types="vertex">
268                 <validator id="PartSet_DifferentObjects"/>
269                 <validator id="GeomValidators_ShapeType" parameters="vertex"/>
270               </sketch_shape_selector>
271               <sketch_shape_selector
272                     id="MultiTranslationEndPoint"
273                     label="End point"
274                     tooltip="Final point of translation"
275                     shape_types="vertex">
276                 <validator id="PartSet_DifferentObjects"/>
277                 <validator id="GeomValidators_ShapeType" parameters="vertex"/>
278               </sketch_shape_selector>
279             </groupbox>
280           </box>
281         </toolbox>
282         <integervalue id="MultiTranslationObjects"
283             label="Total number of objects"
284             tooltip="Total number of objects"
285             default="2" min="2" use_reset="false">
286           <validator id="GeomValidators_Positive"/>
287         </integervalue>
288         <validator id="PartSet_MultyTranslationSelection" />
289       </feature>
290
291       <!--  SketchMultiRotation  -->
292       <feature
293         id="SketchMultiRotation"
294         title="Rotation" icon="icons/Sketch/rotate.png"
295         tooltip="Multiple rotation">
296         <sketch_multi_selector id="MultiRotationList"
297             label="Segments:"
298             tooltip="Select list of objects to be rotated"
299             type_choice="Edges"
300             use_external="true"
301             greed ="true">
302           <validator id="SketchPlugin_CopyValidator" />
303         </sketch_multi_selector>
304         <sketch_shape_selector
305               id="MultiRotationCenter"
306               label="Center of rotation"
307               tooltip="Center of rotation"
308               shape_types="vertex">
309           <validator id="GeomValidators_ShapeType" parameters="vertex"/>
310         </sketch_shape_selector>
311         <toolbox id="AngleType">
312           <box id="SingleAngle" title="Single angle" icon="icons/Sketch/angle_up_32x32.png">
313             <doublevalue id="MultiRotationAngle"
314                          label="Angle"
315                          icon="icons/Sketch/angle.png"
316                          tooltip="Rotation angle"
317                          default="90" use_reset="false"/>
318           </box>
319           <box id="FullAngle" title="Full angle" icon="icons/Sketch/angle_up_full_32x32.png">
320             <doublevalue id="MultiRotationAngle"
321                          label="Angle"
322                          icon="icons/Sketch/angle.png"
323                          tooltip="Rotation angle"
324                          default="90" use_reset="false"/>
325           </box>
326         </toolbox>
327         <integervalue id="MultiRotationObjects"
328             label="Total number of objects"
329             tooltip="Total number of objects"
330             default="2" min="2" use_reset="false">
331           <validator id="GeomValidators_Positive"/>
332         </integervalue>
333         <validator id="PartSet_MultyTranslationSelection" />
334       </feature>
335     </group>
336
337     <group id="Dimensional constraints">
338     <!--  SketchConstraintDistance  -->
339       <feature
340         id="SketchConstraintDistance"
341         title="Distance"
342         tooltip="Set fixed distance from a point to an object"
343         icon="icons/Sketch/distance.png">
344         <label title="Select objects for distance definition. Following objects can be accepted: point, line or arc end point, center of circle or arc."/>
345         <sketch_shape_selector
346               id="ConstraintEntityA"
347               label="First object"
348               tooltip="Select point, line end point, line, center of circle or arc."
349               shape_types="edge vertex">
350           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
351           <validator id="PartSet_DifferentObjects"/>
352           <validator id="GeomValidators_ShapeType" parameters="vertex,line"/>
353         </sketch_shape_selector>
354         <sketch_shape_selector 
355           id="ConstraintEntityB" 
356           label="Second object" 
357           tooltip="Select point, line end point, line, center of circle or arc." 
358           shape_types="edge vertex">
359           <validator id="PartSet_DifferentObjects"/>
360           <validator id="SketchPlugin_DistanceAttr" parameters="ConstraintEntityA"/>
361           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
362           <validator id="GeomValidators_ShapeType" parameters="vertex,line"/>
363         </sketch_shape_selector>
364         <sketch-2dpoint_flyout_selector id="ConstraintFlyoutValuePnt"  default="computed" internal="1" obligatory="0"/>
365         
366         <doublevalue_editor label="Value" tooltip="Distance" id="ConstraintValue" default="computed" min="0">
367           <validator id="GeomValidators_Positive"/>
368         </doublevalue_editor>
369         
370         <validator id="PartSet_DistanceSelection"/>
371       </feature>
372       
373     <!--  SketchConstraintLength  -->      
374       <feature id="SketchConstraintLength" title="Length" tooltip="Set fixed length of a line segment" icon="icons/Sketch/length.png">
375         <label title="Select a line on which to calculate length" tooltip="Select a line on which to calculate length"/>
376         <shape_selector id="ConstraintEntityA" label="Line" tooltip="Select a line" shape_types="edge" >
377           <validator id="GeomValidators_ShapeType" parameters="line"/>
378         </shape_selector>
379         <sketch-2dpoint_flyout_selector id="ConstraintFlyoutValuePnt" default="computed" internal="1" obligatory="0"/>
380         <doublevalue_editor label="Value" tooltip="Length" id="ConstraintValue" default="computed">
381           <validator id="GeomValidators_Positive"/>
382         </doublevalue_editor>
383         <validator id="PartSet_LengthSelection"/>
384       </feature>
385
386       <!--  SketchConstraintAngle  -->
387       <feature id="SketchConstraintAngle" title="Angle" tooltip="Set fixed angle between two line segments" icon="icons/Sketch/angle_constr.png">
388         <sketch_shape_selector id="ConstraintEntityA" label="Line 1" tooltip="Select a line" shape_types="edge" >
389           <validator id="GeomValidators_ShapeType" parameters="line"/>
390           <validator id="PartSet_DifferentObjects"/>
391           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
392         </sketch_shape_selector>
393         <sketch_shape_selector id="ConstraintEntityB" label="Line 2" tooltip="Select a line" shape_types="edge" >
394           <validator id="GeomValidators_ShapeType" parameters="line"/>
395           <validator id="PartSet_DifferentObjects"/>
396           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
397         </sketch_shape_selector>
398         <sketch-2dpoint_flyout_selector id="ConstraintFlyoutValuePnt"  default="computed" internal="1" obligatory="0"/>
399         <doublevalue_editor label="Value" tooltip="Angle" id="AngleValue" default="computed" min="0" max="360" />
400         <validator id="PartSet_AngleSelection"/>
401         <module_choice id="AngleType"
402           widget_type="radiobuttons"
403           buttons_dir="horizontal"
404           label="Angle type"
405           tooltip="Type of angle"
406           string_list="Direct Complementary Additional"
407           icons_list="icons/Sketch/angle_direct.png icons/Sketch/angle_complementary.png icons/Sketch/angle_backward.png"
408           default="0"
409           />
410       </feature>
411
412       <!--  SketchConstraintRadius  -->
413       <feature id="SketchConstraintRadius" title="Radius" tooltip="Set fixed radius of a circle or an arc" icon="icons/Sketch/radius_constr.png">
414         <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"/>
415         <shape_selector id="ConstraintEntityA" label="Circle or Arc" tooltip="Select a circle or an arc"
416             shape_types="edge">
417           <validator id="GeomValidators_ShapeType" parameters="circle"/>
418         </shape_selector>
419         <sketch-2dpoint_flyout_selector id="ConstraintFlyoutValuePnt"  default="computed" internal="1" obligatory="0"/>
420         <doublevalue_editor label="Value" tooltip="Radius" id="ConstraintValue" default="computed">
421           <validator id="GeomValidators_Positive"/>
422         </doublevalue_editor>
423         <validator id="PartSet_RadiusSelection"/>
424       </feature>
425
426     </group>
427
428     <group id="Geometrical constraints">
429
430       <!--  SketchConstraintHorizontal  -->
431       <feature id="SketchConstraintHorizontal" title="Horizontal" tooltip="Create constraint defining horizontal line" icon="icons/Sketch/horisontal.png">
432         <sketch_shape_selector id="ConstraintEntityA"
433             label="Line" tooltip="Select a line" shape_types="edge" use_external="false">
434           <validator id="GeomValidators_ShapeType" parameters="line"/>
435         </sketch_shape_selector>
436         <validator id="PartSet_HVDirSelection"/>
437       </feature>
438
439       <!--  SketchConstraintVertical  -->
440       <feature id="SketchConstraintVertical" title="Vertical" tooltip="Create constraint defining vertical line" icon="icons/Sketch/vertical.png">
441         <sketch_shape_selector id="ConstraintEntityA"
442             label="Line" tooltip="Select a line" shape_types="edge" use_external="false">
443           <validator id="GeomValidators_ShapeType" parameters="line"/>
444         </sketch_shape_selector>
445         <validator id="PartSet_HVDirSelection"/>
446       </feature>
447
448       <!--  SketchConstraintRigid  -->
449       <feature id="SketchConstraintRigid" title="Fixed" tooltip="Fix an object" icon="icons/Sketch/fixed.png">
450         <sketch_shape_selector id="ConstraintEntityA" label="Object"
451                         tooltip="Select point, line end point, line, center of circle or arc."
452                         shape_types="edge vertex">
453           <validator id="GeomValidators_ShapeType" parameters="vertex,line,circle"/>
454           <validator id="SketchPlugin_NotFixed"/>
455         </sketch_shape_selector>
456         <validator id="PartSet_RigidSelection"/>
457       </feature>
458
459       <!--  SketchConstraintParallel  -->
460       <feature id="SketchConstraintParallel" title="Parallel" tooltip="Create constraint defining two parallel lines"
461                icon="icons/Sketch/parallel.png">
462         <sketch_shape_selector id="ConstraintEntityA" 
463             label="First line" tooltip="Select a line" shape_types="edge">
464           <validator id="GeomValidators_ShapeType" parameters="line"/>
465           <validator id="PartSet_DifferentObjects"/>
466           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
467         </sketch_shape_selector>
468         
469         <sketch_shape_selector id="ConstraintEntityB" label="Second line" tooltip="Select a line" 
470             shape_types="edge">
471             <validator id="GeomValidators_ShapeType" parameters="line"/>
472             <validator id="PartSet_DifferentObjects"/>
473             <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
474         </sketch_shape_selector>
475         <validator id="PartSet_ParallelSelection"/>
476       </feature>
477       
478     <!--  SketchConstraintPerpendicular  -->
479       <feature id="SketchConstraintPerpendicular" title="Perpendicular" 
480         tooltip="Create constraint defining two perpendicular lines" 
481         icon="icons/Sketch/perpendicular.png">
482         <sketch_shape_selector id="ConstraintEntityA" 
483             label="First line" tooltip="Select a line" 
484             shape_types="edge">
485           <validator id="PartSet_DifferentObjects"/>
486           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
487             <validator id="GeomValidators_ShapeType" parameters="line"/>
488         </sketch_shape_selector>
489         
490         <sketch_shape_selector id="ConstraintEntityB" 
491             label="Second line" tooltip="Select a line" 
492             shape_types="edge">
493             <validator id="PartSet_DifferentObjects"/>
494           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
495             <validator id="GeomValidators_ShapeType" parameters="line"/>
496         </sketch_shape_selector>
497         <validator id="PartSet_PerpendicularSelection"/>
498       </feature>
499
500       <!--  SketchConstraintTangent  -->
501       <feature id="SketchConstraintTangent" title="Tangent" tooltip="Create constraint defining tangency of two objects with common coincident point" icon="icons/Sketch/tangent.png">
502         <sketch_shape_selector id="ConstraintEntityA"
503             label="First object" tooltip="Select line or arc" shape_types="edge">
504           <validator id="SketchPlugin_TangentAttr" parameters="ConstraintEntityB"/>
505           <validator id="PartSet_DifferentObjects"/>
506         </sketch_shape_selector>
507
508         <sketch_shape_selector id="ConstraintEntityB"
509             label="Second object" tooltip="Select line or arc" shape_types="edge">
510           <validator id="SketchPlugin_TangentAttr" parameters="ConstraintEntityA"/>
511           <validator id="PartSet_DifferentObjects"/>
512         </sketch_shape_selector>
513         <validator id="PartSet_TangentSelection"/>
514       </feature>
515
516       <!--  SketchConstraintCoincidence  -->
517       <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">
518         <sketch_shape_selector id="ConstraintEntityA" label="First object" tooltip="Select a first object" shape_types="vertex edge">
519           <validator id="PartSet_DifferentObjects"/>
520           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
521         </sketch_shape_selector>
522         <sketch_shape_selector id="ConstraintEntityB" label="Second object" tooltip="Select a second object" shape_types="vertex edge">
523           <validator id="PartSet_DifferentObjects"/>
524           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
525           <validator id="SketchPlugin_CoincidenceAttr" parameters="ConstraintEntityA"/>
526         </sketch_shape_selector>
527         <validator id="PartSet_CoincidentSelection"/>
528       </feature>
529
530       <!--  SketchConstraintMiddle  -->
531       <feature id="SketchConstraintMiddle" title="Middle point" tooltip="Create constraint for setting middle point on a line" icon="icons/Sketch/middlepoint.png">
532         <sketch_shape_selector id="ConstraintEntityA" label="First object" tooltip="Select a first object" shape_types="vertex edge">
533           <validator id="PartSet_DifferentObjects"/>
534           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
535           <validator id="SketchPlugin_MiddlePointAttr" parameters="ConstraintEntityB"/>
536         </sketch_shape_selector>
537         <sketch_shape_selector id="ConstraintEntityB" label="Second object" tooltip="Select a second object" shape_types="vertex edge">
538           <validator id="PartSet_DifferentObjects"/>
539           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
540           <validator id="SketchPlugin_MiddlePointAttr" parameters="ConstraintEntityA"/>
541         </sketch_shape_selector>
542         <validator id="PartSet_MiddlePointSelection"/>
543       </feature>
544
545       <!--  SketchConstraintEqual  -->
546       <feature id="SketchConstraintEqual" title="Equal"
547         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"
548         icon="icons/Sketch/equal.png">
549         <sketch_shape_selector id="ConstraintEntityA" 
550             label="First object" tooltip="Select line, circle or arc" shape_types="edge">
551           <validator id="PartSet_DifferentObjects"/>
552           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
553         </sketch_shape_selector>
554         
555         <sketch_shape_selector id="ConstraintEntityB"
556             label="Second object" tooltip="Select line, circle or arc" shape_types="edge">
557           <validator id="SketchPlugin_EqualAttr" parameters="ConstraintEntityA"/>
558           <validator id="PartSet_DifferentObjects"/>
559           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
560         </sketch_shape_selector>
561         <validator id="PartSet_EqualSelection"/>
562       </feature>
563       
564     <!--  SketchConstraintCollinear  -->
565       <feature id="SketchConstraintCollinear" title="Collinear" tooltip="Create constraint defining collinearity of two lines" icon="icons/Sketch/collinear.png">
566         <sketch_shape_selector id="ConstraintEntityA" 
567             label="First line" tooltip="Select a line" shape_types="edge">
568           <validator id="GeomValidators_ShapeType" parameters="line"/>
569           <validator id="PartSet_DifferentObjects"/>
570         </sketch_shape_selector>
571         
572         <sketch_shape_selector id="ConstraintEntityB"
573             label="Second line" tooltip="Select a line" shape_types="edge">
574           <validator id="GeomValidators_ShapeType" parameters="line"/>
575           <validator id="PartSet_DifferentObjects"/>
576         </sketch_shape_selector>
577         <validator id="PartSet_CollinearSelection"/>
578       </feature>
579          
580     </group>
581     
582   </workbench>
583 </plugin>