]> SALOME platform Git repositories - modules/shaper.git/blob - src/SketchPlugin/plugin-Sketch.xml
Salome HOME
50c1a6552572dd967245afc168ef4ae7530ba4a4
[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                 SketchConstraintFillet 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="SketchConstraintFillet" title="Fillet" tooltip="Create constraint defining fillet between two objects" icon="icons/Sketch/fillet.png">
124         <!--<sketch_shape_selector id="ConstraintEntityA"
125             label="Point" tooltip="Select point for fillet (should be shared by two entities only)" shape_types="vertex">
126           <validator id="SketchPlugin_FilletVertexValidator"/>
127         </sketch_shape_selector>-->
128         <sketch_multi_selector id="ConstraintEntityA"
129             label="Points:"
130             tooltip="Select points for fillets"
131             type_choice="Vertices"
132             greed = "true"
133             clear_in_neutral_point="false">
134           <validator id="SketchPlugin_FilletVertexValidator"/>
135         </sketch_multi_selector>
136         <labelvalue label="Radius" tooltip="Fillet arc radius" id="ConstraintValue" accept_expressions="0" min="0" use_reset="false"
137                      enable_value="enable_by_preferences">
138           <validator id="GeomValidators_Positive"/>
139         </labelvalue>
140         <validator id="PartSet_FilletSelection"/>
141       </feature>
142       <!--  SketchConstraintSplit  -->
143       <feature id="SketchConstraintSplit" title="Split"
144                tooltip="Cut selected segment arc or circle on existing coincident points"
145                icon="icons/Sketch/split.png">
146         <sketch_sub_shape_selector
147             id="ConstraintValue"
148             label="Split feature"
149             tooltip="Select feature for split"
150             shape_types="edge"
151             use_external="false"
152             use_graphic_intersection="false">
153           <validator id="SketchPlugin_SplitValidator"/>
154         </sketch_sub_shape_selector>
155         <validator id="PartSet_SplitSelection"/>
156       </feature>
157       <!--  SketchTrim  -->
158       <feature id="SketchTrim" title="Trim"
159                tooltip="Trim selected segment arc or circle on intersection points nearest to the graphic selection"
160                icon="icons/Sketch/trim.png">
161         <sketch_feature_point_selector
162             id="BaseObject"
163             label="Split feature"
164             tooltip="Select feature for split"
165             shape_types="edge"
166             use_external="false"
167             use_graphic_intersection="true">
168           <!--<validator id="SketchPlugin_SplitValidator" parameters="use_graphic_intersection"/> -->
169         </sketch_feature_point_selector>
170         <validator id="PartSet_SplitSelection"/>
171       </feature>
172     </group>
173
174     <group id="Projection">
175       <!-- Intersection Point -->
176       <!-- feature
177         id="SketchIntersectionPoint"
178         title="Intersection Point"
179         tooltip="Create intersection point"
180         icon="icons/Sketch/intersection_point.png">
181         <sketch_shape_selector
182               id="ExternalLine"
183               label="Edge"
184               tooltip="Select external line."
185               shape_types="edge"
186               use_external="false"
187               use_sketch_plane="false">
188           <validator id="GeomValidators_ShapeType" parameters="line"/>
189           <validator id="SketchPlugin_IntersectionValidator"/>
190         </sketch_shape_selector>
191       </feature -->
192
193       <!-- Projected feature -->
194       <feature
195         id="SketchProjection"
196         title="Projection"
197         tooltip="Project feature onto sketch plane"
198         icon="icons/Sketch/projection.png">
199         <sketch_shape_selector
200               id="ExternalFeature"
201               label="Edge"
202               tooltip="Select external edge."
203               shape_types="edge"
204               use_external="true"
205               can_create_external="false"
206               use_sketch_plane="false">
207           <validator id="SketchPlugin_ProjectionValidator"/>
208         </sketch_shape_selector>
209         <validator id="PartSet_ProjectionSelection"/>
210       </feature>
211     </group>
212
213     <group id="Replication">
214       <!--  SketchConstraintMirror  -->
215       <feature
216         id="SketchConstraintMirror"
217         title="Mirror" icon="icons/Sketch/mirror.png"
218         tooltip="Create constraint, mirroring group of objects">
219         <sketch_shape_selector id="ConstraintEntityA"
220             label="Mirror line" tooltip="Select mirror line" shape_types="edge">
221           <validator id="GeomValidators_ShapeType" parameters="line"/>
222         </sketch_shape_selector>
223         <sketch_multi_selector id="ConstraintMirrorList"
224             label="Segments:"
225             tooltip="Select list of objects to be mirrored"
226             type_choice="Edges"
227             use_external="true"
228             greed ="true">
229           <validator id="SketchPlugin_MirrorAttr" />
230         </sketch_multi_selector>
231         <validator id="PartSet_MultyTranslationSelection" />
232       </feature>
233
234       <!--  SketchMultiTranslation  -->
235       <feature
236         id="SketchMultiTranslation"
237         title="Translation" icon="icons/Sketch/translate.png"
238         tooltip="Multiple translation">
239         <sketch_multi_selector id="MultiTranslationList"
240             label="Segments:"
241             tooltip="Select list of objects to be translated"
242             type_choice="Edges"
243             use_external="true"
244             greed ="true">
245           <validator id="SketchPlugin_CopyValidator" />
246         </sketch_multi_selector>
247         <toolbox id="ValueType">
248           <box id="SingleValue" title="Single value" icon="icons/Sketch/translate_32x32.png">
249             <groupbox title="Direction">
250               <sketch_shape_selector
251                     id="MultiTranslationStartPoint"
252                     label="Start point"
253                     tooltip="Start point of translation"
254                     shape_types="vertex">
255                 <validator id="PartSet_DifferentObjects"/>
256                 <validator id="GeomValidators_ShapeType" parameters="vertex"/>
257               </sketch_shape_selector>
258               <sketch_shape_selector
259                     id="MultiTranslationEndPoint"
260                     label="End point"
261                     tooltip="Final point of translation"
262                     shape_types="vertex">
263                 <validator id="PartSet_DifferentObjects"/>
264                 <validator id="GeomValidators_ShapeType" parameters="vertex"/>
265               </sketch_shape_selector>
266             </groupbox>
267           </box>
268           <box id="FullValue" title="Full value" icon="icons/Sketch/translate_full_32x32.png">
269             <groupbox title="Direction">
270               <sketch_shape_selector
271                     id="MultiTranslationStartPoint"
272                     label="Start point"
273                     tooltip="Start point of translation"
274                     shape_types="vertex">
275                 <validator id="PartSet_DifferentObjects"/>
276                 <validator id="GeomValidators_ShapeType" parameters="vertex"/>
277               </sketch_shape_selector>
278               <sketch_shape_selector
279                     id="MultiTranslationEndPoint"
280                     label="End point"
281                     tooltip="Final point of translation"
282                     shape_types="vertex">
283                 <validator id="PartSet_DifferentObjects"/>
284                 <validator id="GeomValidators_ShapeType" parameters="vertex"/>
285               </sketch_shape_selector>
286             </groupbox>
287           </box>
288         </toolbox>
289         <integervalue id="MultiTranslationObjects"
290             label="Total number of objects"
291             tooltip="Total number of objects"
292             default="2" min="2" use_reset="false">
293           <validator id="GeomValidators_Positive"/>
294         </integervalue>
295         <validator id="PartSet_MultyTranslationSelection" />
296       </feature>
297
298       <!--  SketchMultiRotation  -->
299       <feature
300         id="SketchMultiRotation"
301         title="Rotation" icon="icons/Sketch/rotate.png"
302         tooltip="Multiple rotation">
303         <sketch_multi_selector id="MultiRotationList"
304             label="Segments:"
305             tooltip="Select list of objects to be rotated"
306             type_choice="Edges"
307             use_external="true"
308             greed ="true">
309           <validator id="SketchPlugin_CopyValidator" />
310         </sketch_multi_selector>
311         <sketch_shape_selector
312               id="MultiRotationCenter"
313               label="Center of rotation"
314               tooltip="Center of rotation"
315               shape_types="vertex">
316           <validator id="GeomValidators_ShapeType" parameters="vertex"/>
317         </sketch_shape_selector>
318         <toolbox id="AngleType">
319           <box id="SingleAngle" title="Single angle" icon="icons/Sketch/angle_up_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           <box id="FullAngle" title="Full angle" icon="icons/Sketch/angle_up_full_32x32.png">
327             <doublevalue id="MultiRotationAngle"
328                          label="Angle"
329                          icon="icons/Sketch/angle.png"
330                          tooltip="Rotation angle"
331                          default="90" use_reset="false"/>
332           </box>
333         </toolbox>
334         <integervalue id="MultiRotationObjects"
335             label="Total number of objects"
336             tooltip="Total number of objects"
337             default="2" min="2" use_reset="false">
338           <validator id="GeomValidators_Positive"/>
339         </integervalue>
340         <validator id="PartSet_MultyTranslationSelection" />
341       </feature>
342     </group>
343
344     <group id="Dimensional constraints">
345     <!--  SketchConstraintDistance  -->
346       <feature
347         id="SketchConstraintDistance"
348         title="Distance"
349         tooltip="Set fixed distance from a point to an object"
350         icon="icons/Sketch/distance.png">
351         <label title="Select objects for distance definition. Following objects can be accepted: point, line or arc end point, center of circle or arc."/>
352         <sketch_shape_selector
353               id="ConstraintEntityA"
354               label="First object"
355               tooltip="Select point, line end point, line, center of circle or arc."
356               shape_types="edge vertex">
357           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
358           <validator id="PartSet_DifferentObjects"/>
359           <validator id="GeomValidators_ShapeType" parameters="vertex,line"/>
360         </sketch_shape_selector>
361         <sketch_shape_selector 
362           id="ConstraintEntityB" 
363           label="Second object" 
364           tooltip="Select point, line end point, line, center of circle or arc." 
365           shape_types="edge vertex">
366           <validator id="PartSet_DifferentObjects"/>
367           <validator id="SketchPlugin_DistanceAttr" parameters="ConstraintEntityA"/>
368           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
369           <validator id="GeomValidators_ShapeType" parameters="vertex,line"/>
370         </sketch_shape_selector>
371         <sketch-2dpoint_flyout_selector id="ConstraintFlyoutValuePnt"  default="computed" internal="1" obligatory="0"/>
372         
373         <doublevalue_editor label="Value" tooltip="Distance" id="ConstraintValue" default="computed" min="0">
374           <validator id="GeomValidators_Positive"/>
375         </doublevalue_editor>
376         
377         <validator id="PartSet_DistanceSelection"/>
378       </feature>
379       
380     <!--  SketchConstraintLength  -->      
381       <feature id="SketchConstraintLength" title="Length" tooltip="Set fixed length of a line segment" icon="icons/Sketch/length.png">
382         <label title="Select a line on which to calculate length" tooltip="Select a line on which to calculate length"/>
383         <shape_selector id="ConstraintEntityA" label="Line" tooltip="Select a line" shape_types="edge" >
384           <validator id="GeomValidators_ShapeType" parameters="line"/>
385         </shape_selector>
386         <sketch-2dpoint_flyout_selector id="ConstraintFlyoutValuePnt" default="computed" internal="1" obligatory="0"/>
387         <doublevalue_editor label="Value" tooltip="Length" id="ConstraintValue" default="computed">
388           <validator id="GeomValidators_Positive"/>
389         </doublevalue_editor>
390         <validator id="PartSet_LengthSelection"/>
391       </feature>
392
393       <!--  SketchConstraintAngle  -->
394       <feature id="SketchConstraintAngle" title="Angle" tooltip="Set fixed angle between two line segments" icon="icons/Sketch/angle_constr.png">
395         <sketch_shape_selector id="ConstraintEntityA" label="Line 1" tooltip="Select a line" shape_types="edge" >
396           <validator id="GeomValidators_ShapeType" parameters="line"/>
397           <validator id="PartSet_DifferentObjects"/>
398           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
399         </sketch_shape_selector>
400         <sketch_shape_selector id="ConstraintEntityB" label="Line 2" tooltip="Select a line" shape_types="edge" >
401           <validator id="GeomValidators_ShapeType" parameters="line"/>
402           <validator id="PartSet_DifferentObjects"/>
403           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
404         </sketch_shape_selector>
405         <sketch-2dpoint_flyout_selector id="ConstraintFlyoutValuePnt"  default="computed" internal="1" obligatory="0"/>
406         <doublevalue_editor label="Value" tooltip="Angle" id="AngleValue" default="computed" min="0" max="360" />
407         <validator id="PartSet_AngleSelection"/>
408         <module_choice id="AngleType"
409           widget_type="radiobuttons"
410           buttons_dir="horizontal"
411           label="Angle type"
412           tooltip="Type of angle"
413           string_list="Direct Complementary Additional"
414           icons_list="icons/Sketch/angle_direct.png icons/Sketch/angle_complementary.png icons/Sketch/angle_backward.png"
415           default="0"
416           />
417       </feature>
418
419       <!--  SketchConstraintRadius  -->
420       <feature id="SketchConstraintRadius" title="Radius" tooltip="Set fixed radius of a circle or an arc" icon="icons/Sketch/radius_constr.png">
421         <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"/>
422         <shape_selector id="ConstraintEntityA" label="Circle or Arc" tooltip="Select a circle or an arc"
423             shape_types="edge">
424           <validator id="GeomValidators_ShapeType" parameters="circle"/>
425         </shape_selector>
426         <sketch-2dpoint_flyout_selector id="ConstraintFlyoutValuePnt"  default="computed" internal="1" obligatory="0"/>
427         <doublevalue_editor label="Value" tooltip="Radius" id="ConstraintValue" default="computed">
428           <validator id="GeomValidators_Positive"/>
429         </doublevalue_editor>
430         <validator id="PartSet_RadiusSelection"/>
431       </feature>
432
433     </group>
434
435     <group id="Geometrical constraints">
436
437       <!--  SketchConstraintHorizontal  -->
438       <feature id="SketchConstraintHorizontal" title="Horizontal" tooltip="Create constraint defining horizontal line" icon="icons/Sketch/horisontal.png">
439         <sketch_shape_selector id="ConstraintEntityA"
440             label="Line" tooltip="Select a line" shape_types="edge" use_external="false">
441           <validator id="GeomValidators_ShapeType" parameters="line"/>
442         </sketch_shape_selector>
443         <validator id="PartSet_HVDirSelection"/>
444       </feature>
445
446       <!--  SketchConstraintVertical  -->
447       <feature id="SketchConstraintVertical" title="Vertical" tooltip="Create constraint defining vertical line" icon="icons/Sketch/vertical.png">
448         <sketch_shape_selector id="ConstraintEntityA"
449             label="Line" tooltip="Select a line" shape_types="edge" use_external="false">
450           <validator id="GeomValidators_ShapeType" parameters="line"/>
451         </sketch_shape_selector>
452         <validator id="PartSet_HVDirSelection"/>
453       </feature>
454
455       <!--  SketchConstraintRigid  -->
456       <feature id="SketchConstraintRigid" title="Fixed" tooltip="Fix an object" icon="icons/Sketch/fixed.png">
457         <sketch_shape_selector id="ConstraintEntityA" label="Object"
458                         tooltip="Select point, line end point, line, center of circle or arc."
459                         shape_types="edge vertex">
460           <validator id="GeomValidators_ShapeType" parameters="vertex,line,circle"/>
461           <validator id="SketchPlugin_NotFixed"/>
462         </sketch_shape_selector>
463         <validator id="PartSet_RigidSelection"/>
464       </feature>
465
466       <!--  SketchConstraintParallel  -->
467       <feature id="SketchConstraintParallel" title="Parallel" tooltip="Create constraint defining two parallel lines"
468                icon="icons/Sketch/parallel.png">
469         <sketch_shape_selector id="ConstraintEntityA" 
470             label="First line" tooltip="Select a line" shape_types="edge">
471           <validator id="GeomValidators_ShapeType" parameters="line"/>
472           <validator id="PartSet_DifferentObjects"/>
473           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
474         </sketch_shape_selector>
475         
476         <sketch_shape_selector id="ConstraintEntityB" label="Second line" tooltip="Select a line" 
477             shape_types="edge">
478             <validator id="GeomValidators_ShapeType" parameters="line"/>
479             <validator id="PartSet_DifferentObjects"/>
480             <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
481         </sketch_shape_selector>
482         <validator id="PartSet_ParallelSelection"/>
483       </feature>
484       
485     <!--  SketchConstraintPerpendicular  -->
486       <feature id="SketchConstraintPerpendicular" title="Perpendicular" 
487         tooltip="Create constraint defining two perpendicular lines" 
488         icon="icons/Sketch/perpendicular.png">
489         <sketch_shape_selector id="ConstraintEntityA" 
490             label="First line" tooltip="Select a line" 
491             shape_types="edge">
492           <validator id="PartSet_DifferentObjects"/>
493           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
494             <validator id="GeomValidators_ShapeType" parameters="line"/>
495         </sketch_shape_selector>
496         
497         <sketch_shape_selector id="ConstraintEntityB" 
498             label="Second line" tooltip="Select a line" 
499             shape_types="edge">
500             <validator id="PartSet_DifferentObjects"/>
501           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
502             <validator id="GeomValidators_ShapeType" parameters="line"/>
503         </sketch_shape_selector>
504         <validator id="PartSet_PerpendicularSelection"/>
505       </feature>
506
507       <!--  SketchConstraintTangent  -->
508       <feature id="SketchConstraintTangent" title="Tangent" tooltip="Create constraint defining tangency of two objects with common coincident point" icon="icons/Sketch/tangent.png">
509         <sketch_shape_selector id="ConstraintEntityA"
510             label="First object" tooltip="Select line or arc" shape_types="edge">
511           <validator id="SketchPlugin_TangentAttr" parameters="ConstraintEntityB"/>
512           <validator id="PartSet_DifferentObjects"/>
513         </sketch_shape_selector>
514
515         <sketch_shape_selector id="ConstraintEntityB"
516             label="Second object" tooltip="Select line or arc" shape_types="edge">
517           <validator id="SketchPlugin_TangentAttr" parameters="ConstraintEntityA"/>
518           <validator id="PartSet_DifferentObjects"/>
519         </sketch_shape_selector>
520         <validator id="PartSet_TangentSelection"/>
521       </feature>
522
523       <!--  SketchConstraintCoincidence  -->
524       <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">
525         <sketch_shape_selector id="ConstraintEntityA" label="First object" tooltip="Select a first object" shape_types="vertex edge">
526           <validator id="PartSet_DifferentObjects"/>
527           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
528         </sketch_shape_selector>
529         <sketch_shape_selector id="ConstraintEntityB" label="Second object" tooltip="Select a second object" shape_types="vertex edge">
530           <validator id="PartSet_DifferentObjects"/>
531           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
532           <validator id="SketchPlugin_CoincidenceAttr" parameters="ConstraintEntityA"/>
533         </sketch_shape_selector>
534         <validator id="PartSet_CoincidentSelection"/>
535       </feature>
536
537       <!--  SketchConstraintMiddle  -->
538       <feature id="SketchConstraintMiddle" title="Middle point" tooltip="Create constraint for setting middle point on a line" icon="icons/Sketch/middlepoint.png">
539         <sketch_shape_selector id="ConstraintEntityA" label="First object" tooltip="Select a first object" shape_types="vertex edge">
540           <validator id="PartSet_DifferentObjects"/>
541           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
542           <validator id="SketchPlugin_MiddlePointAttr" parameters="ConstraintEntityB"/>
543         </sketch_shape_selector>
544         <sketch_shape_selector id="ConstraintEntityB" label="Second object" tooltip="Select a second object" shape_types="vertex edge">
545           <validator id="PartSet_DifferentObjects"/>
546           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
547           <validator id="SketchPlugin_MiddlePointAttr" parameters="ConstraintEntityA"/>
548         </sketch_shape_selector>
549         <validator id="PartSet_MiddlePointSelection"/>
550       </feature>
551
552       <!--  SketchConstraintEqual  -->
553       <feature id="SketchConstraintEqual" title="Equal"
554         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"
555         icon="icons/Sketch/equal.png">
556         <sketch_shape_selector id="ConstraintEntityA" 
557             label="First object" tooltip="Select line, circle or arc" shape_types="edge">
558           <validator id="PartSet_DifferentObjects"/>
559           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
560         </sketch_shape_selector>
561         
562         <sketch_shape_selector id="ConstraintEntityB"
563             label="Second object" tooltip="Select line, circle or arc" shape_types="edge">
564           <validator id="SketchPlugin_EqualAttr" parameters="ConstraintEntityA"/>
565           <validator id="PartSet_DifferentObjects"/>
566           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
567         </sketch_shape_selector>
568         <validator id="PartSet_EqualSelection"/>
569       </feature>
570       
571     <!--  SketchConstraintCollinear  -->
572       <feature id="SketchConstraintCollinear" title="Collinear" tooltip="Create constraint defining collinearity of two lines" icon="icons/Sketch/collinear.png">
573         <sketch_shape_selector id="ConstraintEntityA" 
574             label="First line" tooltip="Select a line" shape_types="edge">
575           <validator id="GeomValidators_ShapeType" parameters="line"/>
576           <validator id="PartSet_DifferentObjects"/>
577         </sketch_shape_selector>
578         
579         <sketch_shape_selector id="ConstraintEntityB"
580             label="Second line" tooltip="Select a line" shape_types="edge">
581           <validator id="GeomValidators_ShapeType" parameters="line"/>
582           <validator id="PartSet_DifferentObjects"/>
583         </sketch_shape_selector>
584         <validator id="PartSet_CollinearSelection"/>
585       </feature>
586          
587     </group>
588     
589   </workbench>
590 </plugin>