Salome HOME
Merge branch 'master' into cgt/devCEA
[modules/shaper.git] / src / SketchPlugin / plugin-Sketch.xml
1 <!--
2 Copyright (C) 2014-2017  CEA/DEN, EDF R&D
3
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) any later version.
8
9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 Lesser General Public License for more details.
13
14 You should have received a copy of the GNU Lesser General Public
15 License along with this library; if not, write to the Free Software
16 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
18 See http:##www.salome-platform.org/ or
19 email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com>
20 -->
21
22 <plugin>
23   <workbench id="Sketch">
24     <group id="Linear geometry">
25       <feature
26         id="Sketch"
27         nested="SketchPoint SketchIntersectionPoint SketchLine
28                 SketchCircle SketchMacroCircle SketchArc SketchMacroArc
29                 SketchRectangle
30                 SketchProjection
31                 SketchConstraintLength SketchConstraintRadius SketchConstraintDistance
32                 SketchConstraintParallel SketchConstraintPerpendicular
33                 SketchConstraintRigid SketchConstraintHorizontal SketchConstraintVertical
34                 SketchConstraintEqual SketchConstraintTangent
35                 SketchFillet SketchSplit SketchTrim
36                 SketchConstraintCoincidence
37                 SketchConstraintMirror SketchConstraintAngle
38                 SketchMultiRotation SketchMultiTranslation
39                 SketchConstraintCollinear SketchConstraintMiddle"
40         when_nested="accept abort"
41         title="Sketch"
42         tooltip="Create sketch"
43         icon="icons/Sketch/sketch.png">
44         <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">
45           <validator id="GeomValidators_Face" parameters="plane"/>
46         </sketch-start-label>
47         <label id="SolverDOF"/>
48         <label id="SolverError" styleSheet="color : red; font : bold"/>
49         <validator id="SketchPlugin_SolverErrorValidator"/>
50       </feature>
51
52       <!-- SketchPoint -->
53       <feature id="SketchPoint" title="Point" tooltip="Create point" icon="icons/Sketch/point.png">
54         <sketch-2dpoint_selector id="PointCoordinates" accept_expressions="0" title="Point" tooltip="Point coordinates"
55                                  enable_value="enable_by_preferences"/>
56         <boolvalue id="Auxiliary" label="Auxiliary" default="false" tooltip="Construction element" obligatory="0"/>
57       </feature>
58
59       <!-- SketchLine -->
60       <feature id="SketchLine" title="Line" tooltip="Create line" icon="icons/Sketch/line.png">
61         <sketch-2dpoint_selector id="StartPoint" accept_expressions="0" title="Start point" tooltip="Start point coordinates"
62                                  enable_value="enable_by_preferences"/>
63         <sketch-2dpoint_selector id="EndPoint" accept_expressions="0" title="End point" tooltip="End point coordinates"
64                                  enable_value="enable_by_preferences"/>
65         <labelvalue id="LineLength" accept_expressions="0" label="Length:" default="computed" icon="icons/Sketch/distance_value.png"
66                      tooltip="Line length" obligatory="0" enable_value="false"/>
67         <boolvalue id="Auxiliary" label="Auxiliary" default="false" tooltip="Construction element" obligatory="0"/>
68         <validator id="GeomValidators_Different" parameters="StartPoint,EndPoint"/>
69       </feature>
70     </group>
71     <group id="Circular geometry">
72       <!-- SketchCircle is a hidden feature. It is created inside SketchMacroCircle. -->
73       <feature id="SketchCircle"
74                title="Circle"
75                tooltip="Create circle"
76                icon="icons/Sketch/circle.png"
77                internal="1">
78         <sketch-2dpoint_selector id="circle_center"
79                                  title="Center"
80                                  tooltip="Center coordinates"
81                                  accept_expressions="0"
82                                  enable_value="enable_by_preferences"/>
83         <labelvalue id="circle_radius"
84                     icon="icons/Sketch/radius.png"
85                     label="Radius:"
86                     tooltip="Set radius"
87                     default="computed"
88                     accept_expressions="0"
89                     enable_value="enable_by_preferences">
90         </labelvalue>
91         <boolvalue id="Auxiliary" label="Auxiliary" default="false" tooltip="Construction element" obligatory="0"/>
92       </feature>
93       <!-- SketchMacroCircle -->
94       <feature id="SketchMacroCircle"
95                icon="icons/Sketch/circle.png"
96                title="Circle"
97                tooltip="Create circle">
98         <toolbox id="circle_type" modified_in_edit="edit_circle_type">
99           <box id="circle_type_by_center_and_passed_points"
100                icon="icons/Sketch/circle_pt_rad_32x32.png"
101                title="Center and passed points">
102             <sketch-2dpoint_selector id="center_point"
103                                      reference_attribute="center_point_ref"
104                                      title="Center point"
105                                      tooltip="Center point coordinates"
106                                      accept_expressions="0"
107                                      enable_value="enable_by_preferences"/>
108             <sketch-2dpoint_selector id="passed_point"
109                                      reference_attribute="passed_point_ref"
110                                      title="Passed point"
111                                      tooltip="Passed point coordinates"
112                                      accept_expressions="0"
113                                      enable_value="enable_by_preferences">
114               <validator id="SketchPlugin_CirclePassedPointValidator"/>
115             </sketch-2dpoint_selector>
116             <validator id="GeomValidators_Different" parameters="center_point_ref,passed_point_ref"/>
117           </box>
118           <box id="circle_type_by_three_points"
119                icon="icons/Sketch/circle_3pt_32x32.png"
120                title="Three points">
121             <sketch-2dpoint_selector id="first_point"
122                                      reference_attribute="first_point_ref"
123                                      title="First point"
124                                      tooltip="First point"
125                                      accept_expressions="0"
126                                      enable_value="enable_by_preferences"/>
127             <sketch-2dpoint_selector id="second_point"
128                                      reference_attribute="second_point_ref"
129                                      title="Second point"
130                                      tooltip="Second point"
131                                      accept_expressions="0"
132                                      enable_value="enable_by_preferences">
133               <validator id="SketchPlugin_DifferentReference" parameters="first_point_ref,second_point_ref"/>
134             </sketch-2dpoint_selector>
135             <sketch-2dpoint_selector id="third_point"
136                                      reference_attribute="third_point_ref"
137                                      title="Third point"
138                                      tooltip="Third point"
139                                      accept_expressions="0"
140                                      enable_value="enable_by_preferences">
141               <validator id="SketchPlugin_DifferentReference" parameters="first_point_ref,second_point_ref,third_point_ref"/>
142               <validator id="SketchPlugin_ThirdPointValidator" parameters="third_point_ref"/>
143             </sketch-2dpoint_selector>
144             <validator id="GeomValidators_Different" parameters="first_point_ref,second_point_ref,third_point_ref"/>
145           </box>
146         </toolbox>
147         <labelvalue id="circle_radius"
148                     icon="icons/Sketch/radius.png"
149                     label="Radius:"
150                     tooltip="Set radius"
151                     default="computed"
152                     accept_expressions="0"
153                     obligatory="0"
154                     enable_value="enable_by_preferences">
155           <validator id="GeomValidators_Positive"/>
156         </labelvalue>
157         <boolvalue id="Auxiliary"
158                    tooltip="Construction element"
159                    label="Auxiliary"
160                    default="false"
161                    obligatory="0"/>
162       </feature>
163
164       <!-- SketchArc -->
165       <feature id="SketchArc"
166                icon="icons/Sketch/arc.png"
167                title="Arc"
168                tooltip="Create arc"
169                internal="1">
170         <sketch-2dpoint_selector id="center_point"
171                                  title="Center"
172                                  tooltip="Center of a circle"
173                                  accept_expressions="0"
174                                  enable_value="enable_by_preferences"/>
175         <sketch-2dpoint_selector id="start_point"
176                                  title="Start point"
177                                  tooltip="Start point"
178                                  accept_expressions="0"
179                                  enable_value="enable_by_preferences"/>
180         <sketch-2dpoint_selector id="end_point"
181                                  title="End point"
182                                  tooltip="End point"
183                                  accept_expressions="0"
184                                  enable_value="enable_by_preferences"/>
185         <validator id="GeomValidators_Different" parameters="center_point,start_point,end_point"/>
186         <labelvalue id="radius"
187                     icon="icons/Sketch/radius.png"
188                     label="Radius:"
189                     tooltip="Set radius"
190                     accept_expressions="0"
191                     min="0"
192                     default="0"
193                     obligatory="0"
194                     enable_value="enable_by_preferences">
195         </labelvalue>
196         <labelvalue id="angle"
197                     icon="icons/Sketch/angle.png"
198                     label="Angle:"
199                     tooltip="Set angle"
200                     default="0"
201                     use_reset="false"
202                     obligatory="0"
203                     enable_value="enable_by_preferences"/>
204         <boolvalue id="Auxiliary"
205                    label="Auxiliary"
206                    tooltip="Construction element"
207                    default="false"
208                    obligatory="0"/>
209       </feature>
210
211       <!-- SketchMacroArc -->
212       <feature
213         id="SketchMacroArc"
214         title="Arc"
215         tooltip="Create arc"
216         icon="icons/Sketch/arc.png">
217         <toolbox id="arc_type" modified_in_edit="edit_arc_type">
218           <box id="by_center_and_points"
219                icon="icons/Sketch/arc_base_32x32.png"
220                title="Center and two points">
221             <sketch-2dpoint_selector id="center_point"
222                                      reference_attribute="center_point_ref"
223                                      title="Center point"
224                                      tooltip="Center of a circle"
225                                      accept_expressions="0"
226                                      enable_value="enable_by_preferences" />
227             <sketch-2dpoint_selector id="start_point_1"
228                                      reference_attribute="start_point_ref"
229                                      title="Start point"
230                                      tooltip="Start point"
231                                      accept_expressions="0"
232                                      enable_value="enable_by_preferences"/>
233             <sketch-2dpoint_selector id="end_point_1"
234                                      reference_attribute="end_point_ref"
235                                      title="End point"
236                                      tooltip="End point"
237                                      accept_expressions="0"
238                                      enable_value="enable_by_preferences">
239               <validator id="SketchPlugin_ArcEndPointValidator" parameters="end_point_ref"/>
240               <validator id="SketchPlugin_ArcEndPointIntersectionValidator" parameters="end_point_ref"/>
241             </sketch-2dpoint_selector>
242             <validator id="GeomValidators_Different" parameters="center_point,start_point_1,end_point_1"/>
243           </box>
244           <box id="by_three_points"
245                icon="icons/Sketch/arc_3pt_32x32.png"
246                title="Three points on arc">
247             <sketch-2dpoint_selector id="start_point_2"
248                                      reference_attribute="start_point_ref"
249                                      title="Start point"
250                                      tooltip="Start point"
251                                      accept_expressions="0"
252                                      enable_value="enable_by_preferences"/>
253             <sketch-2dpoint_selector id="end_point_2"
254                                      reference_attribute="end_point_ref"
255                                      title="End point"
256                                      tooltip="End point"
257                                      accept_expressions="0"
258                                      enable_value="enable_by_preferences">
259               <validator id="GeomValidators_Different" parameters="start_point_2,end_point_2"/>
260               <validator id="SketchPlugin_DifferentPointReference" parameters="start_point_ref,end_point_ref"/>
261             </sketch-2dpoint_selector>
262             <sketch-2dpoint_selector id="passed_point"
263                                      reference_attribute="passed_point_ref"
264                                      title="Passed point"
265                                      tooltip="Passed point"
266                                      accept_expressions="0"
267                                      enable_value="enable_by_preferences">
268               <validator id="SketchPlugin_DifferentReference" parameters="start_point_ref,end_point_ref,passed_point_ref"/>
269               <validator id="SketchPlugin_ThirdPointValidator" parameters="passed_point_ref"/>
270             </sketch-2dpoint_selector>
271             <validator id="GeomValidators_Different" parameters="start_point_2,end_point_2,passed_point"/>
272           </box>
273           <box id="by_tangent_edge"
274                icon="icons/Sketch/arc_tang_32x32.png"
275                title="Tangent with edge">
276             <sketch_shape_selector id="tangent_point"
277                                    label="Tangent point"
278                                    tooltip="Select point on line"
279                                    shape_types="vertex">
280               <validator id="SketchPlugin_ArcTangentPoint"/>
281             </sketch_shape_selector>
282             <sketch-2dpoint_selector id="end_point_3"
283                                      reference_attribute="end_point_ref"
284                                      title="End point"
285                                      tooltip="End point"
286                                      accept_expressions="0"
287                                      enable_value="enable_by_preferences">
288               <validator id="SketchPlugin_ArcEndPointValidator" parameters="end_point_ref"/>
289             </sketch-2dpoint_selector>
290           </box>
291         </toolbox>
292         <labelvalue id="radius"
293                     icon="icons/Sketch/radius.png"
294                     label="Radius:"
295                     tooltip="Set radius"
296                     accept_expressions="0"
297                     min="0"
298                     default="0"
299                     obligatory="0"
300                     enable_value="enable_by_preferences">
301         </labelvalue>
302         <labelvalue id="angle"
303                     icon="icons/Sketch/angle.png"
304                     label="Angle:"
305                     tooltip="Set angle"
306                     default="0"
307                     use_reset="false"
308                     obligatory="0"
309                     enable_value="enable_by_preferences"/>
310         <boolvalue id="Auxiliary"
311                    label="Auxiliary"
312                    tooltip="Construction element"
313                    default="false"
314                    obligatory="0"/>
315       </feature>
316
317       <!--  SketchFillet  -->
318       <feature id="SketchFillet"
319                title="Fillet"
320                tooltip="Create constraint defining fillet between two objects"
321                icon="icons/Sketch/fillet.png">
322         <sketch_shape_selector id="fillet_point"
323                                label="Point"
324                                tooltip="Select point for fillet (should be shared by two entities only)"
325                                shape_types="vertex">
326           <validator id="SketchPlugin_FilletVertexValidator"/>
327         </sketch_shape_selector>
328         <!--<validator id="PartSet_FilletSelection"/>-->
329       </feature>
330       <!--  SketchSplit  -->
331       <feature id="SketchSplit" title="Split"
332                tooltip="Cut selected segment arc or circle on existing coincident points"
333                icon="icons/Sketch/split.png">
334         <sketch_feature_point_selector
335             id="SelectedObject"
336             selection_attributes="SelectedObject SelectedPoint PreviewObject PreviewPoint"
337             label="Segment"
338             tooltip="Select segment for split"
339             shape_types="edge"
340             use_external="false">
341           <validator id="SketchPlugin_SplitValidator"/>
342         </sketch_feature_point_selector>
343         <validator id="PartSet_SplitSelection"/>
344       </feature>
345       <!--  SketchTrim  -->
346       <feature id="SketchTrim" title="Trim"
347                tooltip="Trim selected segment arc or circle on intersection points nearest to the graphic selection"
348                icon="icons/Sketch/trim.png">
349         <sketch_feature_point_selector
350             id="SelectedObject"
351             selection_attributes="SelectedObject SelectedPoint PreviewObject PreviewPoint"
352             label="Segment"
353             tooltip="Select segment for trim"
354             shape_types="edge"
355             use_external="false">
356           <validator id="SketchPlugin_TrimValidator"/>
357         </sketch_feature_point_selector>
358         <validator id="PartSet_SplitSelection"/>
359       </feature>
360     </group>
361
362     <group id="Projection">
363       <!-- Intersection Point -->
364       <!-- feature
365         id="SketchIntersectionPoint"
366         title="Intersection Point"
367         tooltip="Create intersection point"
368         icon="icons/Sketch/intersection_point.png">
369         <sketch_shape_selector
370               id="ExternalLine"
371               label="Edge"
372               tooltip="Select external line."
373               shape_types="edge"
374               use_external="false"
375               use_sketch_plane="false">
376           <validator id="GeomValidators_ShapeType" parameters="line"/>
377           <validator id="SketchPlugin_IntersectionValidator"/>
378         </sketch_shape_selector>
379       </feature -->
380
381       <!-- Projected feature -->
382       <feature
383         id="SketchProjection"
384         title="Projection"
385         tooltip="Project feature onto sketch plane"
386         icon="icons/Sketch/projection.png">
387         <sketch_shape_selector
388               id="ExternalFeature"
389               label="Edge"
390               tooltip="Select external edge."
391               shape_types="edge"
392               use_external="true"
393               can_create_external="false"
394               use_sketch_plane="false">
395           <validator id="SketchPlugin_ProjectionValidator"/>
396         </sketch_shape_selector>
397         <validator id="PartSet_ProjectionSelection"/>
398       </feature>
399     </group>
400
401     <group id="Replication">
402       <!--  SketchConstraintMirror  -->
403       <feature
404         id="SketchConstraintMirror"
405         title="Mirror" icon="icons/Sketch/mirror.png"
406         tooltip="Create constraint, mirroring group of objects">
407         <sketch_shape_selector id="ConstraintEntityA"
408             label="Mirror line" tooltip="Select mirror line" shape_types="edge">
409           <validator id="GeomValidators_ShapeType" parameters="line"/>
410         </sketch_shape_selector>
411         <sketch_multi_selector id="ConstraintMirrorList"
412             label="Segments:"
413             tooltip="Select list of objects to be mirrored"
414             type_choice="Edges"
415             use_external="true"
416             greed ="true">
417           <validator id="SketchPlugin_MirrorAttr" />
418         </sketch_multi_selector>
419         <validator id="PartSet_MultyTranslationSelection" />
420       </feature>
421
422       <!--  SketchMultiTranslation  -->
423       <feature
424         id="SketchMultiTranslation"
425         title="Translation" icon="icons/Sketch/translate.png"
426         tooltip="Multiple translation">
427         <sketch_multi_selector id="MultiTranslationList"
428             label="Segments:"
429             tooltip="Select list of objects to be translated"
430             type_choice="Edges"
431             use_external="true"
432             greed ="true">
433           <validator id="SketchPlugin_CopyValidator" />
434         </sketch_multi_selector>
435         <toolbox id="ValueType">
436           <box id="SingleValue" title="Single value" icon="icons/Sketch/translate_32x32.png">
437             <groupbox title="Direction">
438               <sketch_shape_selector
439                     id="MultiTranslationStartPoint"
440                     label="Start point"
441                     tooltip="Start point of translation"
442                     shape_types="vertex">
443                 <validator id="PartSet_DifferentObjects"/>
444                 <validator id="GeomValidators_ShapeType" parameters="vertex"/>
445               </sketch_shape_selector>
446               <sketch_shape_selector
447                     id="MultiTranslationEndPoint"
448                     label="End point"
449                     tooltip="Final point of translation"
450                     shape_types="vertex">
451                 <validator id="PartSet_DifferentObjects"/>
452                 <validator id="GeomValidators_ShapeType" parameters="vertex"/>
453               </sketch_shape_selector>
454             </groupbox>
455           </box>
456           <box id="FullValue" title="Full value" icon="icons/Sketch/translate_full_32x32.png">
457             <groupbox title="Direction">
458               <sketch_shape_selector
459                     id="MultiTranslationStartPoint"
460                     label="Start point"
461                     tooltip="Start point of translation"
462                     shape_types="vertex">
463                 <validator id="PartSet_DifferentObjects"/>
464                 <validator id="GeomValidators_ShapeType" parameters="vertex"/>
465               </sketch_shape_selector>
466               <sketch_shape_selector
467                     id="MultiTranslationEndPoint"
468                     label="End point"
469                     tooltip="Final point of translation"
470                     shape_types="vertex">
471                 <validator id="PartSet_DifferentObjects"/>
472                 <validator id="GeomValidators_ShapeType" parameters="vertex"/>
473               </sketch_shape_selector>
474             </groupbox>
475           </box>
476         </toolbox>
477         <integervalue id="MultiTranslationObjects"
478             label="Total number of objects"
479             tooltip="Total number of objects"
480             default="2" min="2" use_reset="false">
481           <validator id="GeomValidators_Positive" parameters="1"/>
482         </integervalue>
483         <validator id="PartSet_MultyTranslationSelection" />
484       </feature>
485
486       <!--  SketchMultiRotation  -->
487       <feature
488         id="SketchMultiRotation"
489         title="Rotation" icon="icons/Sketch/rotate.png"
490         tooltip="Multiple rotation">
491         <sketch_multi_selector id="MultiRotationList"
492             label="Segments:"
493             tooltip="Select list of objects to be rotated"
494             type_choice="Edges"
495             use_external="true"
496             greed ="true">
497           <validator id="SketchPlugin_CopyValidator" />
498         </sketch_multi_selector>
499         <sketch_shape_selector
500               id="MultiRotationCenter"
501               label="Center of rotation"
502               tooltip="Center of rotation"
503               shape_types="vertex">
504           <validator id="GeomValidators_ShapeType" parameters="vertex"/>
505         </sketch_shape_selector>
506         <toolbox id="AngleType">
507           <box id="SingleAngle" title="Single angle" icon="icons/Sketch/angle_up_32x32.png">
508             <doublevalue id="MultiRotationAngle"
509                          label="Angle"
510                          icon="icons/Sketch/angle.png"
511                          tooltip="Rotation angle"
512                          default="90" use_reset="false"/>
513           </box>
514           <box id="FullAngle" title="Full angle" icon="icons/Sketch/angle_up_full_32x32.png">
515             <doublevalue id="MultiRotationAngle"
516                          label="Angle"
517                          icon="icons/Sketch/angle.png"
518                          tooltip="Rotation angle"
519                          default="90" use_reset="false"/>
520           </box>
521         </toolbox>
522         <integervalue id="MultiRotationObjects"
523             label="Total number of objects"
524             tooltip="Total number of objects"
525             default="2" min="2" use_reset="false">
526           <validator id="GeomValidators_Positive" parameters="1"/>
527         </integervalue>
528         <validator id="PartSet_MultyTranslationSelection" />
529       </feature>
530     </group>
531
532     <group id="Dimensional constraints">
533     <!--  SketchConstraintDistance  -->
534       <feature
535         id="SketchConstraintDistance"
536         title="Distance"
537         tooltip="Set fixed distance from a point to an object"
538         icon="icons/Sketch/distance.png">
539         <label title="Select objects for distance definition. Following objects can be accepted: point, line or arc end point, center of circle or arc."/>
540         <sketch_shape_selector
541               id="ConstraintEntityA"
542               label="First object"
543               tooltip="Select point, line end point, line, center of circle or arc."
544               shape_types="edge vertex">
545           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
546           <validator id="PartSet_DifferentObjects"/>
547           <validator id="GeomValidators_ShapeType" parameters="vertex,line"/>
548           <validator id="PartSet_DifferentPoints" parameters="ConstraintEntityB"/>
549         </sketch_shape_selector>
550         <sketch_shape_selector
551           id="ConstraintEntityB"
552           label="Second object"
553           tooltip="Select point, line end point, line, center of circle or arc."
554           shape_types="edge vertex">
555           <validator id="PartSet_DifferentObjects"/>
556           <validator id="SketchPlugin_DistanceAttr" parameters="ConstraintEntityA"/>
557           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
558           <validator id="GeomValidators_ShapeType" parameters="vertex,line"/>
559           <validator id="PartSet_DifferentPoints" parameters="ConstraintEntityA"/>
560         </sketch_shape_selector>
561         <sketch-2dpoint_flyout_selector id="ConstraintFlyoutValuePnt"  default="computed" internal="1" obligatory="0"/>
562
563         <doublevalue_editor label="Value" tooltip="Distance" id="ConstraintValue" default="computed" min="0">
564           <validator id="GeomValidators_Positive"/>
565         </doublevalue_editor>
566
567         <validator id="PartSet_DistanceSelection"/>
568       </feature>
569
570     <!--  SketchConstraintLength  -->
571       <feature id="SketchConstraintLength" title="Length" tooltip="Set fixed length of a line segment" icon="icons/Sketch/length.png">
572         <label title="Select a line on which to calculate length" tooltip="Select a line on which to calculate length"/>
573         <shape_selector id="ConstraintEntityA" label="Line" tooltip="Select a line" shape_types="edge" >
574           <validator id="GeomValidators_ShapeType" parameters="line"/>
575         </shape_selector>
576         <sketch-2dpoint_flyout_selector id="ConstraintFlyoutValuePnt" default="computed" internal="1" obligatory="0"/>
577         <doublevalue_editor label="Value" tooltip="Length" id="ConstraintValue" default="computed">
578           <validator id="GeomValidators_Positive"/>
579         </doublevalue_editor>
580         <validator id="PartSet_LengthSelection"/>
581       </feature>
582
583       <!--  SketchConstraintAngle  -->
584       <feature id="SketchConstraintAngle" title="Angle" tooltip="Set fixed angle between two line segments" icon="icons/Sketch/angle_constr.png">
585         <sketch_shape_selector id="ConstraintEntityA" label="Line 1" tooltip="Select a line" shape_types="edge" >
586           <validator id="GeomValidators_ShapeType" parameters="line"/>
587           <validator id="PartSet_DifferentObjects"/>
588           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
589         </sketch_shape_selector>
590         <sketch_shape_selector id="ConstraintEntityB" label="Line 2" tooltip="Select a line" shape_types="edge" >
591           <validator id="GeomValidators_ShapeType" parameters="line"/>
592           <validator id="PartSet_DifferentObjects"/>
593           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
594         </sketch_shape_selector>
595         <sketch-2dpoint_flyout_selector id="ConstraintFlyoutValuePnt"  default="computed" internal="1" obligatory="0"/>
596         <doublevalue_editor label="Value" tooltip="Angle" id="AngleValue" default="computed" min="0" max="360" />
597         <validator id="PartSet_AngleSelection"/>
598         <module_choice id="AngleType"
599           widget_type="radiobuttons"
600           buttons_dir="horizontal"
601           label="Angle type"
602           tooltip="Type of angle"
603           string_list="Direct Complementary Additional"
604           icons_list="icons/Sketch/angle_direct.png icons/Sketch/angle_complementary.png icons/Sketch/angle_backward.png"
605           default="0"
606           />
607       </feature>
608
609       <!--  SketchConstraintRadius  -->
610       <feature id="SketchConstraintRadius" title="Radius" tooltip="Set fixed radius of a circle or an arc" icon="icons/Sketch/radius_constr.png">
611         <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"/>
612         <shape_selector id="ConstraintEntityA" label="Circle or Arc" tooltip="Select a circle or an arc"
613             shape_types="edge">
614           <validator id="GeomValidators_ShapeType" parameters="circle"/>
615         </shape_selector>
616         <sketch-2dpoint_flyout_selector id="ConstraintFlyoutValuePnt"  default="computed" internal="1" obligatory="0"/>
617         <doublevalue_editor label="Value" tooltip="Radius" id="ConstraintValue" default="computed">
618           <validator id="GeomValidators_Positive"/>
619         </doublevalue_editor>
620         <validator id="PartSet_RadiusSelection"/>
621       </feature>
622
623     </group>
624
625     <group id="Geometrical constraints">
626
627       <!--  SketchConstraintHorizontal  -->
628       <feature id="SketchConstraintHorizontal" title="Horizontal" tooltip="Create constraint defining horizontal line" icon="icons/Sketch/horisontal.png">
629         <sketch_shape_selector id="ConstraintEntityA"
630             label="Line" tooltip="Select a line" shape_types="edge" use_external="false">
631           <validator id="GeomValidators_ShapeType" parameters="line"/>
632         </sketch_shape_selector>
633         <validator id="PartSet_HVDirSelection"/>
634       </feature>
635
636       <!--  SketchConstraintVertical  -->
637       <feature id="SketchConstraintVertical" title="Vertical" tooltip="Create constraint defining vertical line" icon="icons/Sketch/vertical.png">
638         <sketch_shape_selector id="ConstraintEntityA"
639             label="Line" tooltip="Select a line" shape_types="edge" use_external="false">
640           <validator id="GeomValidators_ShapeType" parameters="line"/>
641         </sketch_shape_selector>
642         <validator id="PartSet_HVDirSelection"/>
643       </feature>
644
645       <!--  SketchConstraintRigid  -->
646       <feature id="SketchConstraintRigid" title="Fixed" tooltip="Fix an object" icon="icons/Sketch/fixed.png">
647         <sketch_shape_selector id="ConstraintEntityA" label="Object"
648                         tooltip="Select point, line end point, line, center of circle or arc."
649                         shape_types="edge vertex">
650           <validator id="GeomValidators_ShapeType" parameters="vertex,line,circle"/>
651           <validator id="SketchPlugin_NotFixed"/>
652         </sketch_shape_selector>
653         <validator id="PartSet_RigidSelection"/>
654       </feature>
655
656       <!--  SketchConstraintParallel  -->
657       <feature id="SketchConstraintParallel" title="Parallel" tooltip="Create constraint defining two parallel lines"
658                icon="icons/Sketch/parallel.png">
659         <sketch_shape_selector id="ConstraintEntityA"
660             label="First line" tooltip="Select a line" shape_types="edge">
661           <validator id="GeomValidators_ShapeType" parameters="line"/>
662           <validator id="PartSet_DifferentObjects"/>
663           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
664         </sketch_shape_selector>
665
666         <sketch_shape_selector id="ConstraintEntityB" label="Second line" tooltip="Select a line"
667             shape_types="edge">
668             <validator id="GeomValidators_ShapeType" parameters="line"/>
669             <validator id="PartSet_DifferentObjects"/>
670             <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
671         </sketch_shape_selector>
672         <validator id="PartSet_ParallelSelection"/>
673       </feature>
674
675     <!--  SketchConstraintPerpendicular  -->
676       <feature id="SketchConstraintPerpendicular" title="Perpendicular"
677         tooltip="Create constraint defining two perpendicular lines"
678         icon="icons/Sketch/perpendicular.png">
679         <sketch_shape_selector id="ConstraintEntityA"
680             label="First line" tooltip="Select a line"
681             shape_types="edge">
682           <validator id="PartSet_DifferentObjects"/>
683           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
684             <validator id="GeomValidators_ShapeType" parameters="line"/>
685         </sketch_shape_selector>
686
687         <sketch_shape_selector id="ConstraintEntityB"
688             label="Second line" tooltip="Select a line"
689             shape_types="edge">
690             <validator id="PartSet_DifferentObjects"/>
691           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
692             <validator id="GeomValidators_ShapeType" parameters="line"/>
693         </sketch_shape_selector>
694         <validator id="PartSet_PerpendicularSelection"/>
695       </feature>
696
697       <!--  SketchConstraintTangent  -->
698       <feature id="SketchConstraintTangent" title="Tangent" tooltip="Create constraint defining tangency of two objects with common coincident point" icon="icons/Sketch/tangent.png">
699         <sketch_shape_selector id="ConstraintEntityA"
700             label="First object" tooltip="Select line or arc" shape_types="edge">
701           <validator id="SketchPlugin_TangentAttr" parameters="ConstraintEntityB"/>
702           <validator id="PartSet_DifferentObjects"/>
703         </sketch_shape_selector>
704
705         <sketch_shape_selector id="ConstraintEntityB"
706             label="Second object" tooltip="Select line or arc" shape_types="edge">
707           <validator id="SketchPlugin_TangentAttr" parameters="ConstraintEntityA"/>
708           <validator id="PartSet_DifferentObjects"/>
709         </sketch_shape_selector>
710         <validator id="PartSet_TangentSelection"/>
711       </feature>
712
713       <!--  SketchConstraintCoincidence  -->
714       <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">
715         <sketch_shape_selector id="ConstraintEntityA" label="First object" tooltip="Select a first object" shape_types="vertex edge">
716           <validator id="PartSet_DifferentObjects"/>
717           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
718         </sketch_shape_selector>
719         <sketch_shape_selector id="ConstraintEntityB" label="Second object" tooltip="Select a second object" shape_types="vertex edge">
720           <validator id="PartSet_DifferentObjects"/>
721           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
722           <validator id="SketchPlugin_CoincidenceAttr" parameters="ConstraintEntityA"/>
723         </sketch_shape_selector>
724         <validator id="PartSet_CoincidentSelection"/>
725       </feature>
726
727       <!--  SketchConstraintMiddle  -->
728       <feature id="SketchConstraintMiddle" title="Middle point" tooltip="Create constraint for setting middle point on a line" icon="icons/Sketch/middlepoint.png">
729         <sketch_shape_selector id="ConstraintEntityA" label="First object" tooltip="Select a first object" shape_types="vertex edge">
730           <validator id="PartSet_DifferentObjects"/>
731           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
732           <validator id="SketchPlugin_MiddlePointAttr" parameters="ConstraintEntityB"/>
733         </sketch_shape_selector>
734         <sketch_shape_selector id="ConstraintEntityB" label="Second object" tooltip="Select a second object" shape_types="vertex edge">
735           <validator id="PartSet_DifferentObjects"/>
736           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
737           <validator id="SketchPlugin_MiddlePointAttr" parameters="ConstraintEntityA"/>
738         </sketch_shape_selector>
739         <validator id="PartSet_MiddlePointSelection"/>
740       </feature>
741
742       <!--  SketchConstraintEqual  -->
743       <feature id="SketchConstraintEqual" title="Equal"
744         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"
745         icon="icons/Sketch/equal.png">
746         <sketch_shape_selector id="ConstraintEntityA"
747             label="First object" tooltip="Select line, circle or arc" shape_types="edge">
748           <validator id="PartSet_DifferentObjects"/>
749           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
750         </sketch_shape_selector>
751
752         <sketch_shape_selector id="ConstraintEntityB"
753             label="Second object" tooltip="Select line, circle or arc" shape_types="edge">
754           <validator id="SketchPlugin_EqualAttr" parameters="ConstraintEntityA"/>
755           <validator id="PartSet_DifferentObjects"/>
756           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
757         </sketch_shape_selector>
758         <validator id="PartSet_EqualSelection"/>
759       </feature>
760
761     <!--  SketchConstraintCollinear  -->
762       <feature id="SketchConstraintCollinear" title="Collinear" tooltip="Create constraint defining collinearity of two lines" icon="icons/Sketch/collinear.png">
763         <sketch_shape_selector id="ConstraintEntityA"
764             label="First line" tooltip="Select a line" shape_types="edge">
765           <validator id="GeomValidators_ShapeType" parameters="line"/>
766           <validator id="PartSet_DifferentObjects"/>
767         </sketch_shape_selector>
768
769         <sketch_shape_selector id="ConstraintEntityB"
770             label="Second line" tooltip="Select a line" shape_types="edge">
771           <validator id="GeomValidators_ShapeType" parameters="line"/>
772           <validator id="PartSet_DifferentObjects"/>
773         </sketch_shape_selector>
774         <validator id="PartSet_CollinearSelection"/>
775       </feature>
776
777     </group>
778
779   </workbench>
780 </plugin>