]> SALOME platform Git repositories - modules/shaper.git/blob - src/SketchPlugin/plugin-Sketch.xml
Salome HOME
Merge branch 'Pre_2.8.0_development'
[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 <!--                SketchEllipse SketchMacroEllipse-->
30                 SketchRectangle
31                 SketchProjection
32                 SketchConstraintLength SketchConstraintRadius SketchConstraintDistance SketchConstraintDistanceHorizontal SketchConstraintDistanceVertical
33                 SketchConstraintParallel SketchConstraintPerpendicular
34                 SketchConstraintRigid SketchConstraintHorizontal SketchConstraintVertical
35                 SketchConstraintEqual SketchConstraintTangent
36                 SketchFillet SketchSplit SketchTrim
37                 SketchConstraintCoincidence
38                 SketchConstraintMirror SketchConstraintAngle
39                 SketchMultiRotation SketchMultiTranslation
40                 SketchConstraintCollinear SketchConstraintMiddle"
41         when_nested="accept abort"
42         title="Sketch"
43         tooltip="Create sketch"
44         icon="icons/Sketch/sketch.png">
45         <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">
46           <validator id="GeomValidators_Face" parameters="plane"/>
47         </sketch-start-label>
48         <label id="SolverDOF"/>
49         <label id="SolverError" styleSheet="color : red; font : bold"/>
50         <validator id="SketchPlugin_SolverErrorValidator"/>
51       </feature>
52
53       <!-- SketchPoint -->
54       <feature id="SketchPoint" title="Point" tooltip="Create point" icon="icons/Sketch/point.png">
55         <sketch-2dpoint_selector id="PointCoordinates" accept_expressions="0" title="Point" tooltip="Point coordinates"
56                                  enable_value="enable_by_preferences"/>
57         <boolvalue id="Auxiliary" label="Auxiliary" default="false" tooltip="Construction element" obligatory="0"/>
58       </feature>
59
60       <!-- SketchLine -->
61       <feature id="SketchLine" title="Line" tooltip="Create line" icon="icons/Sketch/line.png">
62         <sketch-2dpoint_selector id="StartPoint" accept_expressions="0" title="Start point" tooltip="Start point coordinates"
63                                  enable_value="enable_by_preferences"/>
64         <sketch-2dpoint_selector id="EndPoint" accept_expressions="0" title="End point" tooltip="End point coordinates"
65                                  enable_value="enable_by_preferences"/>
66         <labelvalue id="LineLength" accept_expressions="0" label="Length:" default="computed" icon="icons/Sketch/distance_value.png"
67                      tooltip="Line length" obligatory="0" enable_value="false"/>
68         <boolvalue id="Auxiliary" label="Auxiliary" default="false" tooltip="Construction element" obligatory="0"/>
69         <validator id="GeomValidators_Different" parameters="StartPoint,EndPoint"/>
70       </feature>
71     </group>
72     <group id="Circular geometry">
73       <!-- SketchCircle is a hidden feature. It is created inside SketchMacroCircle. -->
74       <feature id="SketchCircle"
75                title="Circle"
76                tooltip="Create circle"
77                icon="icons/Sketch/circle.png"
78                internal="1">
79         <sketch-2dpoint_selector id="circle_center"
80                                  title="Center"
81                                  tooltip="Center coordinates"
82                                  accept_expressions="0"
83                                  enable_value="enable_by_preferences"/>
84         <labelvalue id="circle_radius"
85                     icon="icons/Sketch/radius.png"
86                     label="Radius:"
87                     tooltip="Set radius"
88                     default="computed"
89                     accept_expressions="0"
90                     enable_value="enable_by_preferences">
91         </labelvalue>
92         <boolvalue id="Auxiliary" label="Auxiliary" default="false" tooltip="Construction element" obligatory="0"/>
93       </feature>
94       <!-- SketchMacroCircle -->
95       <feature id="SketchMacroCircle"
96                icon="icons/Sketch/circle.png"
97                title="Circle"
98                tooltip="Create circle">
99         <toolbox id="circle_type" modified_in_edit="edit_circle_type">
100           <box id="circle_type_by_center_and_passed_points"
101                icon="icons/Sketch/circle_pt_rad_32x32.png"
102                title="Center and passed points">
103             <sketch-2dpoint_selector id="center_point"
104                                      reference_attribute="center_point_ref"
105                                      title="Center point"
106                                      tooltip="Center point coordinates"
107                                      accept_expressions="0"
108                                      enable_value="enable_by_preferences"/>
109             <sketch-2dpoint_selector id="passed_point"
110                                      reference_attribute="passed_point_ref"
111                                      title="Passed point"
112                                      tooltip="Passed point coordinates"
113                                      accept_expressions="0"
114                                      enable_value="enable_by_preferences">
115               <validator id="SketchPlugin_CirclePassedPointValidator"/>
116             </sketch-2dpoint_selector>
117             <validator id="GeomValidators_Different" parameters="center_point_ref,passed_point_ref"/>
118           </box>
119           <box id="circle_type_by_three_points"
120                icon="icons/Sketch/circle_3pt_32x32.png"
121                title="Three points">
122             <sketch-2dpoint_selector id="first_point"
123                                      reference_attribute="first_point_ref"
124                                      title="First point"
125                                      tooltip="First point"
126                                      accept_expressions="0"
127                                      enable_value="enable_by_preferences"/>
128             <sketch-2dpoint_selector id="second_point"
129                                      reference_attribute="second_point_ref"
130                                      title="Second point"
131                                      tooltip="Second point"
132                                      accept_expressions="0"
133                                      enable_value="enable_by_preferences">
134               <validator id="SketchPlugin_DifferentReference" parameters="first_point_ref,second_point_ref"/>
135             </sketch-2dpoint_selector>
136             <sketch-2dpoint_selector id="third_point"
137                                      reference_attribute="third_point_ref"
138                                      title="Third point"
139                                      tooltip="Third point"
140                                      accept_expressions="0"
141                                      enable_value="enable_by_preferences">
142               <validator id="SketchPlugin_DifferentReference" parameters="first_point_ref,second_point_ref,third_point_ref"/>
143               <validator id="SketchPlugin_ThirdPointValidator" parameters="third_point_ref"/>
144             </sketch-2dpoint_selector>
145             <validator id="GeomValidators_Different" parameters="first_point_ref,second_point_ref,third_point_ref"/>
146           </box>
147         </toolbox>
148         <labelvalue id="circle_radius"
149                     icon="icons/Sketch/radius.png"
150                     label="Radius:"
151                     tooltip="Set radius"
152                     default="computed"
153                     accept_expressions="0"
154                     obligatory="0"
155                     enable_value="enable_by_preferences">
156           <validator id="GeomValidators_Positive"/>
157         </labelvalue>
158         <boolvalue id="Auxiliary"
159                    tooltip="Construction element"
160                    label="Auxiliary"
161                    default="false"
162                    obligatory="0"/>
163       </feature>
164
165       <!-- SketchArc -->
166       <feature id="SketchArc"
167                icon="icons/Sketch/arc.png"
168                title="Arc"
169                tooltip="Create arc"
170                internal="1">
171         <sketch-2dpoint_selector id="center_point"
172                                  title="Center"
173                                  tooltip="Center of a circle"
174                                  accept_expressions="0"
175                                  enable_value="enable_by_preferences"/>
176         <sketch-2dpoint_selector id="start_point"
177                                  title="Start point"
178                                  tooltip="Start point"
179                                  accept_expressions="0"
180                                  enable_value="enable_by_preferences"/>
181         <sketch-2dpoint_selector id="end_point"
182                                  title="End point"
183                                  tooltip="End point"
184                                  accept_expressions="0"
185                                  enable_value="enable_by_preferences"/>
186         <validator id="GeomValidators_Different" parameters="center_point,start_point,end_point"/>
187         <labelvalue id="radius"
188                     icon="icons/Sketch/radius.png"
189                     label="Radius:"
190                     tooltip="Set radius"
191                     accept_expressions="0"
192                     min="0"
193                     default="0"
194                     obligatory="0"
195                     enable_value="enable_by_preferences">
196         </labelvalue>
197         <labelvalue id="angle"
198                     icon="icons/Sketch/angle.png"
199                     label="Angle:"
200                     tooltip="Set angle"
201                     default="0"
202                     use_reset="false"
203                     obligatory="0"
204                     enable_value="enable_by_preferences"/>
205         <boolvalue id="Auxiliary"
206                    label="Auxiliary"
207                    tooltip="Construction element"
208                    default="false"
209                    obligatory="0"/>
210       </feature>
211
212       <!-- SketchMacroArc -->
213       <feature
214         id="SketchMacroArc"
215         title="Arc"
216         tooltip="Create arc"
217         icon="icons/Sketch/arc.png">
218         <toolbox id="arc_type" modified_in_edit="edit_arc_type">
219           <box id="by_center_and_points"
220                icon="icons/Sketch/arc_base_32x32.png"
221                title="Center and two points">
222             <sketch-2dpoint_selector id="center_point"
223                                      reference_attribute="center_point_ref"
224                                      title="Center point"
225                                      tooltip="Center of a circle"
226                                      accept_expressions="0"
227                                      enable_value="enable_by_preferences" />
228             <sketch-2dpoint_selector id="start_point_1"
229                                      reference_attribute="start_point_ref"
230                                      title="Start point"
231                                      tooltip="Start point"
232                                      accept_expressions="0"
233                                      enable_value="enable_by_preferences"/>
234             <sketch-2dpoint_selector id="end_point_1"
235                                      reference_attribute="end_point_ref"
236                                      title="End point"
237                                      tooltip="End point"
238                                      accept_expressions="0"
239                                      enable_value="enable_by_preferences">
240               <validator id="SketchPlugin_ArcEndPointValidator" parameters="end_point_ref"/>
241               <validator id="SketchPlugin_ArcEndPointIntersectionValidator" parameters="end_point_ref"/>
242             </sketch-2dpoint_selector>
243             <validator id="GeomValidators_Different" parameters="center_point,start_point_1,end_point_1"/>
244           </box>
245           <box id="by_three_points"
246                icon="icons/Sketch/arc_3pt_32x32.png"
247                title="Three points on arc">
248             <sketch-2dpoint_selector id="start_point_2"
249                                      reference_attribute="start_point_ref"
250                                      title="Start point"
251                                      tooltip="Start point"
252                                      accept_expressions="0"
253                                      enable_value="enable_by_preferences"/>
254             <sketch-2dpoint_selector id="end_point_2"
255                                      reference_attribute="end_point_ref"
256                                      title="End point"
257                                      tooltip="End point"
258                                      accept_expressions="0"
259                                      enable_value="enable_by_preferences">
260               <validator id="GeomValidators_Different" parameters="start_point_2,end_point_2"/>
261               <validator id="SketchPlugin_DifferentPointReference" parameters="start_point_ref,end_point_ref"/>
262             </sketch-2dpoint_selector>
263             <sketch-2dpoint_selector id="passed_point"
264                                      reference_attribute="passed_point_ref"
265                                      title="Passed point"
266                                      tooltip="Passed point"
267                                      accept_expressions="0"
268                                      enable_value="enable_by_preferences">
269               <validator id="SketchPlugin_DifferentReference" parameters="start_point_ref,end_point_ref,passed_point_ref"/>
270               <validator id="SketchPlugin_ThirdPointValidator" parameters="passed_point_ref"/>
271             </sketch-2dpoint_selector>
272             <validator id="GeomValidators_Different" parameters="start_point_2,end_point_2,passed_point"/>
273           </box>
274           <box id="by_tangent_edge"
275                icon="icons/Sketch/arc_tang_32x32.png"
276                title="Tangent with edge">
277             <sketch_shape_selector id="tangent_point"
278                                    label="Tangent point"
279                                    tooltip="Select point on line"
280                                    shape_types="vertex">
281               <validator id="SketchPlugin_ArcTangentPoint"/>
282             </sketch_shape_selector>
283             <sketch-2dpoint_selector id="end_point_3"
284                                      reference_attribute="end_point_ref"
285                                      title="End point"
286                                      tooltip="End point"
287                                      accept_expressions="0"
288                                      enable_value="enable_by_preferences">
289               <validator id="SketchPlugin_ArcEndPointValidator" parameters="end_point_ref"/>
290             </sketch-2dpoint_selector>
291           </box>
292         </toolbox>
293         <labelvalue id="radius"
294                     icon="icons/Sketch/radius.png"
295                     label="Radius:"
296                     tooltip="Set radius"
297                     accept_expressions="0"
298                     min="0"
299                     default="0"
300                     obligatory="0"
301                     enable_value="enable_by_preferences">
302         </labelvalue>
303         <labelvalue id="angle"
304                     icon="icons/Sketch/angle.png"
305                     label="Angle:"
306                     tooltip="Set angle"
307                     default="0"
308                     use_reset="false"
309                     obligatory="0"
310                     enable_value="enable_by_preferences"/>
311         <boolvalue id="Auxiliary"
312                    label="Auxiliary"
313                    tooltip="Construction element"
314                    default="false"
315                    obligatory="0"/>
316       </feature>
317
318       <!--  SketchFillet  -->
319       <feature id="SketchFillet"
320                title="Fillet"
321                tooltip="Create constraint defining fillet between two objects"
322                icon="icons/Sketch/fillet.png">
323         <sketch_shape_selector id="fillet_point"
324                                label="Point"
325                                tooltip="Select point for fillet (should be shared by two entities only)"
326                                shape_types="vertex">
327           <validator id="SketchPlugin_FilletVertexValidator"/>
328         </sketch_shape_selector>
329         <!--<validator id="PartSet_FilletSelection"/>-->
330       </feature>
331       <!--  SketchSplit  -->
332       <feature id="SketchSplit" title="Split"
333                tooltip="Cut selected segment arc or circle on existing coincident points"
334                icon="icons/Sketch/split.png">
335         <sketch_feature_point_selector
336             id="SelectedObject"
337             selection_attributes="SelectedObject SelectedPoint PreviewObject PreviewPoint"
338             label="Segment"
339             tooltip="Select segment for split"
340             shape_types="edge"
341             use_external="false">
342           <validator id="SketchPlugin_SplitValidator"/>
343         </sketch_feature_point_selector>
344         <validator id="PartSet_SplitSelection"/>
345       </feature>
346       <!--  SketchTrim  -->
347       <feature id="SketchTrim" title="Trim"
348                tooltip="Trim selected segment arc or circle on intersection points nearest to the graphic selection"
349                icon="icons/Sketch/trim.png">
350         <sketch_feature_point_selector
351             id="SelectedObject"
352             selection_attributes="SelectedObject SelectedPoint PreviewObject PreviewPoint"
353             label="Segment"
354             tooltip="Select segment for trim"
355             shape_types="edge"
356             use_external="false">
357           <validator id="SketchPlugin_TrimValidator"/>
358         </sketch_feature_point_selector>
359         <validator id="PartSet_SplitSelection"/>
360       </feature>
361     </group>
362
363 <!--
364     <group id="Elliptic geometry">
365       <!-- SketchEllipse is a hidden feature. It is created inside SketchMacroEllipse. -->
366       <feature id="SketchEllipse"
367                title="Ellipse"
368                tooltip="Create ellipse"
369                icon="icons/Sketch/ellipse.png"
370                internal="1">
371         <sketch-2dpoint_selector id="ellipse_center"
372                                  title="Center"
373                                  tooltip="Center coordinates"
374                                  accept_expressions="0"
375                                  enable_value="enable_by_preferences"/>
376         <sketch-2dpoint_selector id="ellipse_focus"
377                                  title="Focus"
378                                  tooltip="Focus coordinates"
379                                  accept_expressions="0"
380                                  enable_value="enable_by_preferences"/>
381         <labelvalue id="ellipse_major_radius"
382                     icon="icons/Sketch/radius.png"
383                     label="Major radius:"
384                     tooltip="Set major radius"
385                     default="computed"
386                     accept_expressions="0"
387                     enable_value="enable_by_preferences">
388         </labelvalue>
389         <labelvalue id="ellipse_minor_radius"
390                     icon="icons/Sketch/radius.png"
391                     label="Minor radius:"
392                     tooltip="Set minor radius"
393                     default="computed"
394                     accept_expressions="0"
395                     enable_value="enable_by_preferences">
396         </labelvalue>
397         <boolvalue id="Auxiliary" label="Auxiliary" default="false" tooltip="Construction element" obligatory="0"/>
398       </feature>
399       <!-- SketchMacroEllipse -->
400       <feature id="SketchMacroEllipse"
401                icon="icons/Sketch/ellipse.png"
402                title="Ellipse"
403                tooltip="Create ellipse">
404         <sketch-2dpoint_selector id="center_point"
405                                  reference_attribute="center_point_ref"
406                                  title="Center point"
407                                  tooltip="Center point coordinates"
408                                  accept_expressions="0"
409                                  enable_value="enable_by_preferences"/>
410         <sketch-2dpoint_selector id="major_axis_point"
411                                  reference_attribute="major_axis_point_ref"
412                                  title="Major axis point"
413                                  tooltip="Major axis point coordinates"
414                                  accept_expressions="0"
415                                  enable_value="enable_by_preferences"/>
416         <sketch-2dpoint_selector id="passed_point"
417                                  reference_attribute="passed_point_ref"
418                                  title="Passed point"
419                                  tooltip="Passed point coordinates"
420                                  accept_expressions="0"
421                                  enable_value="enable_by_preferences">
422 <!--          <validator id="SketchPlugin_CirclePassedPointValidator"/> -->
423         </sketch-2dpoint_selector>
424 <!--        <validator id="GeomValidators_Different" parameters="center_point_ref,passed_point_ref"/> -->
425         <labelvalue id="ellipse_major_radius"
426                     icon="icons/Sketch/radius.png"
427                     label="Major radius:"
428                     tooltip="Set major radius"
429                     default="computed"
430                     accept_expressions="0"
431                     obligatory="0"
432                     enable_value="enable_by_preferences">
433           <validator id="GeomValidators_Positive"/>
434         </labelvalue>
435         <labelvalue id="ellipse_minor_radius"
436                     icon="icons/Sketch/radius.png"
437                     label="Minor radius:"
438                     tooltip="Set minor radius"
439                     default="computed"
440                     accept_expressions="0"
441                     obligatory="0"
442                     enable_value="enable_by_preferences">
443           <validator id="GeomValidators_Positive"/>
444         </labelvalue>
445         <boolvalue id="Auxiliary"
446                    tooltip="Construction element"
447                    label="Auxiliary"
448                    default="false"
449                    obligatory="0"/>
450       </feature>
451     </group>
452 -->
453
454     <group id="Projection">
455       <!-- Intersection Point -->
456       <!-- feature
457         id="SketchIntersectionPoint"
458         title="Intersection Point"
459         tooltip="Create intersection point"
460         icon="icons/Sketch/intersection_point.png">
461         <sketch_shape_selector
462               id="ExternalLine"
463               label="Edge"
464               tooltip="Select external line."
465               shape_types="edge"
466               use_external="false"
467               use_sketch_plane="false">
468           <validator id="GeomValidators_ShapeType" parameters="line"/>
469           <validator id="SketchPlugin_IntersectionValidator"/>
470         </sketch_shape_selector>
471       </feature -->
472
473       <!-- Projected feature -->
474       <feature
475         id="SketchProjection"
476         title="Projection"
477         tooltip="Project feature onto sketch plane"
478         icon="icons/Sketch/projection.png">
479         <sketch_shape_selector
480               id="ExternalFeature"
481               label="Edge"
482               tooltip="Select external edge."
483               shape_types="edge"
484               use_external="true"
485               can_create_external="false"
486               use_sketch_plane="false">
487           <validator id="SketchPlugin_ProjectionValidator"/>
488         </sketch_shape_selector>
489         <validator id="PartSet_ProjectionSelection"/>
490       </feature>
491     </group>
492
493     <group id="Replication">
494       <!--  SketchConstraintMirror  -->
495       <feature
496         id="SketchConstraintMirror"
497         title="Mirror" icon="icons/Sketch/mirror.png"
498         tooltip="Create constraint, mirroring group of objects">
499         <sketch_shape_selector id="ConstraintEntityA"
500             label="Mirror line" tooltip="Select mirror line" shape_types="edge">
501           <validator id="GeomValidators_ShapeType" parameters="line"/>
502         </sketch_shape_selector>
503         <sketch_multi_selector id="ConstraintMirrorList"
504             label="Segments:"
505             tooltip="Select list of objects to be mirrored"
506             type_choice="Edges"
507             use_external="true"
508             greed ="true">
509           <validator id="SketchPlugin_MirrorAttr" />
510         </sketch_multi_selector>
511         <validator id="PartSet_MultyTranslationSelection" />
512       </feature>
513
514       <!--  SketchMultiTranslation  -->
515       <feature
516         id="SketchMultiTranslation"
517         title="Translation" icon="icons/Sketch/translate.png"
518         tooltip="Multiple translation">
519         <sketch_multi_selector id="MultiTranslationList"
520             label="Segments:"
521             tooltip="Select list of objects to be translated"
522             type_choice="Edges"
523             use_external="true"
524             greed ="true">
525           <validator id="SketchPlugin_CopyValidator" />
526         </sketch_multi_selector>
527         <toolbox id="ValueType">
528           <box id="SingleValue" title="Single value" icon="icons/Sketch/translate_32x32.png">
529             <groupbox title="Direction">
530               <sketch_shape_selector
531                     id="MultiTranslationStartPoint"
532                     label="Start point"
533                     tooltip="Start point of translation"
534                     shape_types="vertex">
535                 <validator id="PartSet_DifferentObjects"/>
536                 <validator id="GeomValidators_ShapeType" parameters="vertex"/>
537               </sketch_shape_selector>
538               <sketch_shape_selector
539                     id="MultiTranslationEndPoint"
540                     label="End point"
541                     tooltip="Final point of translation"
542                     shape_types="vertex">
543                 <validator id="PartSet_DifferentObjects"/>
544                 <validator id="GeomValidators_ShapeType" parameters="vertex"/>
545               </sketch_shape_selector>
546             </groupbox>
547           </box>
548           <box id="FullValue" title="Full value" icon="icons/Sketch/translate_full_32x32.png">
549             <groupbox title="Direction">
550               <sketch_shape_selector
551                     id="MultiTranslationStartPoint"
552                     label="Start point"
553                     tooltip="Start point of translation"
554                     shape_types="vertex">
555                 <validator id="PartSet_DifferentObjects"/>
556                 <validator id="GeomValidators_ShapeType" parameters="vertex"/>
557               </sketch_shape_selector>
558               <sketch_shape_selector
559                     id="MultiTranslationEndPoint"
560                     label="End point"
561                     tooltip="Final point of translation"
562                     shape_types="vertex">
563                 <validator id="PartSet_DifferentObjects"/>
564                 <validator id="GeomValidators_ShapeType" parameters="vertex"/>
565               </sketch_shape_selector>
566             </groupbox>
567           </box>
568         </toolbox>
569         <integervalue id="MultiTranslationObjects"
570             label="Total number of objects"
571             tooltip="Total number of objects"
572             default="2" min="2" use_reset="false">
573           <validator id="GeomValidators_Positive"/>
574         </integervalue>
575         <validator id="PartSet_MultyTranslationSelection" />
576       </feature>
577
578       <!--  SketchMultiRotation  -->
579       <feature
580         id="SketchMultiRotation"
581         title="Rotation" icon="icons/Sketch/rotate.png"
582         tooltip="Multiple rotation">
583         <sketch_multi_selector id="MultiRotationList"
584             label="Segments:"
585             tooltip="Select list of objects to be rotated"
586             type_choice="Edges"
587             use_external="true"
588             greed ="true">
589           <validator id="SketchPlugin_CopyValidator" />
590         </sketch_multi_selector>
591         <sketch_shape_selector
592               id="MultiRotationCenter"
593               label="Center of rotation"
594               tooltip="Center of rotation"
595               shape_types="vertex">
596           <validator id="GeomValidators_ShapeType" parameters="vertex"/>
597         </sketch_shape_selector>
598         <toolbox id="AngleType">
599           <box id="SingleAngle" title="Single angle" icon="icons/Sketch/angle_up_32x32.png">
600             <doublevalue id="MultiRotationAngle"
601                          label="Angle"
602                          icon="icons/Sketch/angle.png"
603                          tooltip="Rotation angle"
604                          default="90" use_reset="false"/>
605           </box>
606           <box id="FullAngle" title="Full angle" icon="icons/Sketch/angle_up_full_32x32.png">
607             <doublevalue id="MultiRotationAngle"
608                          label="Angle"
609                          icon="icons/Sketch/angle.png"
610                          tooltip="Rotation angle"
611                          default="90" use_reset="false"/>
612           </box>
613         </toolbox>
614         <integervalue id="MultiRotationObjects"
615             label="Total number of objects"
616             tooltip="Total number of objects"
617             default="2" min="2" use_reset="false">
618           <validator id="GeomValidators_Positive"/>
619         </integervalue>
620         <validator id="PartSet_MultyTranslationSelection" />
621       </feature>
622     </group>
623
624     <group id="Dimensional constraints">
625     <!--  SketchConstraintDistance  -->
626       <feature
627         id="SketchConstraintDistance"
628         title="Distance"
629         tooltip="Set fixed distance from a point to an object"
630         icon="icons/Sketch/distance.png">
631         <label title="Select objects for distance definition. Following objects can be accepted: point, line or arc end point, center of circle or arc."/>
632         <sketch_shape_selector
633               id="ConstraintEntityA"
634               label="First object"
635               tooltip="Select point, line end point, line, center of circle or arc."
636               shape_types="edge vertex">
637           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
638           <validator id="PartSet_DifferentObjects"/>
639           <validator id="GeomValidators_ShapeType" parameters="vertex,line"/>
640         </sketch_shape_selector>
641         <sketch_shape_selector
642           id="ConstraintEntityB"
643           label="Second object"
644           tooltip="Select point, line end point, line, center of circle or arc."
645           shape_types="edge vertex">
646           <validator id="PartSet_DifferentObjects"/>
647           <validator id="SketchPlugin_DistanceAttr" parameters="ConstraintEntityA"/>
648           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
649           <validator id="GeomValidators_ShapeType" parameters="vertex,line"/>
650         </sketch_shape_selector>
651         <sketch-2dpoint_flyout_selector id="ConstraintFlyoutValuePnt"  default="computed" internal="1" obligatory="0"/>
652
653         <doublevalue_editor label="Value" tooltip="Distance" id="ConstraintValue" default="computed" min="0">
654           <validator id="GeomValidators_Positive"/>
655         </doublevalue_editor>
656
657         <validator id="PartSet_DistanceSelection"/>
658       </feature>
659
660       <!--  SketchConstraintDistanceHorizontal  -->
661       <feature
662         id="SketchConstraintDistanceHorizontal"
663         title="Horizontal Distance"
664         tooltip="Set horizontal distance between two points"
665         icon="icons/Sketch/distance_h.png">
666         <label title="Select points for distance definition."/>
667         <sketch_shape_selector
668               id="ConstraintEntityA"
669               label="First point"
670               tooltip="Select point."
671               shape_types="vertex">
672           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
673           <validator id="PartSet_DifferentObjects"/>
674           <validator id="GeomValidators_ShapeType" parameters="vertex"/>
675         </sketch_shape_selector>
676         <sketch_shape_selector
677           id="ConstraintEntityB"
678           label="Second point"
679           tooltip="Select point."
680           shape_types="vertex">
681           <validator id="PartSet_DifferentObjects"/>
682           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
683           <validator id="GeomValidators_ShapeType" parameters="vertex"/>
684         </sketch_shape_selector>
685         <sketch-2dpoint_flyout_selector id="ConstraintFlyoutValuePnt"  default="computed" internal="1" obligatory="0"/>
686
687         <doublevalue_editor label="Value" tooltip="Distance" id="ConstraintValue" default="computed"/>
688
689         <validator id="PartSet_DistanceSelection"/>
690       </feature>
691
692       <!--  SketchConstraintDistanceVertical  -->
693       <feature
694         id="SketchConstraintDistanceVertical"
695         title="Vertical Distance"
696         tooltip="Set vertical distance between two points"
697         icon="icons/Sketch/distance_v.png">
698         <label title="Select points for distance definition."/>
699         <sketch_shape_selector
700               id="ConstraintEntityA"
701               label="First point"
702               tooltip="Select point."
703               shape_types="vertex">
704           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
705           <validator id="PartSet_DifferentObjects"/>
706           <validator id="GeomValidators_ShapeType" parameters="vertex"/>
707         </sketch_shape_selector>
708         <sketch_shape_selector
709           id="ConstraintEntityB"
710           label="Second point"
711           tooltip="Select point."
712           shape_types="vertex">
713           <validator id="PartSet_DifferentObjects"/>
714           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
715           <validator id="GeomValidators_ShapeType" parameters="vertex"/>
716         </sketch_shape_selector>
717         <sketch-2dpoint_flyout_selector id="ConstraintFlyoutValuePnt"  default="computed" internal="1" obligatory="0"/>
718
719         <doublevalue_editor label="Value" tooltip="Distance" id="ConstraintValue" default="computed"/>
720
721         <validator id="PartSet_DistanceSelection"/>
722       </feature>
723
724       <!--  SketchConstraintLength  -->
725       <feature id="SketchConstraintLength" title="Length" tooltip="Set fixed length of a line segment" icon="icons/Sketch/length.png">
726         <label title="Select a line on which to calculate length" tooltip="Select a line on which to calculate length"/>
727         <shape_selector id="ConstraintEntityA" label="Line" tooltip="Select a line" shape_types="edge" >
728           <validator id="GeomValidators_ShapeType" parameters="line"/>
729         </shape_selector>
730         <sketch-2dpoint_flyout_selector id="ConstraintFlyoutValuePnt" default="computed" internal="1" obligatory="0"/>
731         <doublevalue_editor label="Value" tooltip="Length" id="ConstraintValue" default="computed">
732           <validator id="GeomValidators_Positive"/>
733         </doublevalue_editor>
734         <validator id="PartSet_LengthSelection"/>
735       </feature>
736
737       <!--  SketchConstraintAngle  -->
738       <feature id="SketchConstraintAngle" title="Angle" tooltip="Set fixed angle between two line segments" icon="icons/Sketch/angle_constr.png">
739         <sketch_shape_selector id="ConstraintEntityA" label="Line 1" tooltip="Select a line" shape_types="edge" >
740           <validator id="GeomValidators_ShapeType" parameters="line"/>
741           <validator id="PartSet_DifferentObjects"/>
742           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
743         </sketch_shape_selector>
744         <sketch_shape_selector id="ConstraintEntityB" label="Line 2" tooltip="Select a line" shape_types="edge" >
745           <validator id="GeomValidators_ShapeType" parameters="line"/>
746           <validator id="PartSet_DifferentObjects"/>
747           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
748         </sketch_shape_selector>
749         <sketch-2dpoint_flyout_selector id="ConstraintFlyoutValuePnt"  default="computed" internal="1" obligatory="0"/>
750         <doublevalue_editor label="Value" tooltip="Angle" id="AngleValue" default="computed" min="0" max="360" />
751         <validator id="PartSet_AngleSelection"/>
752         <module_choice id="AngleType"
753           widget_type="radiobuttons"
754           buttons_dir="horizontal"
755           label="Angle type"
756           tooltip="Type of angle"
757           string_list="Direct Complementary Additional"
758           icons_list="icons/Sketch/angle_direct.png icons/Sketch/angle_complementary.png icons/Sketch/angle_backward.png"
759           default="0"
760           />
761       </feature>
762
763       <!--  SketchConstraintRadius  -->
764       <feature id="SketchConstraintRadius" title="Radius" tooltip="Set fixed radius of a circle or an arc" icon="icons/Sketch/radius_constr.png">
765         <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"/>
766         <shape_selector id="ConstraintEntityA" label="Circle or Arc" tooltip="Select a circle or an arc"
767             shape_types="edge">
768           <validator id="GeomValidators_ShapeType" parameters="circle"/>
769         </shape_selector>
770         <sketch-2dpoint_flyout_selector id="ConstraintFlyoutValuePnt"  default="computed" internal="1" obligatory="0"/>
771         <doublevalue_editor label="Value" tooltip="Radius" id="ConstraintValue" default="computed">
772           <validator id="GeomValidators_Positive"/>
773         </doublevalue_editor>
774         <validator id="PartSet_RadiusSelection"/>
775       </feature>
776
777     </group>
778
779     <group id="Geometrical constraints">
780
781       <!--  SketchConstraintHorizontal  -->
782       <feature id="SketchConstraintHorizontal" title="Horizontal" tooltip="Create constraint defining horizontal line" icon="icons/Sketch/horisontal.png">
783         <sketch_shape_selector id="ConstraintEntityA"
784             label="Line" tooltip="Select a line" shape_types="edge" use_external="false">
785           <validator id="GeomValidators_ShapeType" parameters="line"/>
786           <validator id="SketchPlugin_HasNoConstraint" parameters="SketchConstraintHorizontal, SketchConstraintVertical"/>
787         </sketch_shape_selector>
788         <validator id="PartSet_HVDirSelection"/>
789       </feature>
790
791       <!--  SketchConstraintVertical  -->
792       <feature id="SketchConstraintVertical" title="Vertical" tooltip="Create constraint defining vertical line" icon="icons/Sketch/vertical.png">
793         <sketch_shape_selector id="ConstraintEntityA"
794             label="Line" tooltip="Select a line" shape_types="edge" use_external="false">
795           <validator id="GeomValidators_ShapeType" parameters="line"/>
796           <validator id="SketchPlugin_HasNoConstraint" parameters="SketchConstraintHorizontal, SketchConstraintVertical"/>
797         </sketch_shape_selector>
798         <validator id="PartSet_HVDirSelection"/>
799       </feature>
800
801       <!--  SketchConstraintRigid  -->
802       <feature id="SketchConstraintRigid" title="Fixed" tooltip="Fix an object" icon="icons/Sketch/fixed.png">
803         <sketch_shape_selector id="ConstraintEntityA" label="Object"
804                         tooltip="Select point, line end point, line, center of circle or arc."
805                         shape_types="edge vertex">
806           <validator id="GeomValidators_ShapeType" parameters="vertex,line,circle"/>
807           <validator id="SketchPlugin_NotFixed"/>
808         </sketch_shape_selector>
809         <validator id="PartSet_RigidSelection"/>
810       </feature>
811
812       <!--  SketchConstraintParallel  -->
813       <feature id="SketchConstraintParallel" title="Parallel" tooltip="Create constraint defining two parallel lines"
814                icon="icons/Sketch/parallel.png">
815         <sketch_shape_selector id="ConstraintEntityA"
816             label="First line" tooltip="Select a line" shape_types="edge">
817           <validator id="GeomValidators_ShapeType" parameters="line"/>
818           <validator id="PartSet_DifferentObjects"/>
819           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
820         </sketch_shape_selector>
821
822         <sketch_shape_selector id="ConstraintEntityB" label="Second line" tooltip="Select a line"
823             shape_types="edge">
824             <validator id="GeomValidators_ShapeType" parameters="line"/>
825             <validator id="PartSet_DifferentObjects"/>
826             <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
827         </sketch_shape_selector>
828         <validator id="PartSet_ParallelSelection"/>
829       </feature>
830
831     <!--  SketchConstraintPerpendicular  -->
832       <feature id="SketchConstraintPerpendicular" title="Perpendicular"
833         tooltip="Create constraint defining two perpendicular lines"
834         icon="icons/Sketch/perpendicular.png">
835         <sketch_shape_selector id="ConstraintEntityA"
836             label="First line" tooltip="Select a line"
837             shape_types="edge">
838           <validator id="PartSet_DifferentObjects"/>
839           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
840             <validator id="GeomValidators_ShapeType" parameters="line"/>
841         </sketch_shape_selector>
842
843         <sketch_shape_selector id="ConstraintEntityB"
844             label="Second line" tooltip="Select a line"
845             shape_types="edge">
846             <validator id="PartSet_DifferentObjects"/>
847           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
848             <validator id="GeomValidators_ShapeType" parameters="line"/>
849         </sketch_shape_selector>
850         <validator id="PartSet_PerpendicularSelection"/>
851       </feature>
852
853       <!--  SketchConstraintTangent  -->
854       <feature id="SketchConstraintTangent" title="Tangent" tooltip="Create constraint defining tangency of two objects with common coincident point" icon="icons/Sketch/tangent.png">
855         <sketch_shape_selector id="ConstraintEntityA"
856             label="First object" tooltip="Select line or arc" shape_types="edge">
857           <validator id="SketchPlugin_TangentAttr" parameters="ConstraintEntityB"/>
858           <validator id="PartSet_DifferentObjects"/>
859         </sketch_shape_selector>
860
861         <sketch_shape_selector id="ConstraintEntityB"
862             label="Second object" tooltip="Select line or arc" shape_types="edge">
863           <validator id="SketchPlugin_TangentAttr" parameters="ConstraintEntityA"/>
864           <validator id="PartSet_DifferentObjects"/>
865         </sketch_shape_selector>
866         <validator id="PartSet_TangentSelection"/>
867       </feature>
868
869       <!--  SketchConstraintCoincidence  -->
870       <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">
871         <sketch_shape_selector id="ConstraintEntityA" label="First object" tooltip="Select a first object" shape_types="vertex edge">
872           <validator id="PartSet_DifferentObjects"/>
873           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
874         </sketch_shape_selector>
875         <sketch_shape_selector id="ConstraintEntityB" label="Second object" tooltip="Select a second object" shape_types="vertex edge">
876           <validator id="PartSet_DifferentObjects"/>
877           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
878           <validator id="SketchPlugin_CoincidenceAttr" parameters="ConstraintEntityA"/>
879         </sketch_shape_selector>
880         <validator id="PartSet_CoincidentSelection"/>
881       </feature>
882
883       <!--  SketchConstraintMiddle  -->
884       <feature id="SketchConstraintMiddle" title="Middle point" tooltip="Create constraint for setting middle point on a line" icon="icons/Sketch/middlepoint.png">
885         <sketch_shape_selector id="ConstraintEntityA" label="First object" tooltip="Select a first object" shape_types="vertex edge">
886           <validator id="PartSet_DifferentObjects"/>
887           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
888           <validator id="SketchPlugin_MiddlePointAttr" parameters="ConstraintEntityB"/>
889         </sketch_shape_selector>
890         <sketch_shape_selector id="ConstraintEntityB" label="Second object" tooltip="Select a second object" shape_types="vertex edge">
891           <validator id="PartSet_DifferentObjects"/>
892           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
893           <validator id="SketchPlugin_MiddlePointAttr" parameters="ConstraintEntityA"/>
894         </sketch_shape_selector>
895         <validator id="PartSet_MiddlePointSelection"/>
896       </feature>
897
898       <!--  SketchConstraintEqual  -->
899       <feature id="SketchConstraintEqual" title="Equal"
900         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"
901         icon="icons/Sketch/equal.png">
902         <sketch_shape_selector id="ConstraintEntityA"
903             label="First object" tooltip="Select line, circle or arc" shape_types="edge">
904           <validator id="PartSet_DifferentObjects"/>
905           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityB"/>
906         </sketch_shape_selector>
907
908         <sketch_shape_selector id="ConstraintEntityB"
909             label="Second object" tooltip="Select line, circle or arc" shape_types="edge">
910           <validator id="SketchPlugin_EqualAttr" parameters="ConstraintEntityA"/>
911           <validator id="PartSet_DifferentObjects"/>
912           <validator id="SketchPlugin_ExternalValidator" parameters="ConstraintEntityA"/>
913         </sketch_shape_selector>
914         <validator id="PartSet_EqualSelection"/>
915       </feature>
916
917     <!--  SketchConstraintCollinear  -->
918       <feature id="SketchConstraintCollinear" title="Collinear" tooltip="Create constraint defining collinearity of two lines" icon="icons/Sketch/collinear.png">
919         <sketch_shape_selector id="ConstraintEntityA"
920             label="First line" tooltip="Select a line" shape_types="edge">
921           <validator id="GeomValidators_ShapeType" parameters="line"/>
922           <validator id="PartSet_DifferentObjects"/>
923         </sketch_shape_selector>
924
925         <sketch_shape_selector id="ConstraintEntityB"
926             label="Second line" tooltip="Select a line" shape_types="edge">
927           <validator id="GeomValidators_ShapeType" parameters="line"/>
928           <validator id="PartSet_DifferentObjects"/>
929         </sketch_shape_selector>
930         <validator id="PartSet_CollinearSelection"/>
931       </feature>
932
933     </group>
934
935   </workbench>
936 </plugin>