23
#include "PreCompiled.h"
28
#include <QApplication>
32
#include <App/OriginFeature.h>
33
#include <Gui/Action.h>
34
#include <Gui/Application.h>
35
#include <Gui/BitmapFactory.h>
36
#include <Gui/CommandT.h>
37
#include <Gui/Document.h>
38
#include <Gui/MainWindow.h>
39
#include <Gui/SelectionFilter.h>
40
#include <Gui/View3DInventor.h>
41
#include <Gui/View3DInventorViewer.h>
42
#include <Mod/Part/App/DatumFeature.h>
43
#include <Mod/Part/App/Geometry2d.h>
44
#include <Mod/Sketcher/App/Constraint.h>
45
#include <Mod/Sketcher/App/SketchObject.h>
47
#include "CircleEllipseConstructionMethod.h"
48
#include "GeometryCreationMode.h"
50
#include "ViewProviderSketch.h"
53
#include "DrawSketchHandler.h"
54
#include "DrawSketchHandlerArc.h"
55
#include "DrawSketchHandlerArcOfEllipse.h"
56
#include "DrawSketchHandlerArcOfHyperbola.h"
57
#include "DrawSketchHandlerArcOfParabola.h"
58
#include "DrawSketchHandlerArcSlot.h"
59
#include "DrawSketchHandlerBSpline.h"
60
#include "DrawSketchHandlerCarbonCopy.h"
61
#include "DrawSketchHandlerCircle.h"
62
#include "DrawSketchHandlerEllipse.h"
63
#include "DrawSketchHandlerExtend.h"
64
#include "DrawSketchHandlerExternal.h"
65
#include "DrawSketchHandlerFillet.h"
66
#include "DrawSketchHandlerLine.h"
67
#include "DrawSketchHandlerLineSet.h"
68
#include "DrawSketchHandlerPoint.h"
69
#include "DrawSketchHandlerPolygon.h"
70
#include "DrawSketchHandlerRectangle.h"
71
#include "DrawSketchHandlerSlot.h"
72
#include "DrawSketchHandlerSplitting.h"
73
#include "DrawSketchHandlerTrimming.h"
77
using namespace SketcherGui;
79
#define CONSTRUCTION_UPDATE_ACTION(CLASS, ICON) \
82
void CLASS::updateAction(int mode) \
84
auto act = getAction(); \
86
switch (static_cast<GeometryCreationMode>(mode)) { \
87
case GeometryCreationMode::Normal: \
88
act->setIcon(Gui::BitmapFactory().iconFromTheme(ICON)); \
90
case GeometryCreationMode::Construction: \
91
act->setIcon(Gui::BitmapFactory().iconFromTheme(ICON "_Constr")); \
99
GeometryCreationMode geometryCreationMode = GeometryCreationMode::Normal;
106
class CmdSketcherCompLine: public Gui::GroupCommand
109
CmdSketcherCompLine()
110
: GroupCommand("Sketcher_CompLine")
112
sAppModule = "Sketcher";
114
sMenuText = QT_TR_NOOP("Create polyline");
115
sToolTipText = QT_TR_NOOP("Create a polyline in the sketch. 'M' Key cycles behaviour");
116
sWhatsThis = "Sketcher_CompLine";
117
sStatusTip = sToolTipText;
122
addCommand("Sketcher_CreatePolyline");
123
addCommand("Sketcher_CreateLine");
126
void updateAction(int mode) override
128
Gui::ActionGroup* pcAction = qobject_cast<Gui::ActionGroup*>(getAction());
133
QList<QAction*> al = pcAction->actions();
134
int index = pcAction->property("defaultAction").toInt();
135
switch (static_cast<GeometryCreationMode>(mode)) {
136
case GeometryCreationMode::Normal:
137
al[0]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreatePolyline"));
138
al[1]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateLine"));
139
getAction()->setIcon(al[index]->icon());
141
case GeometryCreationMode::Construction:
143
Gui::BitmapFactory().iconFromTheme("Sketcher_CreatePolyline_Constr"));
144
al[1]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateLine_Constr"));
145
getAction()->setIcon(al[index]->icon());
150
const char* className() const override
152
return "CmdSketcherCompLine";
155
bool isActive() override
157
return isCommandActive(getActiveGuiDocument());
163
DEF_STD_CMD_AU(CmdSketcherCreateLine)
165
CmdSketcherCreateLine::CmdSketcherCreateLine()
166
: Command("Sketcher_CreateLine")
168
sAppModule = "Sketcher";
170
sMenuText = QT_TR_NOOP("Create line");
171
sToolTipText = QT_TR_NOOP("Create a line in the sketch");
172
sWhatsThis = "Sketcher_CreateLine";
173
sStatusTip = sToolTipText;
174
sPixmap = "Sketcher_CreateLine";
179
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreateLine, "Sketcher_CreateLine")
181
void CmdSketcherCreateLine::activated(int iMsg)
184
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerLine>());
187
bool CmdSketcherCreateLine::isActive()
189
return isCommandActive(getActiveGuiDocument());
194
DEF_STD_CMD_AU(CmdSketcherCreatePolyline)
196
CmdSketcherCreatePolyline::CmdSketcherCreatePolyline()
197
: Command("Sketcher_CreatePolyline")
199
sAppModule = "Sketcher";
201
sMenuText = QT_TR_NOOP("Create polyline");
202
sToolTipText = QT_TR_NOOP("Create a polyline in the sketch. 'M' Key cycles behaviour");
203
sWhatsThis = "Sketcher_CreatePolyline";
204
sStatusTip = sToolTipText;
205
sPixmap = "Sketcher_CreatePolyline";
210
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreatePolyline, "Sketcher_CreatePolyline")
212
void CmdSketcherCreatePolyline::activated(int iMsg)
215
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerLineSet>());
218
bool CmdSketcherCreatePolyline::isActive()
220
return isCommandActive(getActiveGuiDocument());
226
DEF_STD_CMD_AU(CmdSketcherCreateRectangle)
228
CmdSketcherCreateRectangle::CmdSketcherCreateRectangle()
229
: Command("Sketcher_CreateRectangle")
231
sAppModule = "Sketcher";
233
sMenuText = QT_TR_NOOP("Create rectangle");
234
sToolTipText = QT_TR_NOOP("Create a rectangle in the sketch");
235
sWhatsThis = "Sketcher_CreateRectangle";
236
sStatusTip = sToolTipText;
237
sPixmap = "Sketcher_CreateRectangle";
242
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreateRectangle, "Sketcher_CreateRectangle")
244
void CmdSketcherCreateRectangle::activated(int iMsg)
247
ActivateHandler(getActiveGuiDocument(),
248
std::make_unique<DrawSketchHandlerRectangle>(
249
ConstructionMethods::RectangleConstructionMethod::Diagonal));
252
bool CmdSketcherCreateRectangle::isActive()
254
return isCommandActive(getActiveGuiDocument());
257
DEF_STD_CMD_AU(CmdSketcherCreateRectangleCenter)
259
CmdSketcherCreateRectangleCenter::CmdSketcherCreateRectangleCenter()
260
: Command("Sketcher_CreateRectangle_Center")
262
sAppModule = "Sketcher";
264
sMenuText = QT_TR_NOOP("Create centered rectangle");
265
sToolTipText = QT_TR_NOOP("Create a centered rectangle in the sketch");
266
sWhatsThis = "Sketcher_CreateRectangle_Center";
267
sStatusTip = sToolTipText;
268
sPixmap = "Sketcher_CreateRectangle_Center";
273
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreateRectangleCenter, "Sketcher_CreateRectangle_Center")
275
void CmdSketcherCreateRectangleCenter::activated(int iMsg)
278
ActivateHandler(getActiveGuiDocument(),
279
std::make_unique<DrawSketchHandlerRectangle>(
280
ConstructionMethods::RectangleConstructionMethod::CenterAndCorner));
283
bool CmdSketcherCreateRectangleCenter::isActive()
285
return isCommandActive(getActiveGuiDocument());
291
DEF_STD_CMD_AU(CmdSketcherCreateOblong)
293
CmdSketcherCreateOblong::CmdSketcherCreateOblong()
294
: Command("Sketcher_CreateOblong")
296
sAppModule = "Sketcher";
298
sMenuText = QT_TR_NOOP("Create rounded rectangle");
299
sToolTipText = QT_TR_NOOP("Create a rounded rectangle in the sketch");
300
sWhatsThis = "Sketcher_CreateOblong";
301
sStatusTip = sToolTipText;
302
sPixmap = "Sketcher_CreateOblong";
307
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreateOblong, "Sketcher_CreateOblong")
309
void CmdSketcherCreateOblong::activated(int iMsg)
312
ActivateHandler(getActiveGuiDocument(),
313
std::make_unique<DrawSketchHandlerRectangle>(
314
ConstructionMethods::RectangleConstructionMethod::Diagonal,
318
bool CmdSketcherCreateOblong::isActive()
320
return isCommandActive(getActiveGuiDocument());
325
DEF_STD_CMD_ACLU(CmdSketcherCompCreateRectangles)
327
CmdSketcherCompCreateRectangles::CmdSketcherCompCreateRectangles()
328
: Command("Sketcher_CompCreateRectangles")
330
sAppModule = "Sketcher";
332
sMenuText = QT_TR_NOOP("Create rectangle");
333
sToolTipText = QT_TR_NOOP("Creates a rectangle in the sketch");
334
sWhatsThis = "Sketcher_CompCreateRectangles";
335
sStatusTip = sToolTipText;
339
void CmdSketcherCompCreateRectangles::activated(int iMsg)
342
ActivateHandler(getActiveGuiDocument(),
343
std::make_unique<DrawSketchHandlerRectangle>(
344
ConstructionMethods::RectangleConstructionMethod::Diagonal));
346
else if (iMsg == 1) {
347
ActivateHandler(getActiveGuiDocument(),
348
std::make_unique<DrawSketchHandlerRectangle>(
349
ConstructionMethods::RectangleConstructionMethod::CenterAndCorner));
351
else if (iMsg == 2) {
352
ActivateHandler(getActiveGuiDocument(),
353
std::make_unique<DrawSketchHandlerRectangle>(
354
ConstructionMethods::RectangleConstructionMethod::Diagonal,
363
Gui::ActionGroup* pcAction = qobject_cast<Gui::ActionGroup*>(_pcAction);
364
QList<QAction*> a = pcAction->actions();
366
assert(iMsg < a.size());
367
pcAction->setIcon(a[iMsg]->icon());
370
Gui::Action* CmdSketcherCompCreateRectangles::createAction()
372
Gui::ActionGroup* pcAction = new Gui::ActionGroup(this, Gui::getMainWindow());
373
pcAction->setDropDownMenu(true);
374
applyCommandData(this->className(), pcAction);
376
QAction* arc1 = pcAction->addAction(QString());
377
arc1->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateRectangle"));
378
QAction* arc2 = pcAction->addAction(QString());
379
arc2->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateRectangle_Center"));
380
QAction* arc3 = pcAction->addAction(QString());
381
arc3->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateOblong"));
383
_pcAction = pcAction;
386
pcAction->setIcon(arc1->icon());
388
pcAction->setProperty("defaultAction", QVariant(defaultId));
393
void CmdSketcherCompCreateRectangles::updateAction(int mode)
395
Gui::ActionGroup* pcAction = qobject_cast<Gui::ActionGroup*>(getAction());
400
QList<QAction*> a = pcAction->actions();
401
int index = pcAction->property("defaultAction").toInt();
402
switch (static_cast<GeometryCreationMode>(mode)) {
403
case GeometryCreationMode::Normal:
404
a[0]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateRectangle"));
405
a[1]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateRectangle_Center"));
406
a[2]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateOblong"));
407
getAction()->setIcon(a[index]->icon());
409
case GeometryCreationMode::Construction:
410
a[0]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateRectangle_Constr"));
412
Gui::BitmapFactory().iconFromTheme("Sketcher_CreateRectangle_Center_Constr"));
413
a[2]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateOblong_Constr"));
414
getAction()->setIcon(a[index]->icon());
419
void CmdSketcherCompCreateRectangles::languageChange()
421
Command::languageChange();
426
Gui::ActionGroup* pcAction = qobject_cast<Gui::ActionGroup*>(_pcAction);
427
QList<QAction*> a = pcAction->actions();
429
QAction* rectangle1 = a[0];
430
rectangle1->setText(QApplication::translate("CmdSketcherCompCreateRectangles", "Rectangle"));
431
rectangle1->setToolTip(
432
QApplication::translate("Sketcher_CreateRectangle", "Create a rectangle"));
433
rectangle1->setStatusTip(rectangle1->toolTip());
434
QAction* rectangle2 = a[1];
436
QApplication::translate("CmdSketcherCompCreateRectangles", "Centered rectangle"));
437
rectangle2->setToolTip(
438
QApplication::translate("Sketcher_CreateRectangle_Center", "Create a centered rectangle"));
439
rectangle2->setStatusTip(rectangle2->toolTip());
440
QAction* rectangle3 = a[2];
442
QApplication::translate("CmdSketcherCompCreateRectangles", "Rounded rectangle"));
443
rectangle3->setToolTip(
444
QApplication::translate("Sketcher_CreateOblong", "Create a rounded rectangle"));
445
rectangle3->setStatusTip(rectangle3->toolTip());
448
bool CmdSketcherCompCreateRectangles::isActive()
450
return isCommandActive(getActiveGuiDocument());
455
DEF_STD_CMD_AU(CmdSketcherCreateArc)
457
CmdSketcherCreateArc::CmdSketcherCreateArc()
458
: Command("Sketcher_CreateArc")
460
sAppModule = "Sketcher";
462
sMenuText = QT_TR_NOOP("Create arc by center");
463
sToolTipText = QT_TR_NOOP("Create an arc by its center and by its end points");
464
sWhatsThis = "Sketcher_CreateArc";
465
sStatusTip = sToolTipText;
466
sPixmap = "Sketcher_CreateArc";
471
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreateArc, "Sketcher_CreateArc")
473
void CmdSketcherCreateArc::activated(int iMsg)
476
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerArc>());
479
bool CmdSketcherCreateArc::isActive()
481
return isCommandActive(getActiveGuiDocument());
487
DEF_STD_CMD_AU(CmdSketcherCreate3PointArc)
489
CmdSketcherCreate3PointArc::CmdSketcherCreate3PointArc()
490
: Command("Sketcher_Create3PointArc")
492
sAppModule = "Sketcher";
494
sMenuText = QT_TR_NOOP("Create arc by 3 points");
495
sToolTipText = QT_TR_NOOP("Create an arc by its end points and a point along the arc");
496
sWhatsThis = "Sketcher_Create3PointArc";
497
sStatusTip = sToolTipText;
498
sPixmap = "Sketcher_Create3PointArc";
503
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreate3PointArc, "Sketcher_Create3PointArc")
505
void CmdSketcherCreate3PointArc::activated(int iMsg)
508
ActivateHandler(getActiveGuiDocument(),
509
std::make_unique<DrawSketchHandlerArc>(
510
ConstructionMethods::CircleEllipseConstructionMethod::ThreeRim));
513
bool CmdSketcherCreate3PointArc::isActive()
515
return isCommandActive(getActiveGuiDocument());
521
class CmdSketcherCompCreateArc: public Gui::GroupCommand
524
CmdSketcherCompCreateArc()
525
: GroupCommand("Sketcher_CompCreateArc")
527
sAppModule = "Sketcher";
529
sMenuText = QT_TR_NOOP("Create arc");
530
sToolTipText = QT_TR_NOOP("Create an arc in the sketch");
531
sWhatsThis = "Sketcher_CompCreateArc";
532
sStatusTip = sToolTipText;
538
addCommand("Sketcher_CreateArc");
539
addCommand("Sketcher_Create3PointArc");
540
addCommand("Sketcher_CreateArcOfEllipse");
541
addCommand("Sketcher_CreateArcOfHyperbola");
542
addCommand("Sketcher_CreateArcOfParabola");
545
void updateAction(int mode) override
547
Gui::ActionGroup* pcAction = qobject_cast<Gui::ActionGroup*>(getAction());
552
QList<QAction*> al = pcAction->actions();
553
int index = pcAction->property("defaultAction").toInt();
554
switch (static_cast<GeometryCreationMode>(mode)) {
555
case GeometryCreationMode::Normal:
556
al[0]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateArc"));
557
al[1]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_Create3PointArc"));
558
al[2]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateElliptical_Arc"));
559
al[3]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateHyperbolic_Arc"));
560
al[4]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateParabolic_Arc"));
561
getAction()->setIcon(al[index]->icon());
563
case GeometryCreationMode::Construction:
564
al[0]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateArc_Constr"));
566
Gui::BitmapFactory().iconFromTheme("Sketcher_Create3PointArc_Constr"));
568
Gui::BitmapFactory().iconFromTheme("Sketcher_CreateElliptical_Arc_Constr"));
570
Gui::BitmapFactory().iconFromTheme("Sketcher_CreateHyperbolic_Arc_Constr"));
572
Gui::BitmapFactory().iconFromTheme("Sketcher_CreateParabolic_Arc_Constr"));
573
getAction()->setIcon(al[index]->icon());
577
const char* className() const override
579
return "CmdSketcherCompCreateArc";
581
bool isActive() override
583
return isCommandActive(getActiveGuiDocument());
590
DEF_STD_CMD_AU(CmdSketcherCreateCircle)
592
CmdSketcherCreateCircle::CmdSketcherCreateCircle()
593
: Command("Sketcher_CreateCircle")
595
sAppModule = "Sketcher";
597
sMenuText = QT_TR_NOOP("Create circle by center");
598
sToolTipText = QT_TR_NOOP("Create a circle in the sketch");
599
sWhatsThis = "Sketcher_CreateCircle";
600
sStatusTip = sToolTipText;
601
sPixmap = "Sketcher_CreateCircle";
606
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreateCircle, "Sketcher_CreateCircle")
608
void CmdSketcherCreateCircle::activated(int iMsg)
611
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerCircle>());
614
bool CmdSketcherCreateCircle::isActive()
616
return isCommandActive(getActiveGuiDocument());
621
DEF_STD_CMD_AU(CmdSketcherCreateEllipseByCenter)
626
CmdSketcherCreateEllipseByCenter::CmdSketcherCreateEllipseByCenter()
627
: Command("Sketcher_CreateEllipseByCenter")
629
sAppModule = "Sketcher";
631
sMenuText = QT_TR_NOOP("Create ellipse by center");
632
sToolTipText = QT_TR_NOOP("Create an ellipse by center in the sketch");
633
sWhatsThis = "Sketcher_CreateEllipseByCenter";
634
sStatusTip = sToolTipText;
635
sPixmap = "Sketcher_CreateEllipseByCenter";
640
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreateEllipseByCenter, "Sketcher_CreateEllipseByCenter")
642
void CmdSketcherCreateEllipseByCenter::activated(int iMsg)
645
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerEllipse>());
648
bool CmdSketcherCreateEllipseByCenter::isActive()
650
return isCommandActive(getActiveGuiDocument());
654
DEF_STD_CMD_AU(CmdSketcherCreateEllipseBy3Points)
659
CmdSketcherCreateEllipseBy3Points::CmdSketcherCreateEllipseBy3Points()
660
: Command("Sketcher_CreateEllipseBy3Points")
662
sAppModule = "Sketcher";
664
sMenuText = QT_TR_NOOP("Create ellipse by 3 points");
665
sToolTipText = QT_TR_NOOP("Create an ellipse by 3 points in the sketch");
666
sWhatsThis = "Sketcher_CreateEllipseBy3Points";
667
sStatusTip = sToolTipText;
668
sPixmap = "Sketcher_CreateEllipse_3points";
673
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreateEllipseBy3Points, "Sketcher_CreateEllipse_3points")
675
void CmdSketcherCreateEllipseBy3Points::activated(int iMsg)
678
ActivateHandler(getActiveGuiDocument(),
679
std::make_unique<DrawSketchHandlerEllipse>(
680
ConstructionMethods::CircleEllipseConstructionMethod::ThreeRim));
683
bool CmdSketcherCreateEllipseBy3Points::isActive()
685
return isCommandActive(getActiveGuiDocument());
688
DEF_STD_CMD_AU(CmdSketcherCreateArcOfEllipse)
690
CmdSketcherCreateArcOfEllipse::CmdSketcherCreateArcOfEllipse()
691
: Command("Sketcher_CreateArcOfEllipse")
693
sAppModule = "Sketcher";
695
sMenuText = QT_TR_NOOP("Create arc of ellipse");
696
sToolTipText = QT_TR_NOOP("Create an arc of ellipse in the sketch");
697
sWhatsThis = "Sketcher_CreateArcOfEllipse";
698
sStatusTip = sToolTipText;
699
sPixmap = "Sketcher_CreateElliptical_Arc";
704
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreateArcOfEllipse, "Sketcher_CreateElliptical_Arc")
706
void CmdSketcherCreateArcOfEllipse::activated(int iMsg)
709
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerArcOfEllipse>());
712
bool CmdSketcherCreateArcOfEllipse::isActive()
714
return isCommandActive(getActiveGuiDocument());
717
DEF_STD_CMD_AU(CmdSketcherCreateArcOfHyperbola)
719
CmdSketcherCreateArcOfHyperbola::CmdSketcherCreateArcOfHyperbola()
720
: Command("Sketcher_CreateArcOfHyperbola")
722
sAppModule = "Sketcher";
724
sMenuText = QT_TR_NOOP("Create arc of hyperbola");
725
sToolTipText = QT_TR_NOOP("Create an arc of hyperbola in the sketch");
726
sWhatsThis = "Sketcher_CreateArcOfHyperbola";
727
sStatusTip = sToolTipText;
728
sPixmap = "Sketcher_CreateHyperbolic_Arc";
733
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreateArcOfHyperbola, "Sketcher_CreateHyperbolic_Arc")
735
void CmdSketcherCreateArcOfHyperbola::activated(int )
737
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerArcOfHyperbola>());
740
bool CmdSketcherCreateArcOfHyperbola::isActive()
742
return isCommandActive(getActiveGuiDocument());
745
DEF_STD_CMD_AU(CmdSketcherCreateArcOfParabola)
747
CmdSketcherCreateArcOfParabola::CmdSketcherCreateArcOfParabola()
748
: Command("Sketcher_CreateArcOfParabola")
750
sAppModule = "Sketcher";
752
sMenuText = QT_TR_NOOP("Create arc of parabola");
753
sToolTipText = QT_TR_NOOP("Create an arc of parabola in the sketch");
754
sWhatsThis = "Sketcher_CreateArcOfParabola";
755
sStatusTip = sToolTipText;
756
sPixmap = "Sketcher_CreateParabolic_Arc";
761
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreateArcOfParabola, "Sketcher_CreateParabolic_Arc")
763
void CmdSketcherCreateArcOfParabola::activated(int )
765
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerArcOfParabola>());
768
bool CmdSketcherCreateArcOfParabola::isActive()
770
return isCommandActive(getActiveGuiDocument());
775
class CmdSketcherCompCreateConic: public Gui::GroupCommand
778
CmdSketcherCompCreateConic()
779
: GroupCommand("Sketcher_CompCreateConic")
781
sAppModule = "Sketcher";
783
sMenuText = QT_TR_NOOP("Create conic");
784
sToolTipText = QT_TR_NOOP("Create a conic in the sketch");
785
sWhatsThis = "Sketcher_CompCreateConic";
786
sStatusTip = sToolTipText;
790
setRememberLast(true);
792
addCommand("Sketcher_CreateCircle");
793
addCommand("Sketcher_Create3PointCircle");
794
addCommand("Sketcher_CreateEllipseByCenter");
795
addCommand("Sketcher_CreateEllipseBy3Points");
798
void updateAction(int mode) override
800
Gui::ActionGroup* pcAction = qobject_cast<Gui::ActionGroup*>(getAction());
805
QList<QAction*> al = pcAction->actions();
806
int index = pcAction->property("defaultAction").toInt();
807
switch (static_cast<GeometryCreationMode>(mode)) {
808
case GeometryCreationMode::Normal:
809
al[0]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateCircle"));
810
al[1]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_Create3PointCircle"));
812
Gui::BitmapFactory().iconFromTheme("Sketcher_CreateEllipseByCenter"));
814
Gui::BitmapFactory().iconFromTheme("Sketcher_CreateEllipse_3points"));
815
getAction()->setIcon(al[index]->icon());
817
case GeometryCreationMode::Construction:
818
al[0]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateCircle_Constr"));
820
Gui::BitmapFactory().iconFromTheme("Sketcher_Create3PointCircle_Constr"));
822
Gui::BitmapFactory().iconFromTheme("Sketcher_CreateEllipseByCenter_Constr"));
824
Gui::BitmapFactory().iconFromTheme("Sketcher_CreateEllipse_3points_Constr"));
825
getAction()->setIcon(al[index]->icon());
829
const char* className() const override
831
return "CmdSketcherCompCreateConic";
833
bool isActive() override
835
return isCommandActive(getActiveGuiDocument());
841
DEF_STD_CMD_AU(CmdSketcherCreateBSpline)
843
CmdSketcherCreateBSpline::CmdSketcherCreateBSpline()
844
: Command("Sketcher_CreateBSpline")
846
sAppModule = "Sketcher";
848
sMenuText = QT_TR_NOOP("Create B-spline");
849
sToolTipText = QT_TR_NOOP("Create a B-spline by control points in the sketch.");
850
sWhatsThis = "Sketcher_CreateBSpline";
851
sStatusTip = sToolTipText;
852
sPixmap = "Sketcher_CreateBSpline";
857
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreateBSpline, "Sketcher_CreateBSpline")
859
void CmdSketcherCreateBSpline::activated(int iMsg)
862
ActivateHandler(getActiveGuiDocument(),
863
std::make_unique<DrawSketchHandlerBSpline>(
864
ConstructionMethods::BSplineConstructionMethod::ControlPoints));
867
bool CmdSketcherCreateBSpline::isActive()
869
return isCommandActive(getActiveGuiDocument());
873
DEF_STD_CMD_AU(CmdSketcherCreatePeriodicBSpline)
878
CmdSketcherCreatePeriodicBSpline::CmdSketcherCreatePeriodicBSpline()
879
: Command("Sketcher_CreatePeriodicBSpline")
881
sAppModule = "Sketcher";
883
sMenuText = QT_TR_NOOP("Create periodic B-spline");
884
sToolTipText = QT_TR_NOOP("Create a periodic B-spline by control points in the sketch.");
885
sWhatsThis = "Sketcher_CreatePeriodicBSpline";
886
sStatusTip = sToolTipText;
887
sPixmap = "Sketcher_Create_Periodic_BSpline";
892
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreatePeriodicBSpline, "Sketcher_Create_Periodic_BSpline")
894
void CmdSketcherCreatePeriodicBSpline::activated(int iMsg)
897
ActivateHandler(getActiveGuiDocument(),
898
std::make_unique<DrawSketchHandlerBSpline>(
899
ConstructionMethods::BSplineConstructionMethod::ControlPoints,
903
bool CmdSketcherCreatePeriodicBSpline::isActive()
905
return isCommandActive(getActiveGuiDocument());
910
DEF_STD_CMD_AU(CmdSketcherCreateBSplineByInterpolation)
912
CmdSketcherCreateBSplineByInterpolation::CmdSketcherCreateBSplineByInterpolation()
913
: Command("Sketcher_CreateBSplineByInterpolation")
915
sAppModule = "Sketcher";
917
sMenuText = QT_TR_NOOP("Create B-spline by knots");
918
sToolTipText = QT_TR_NOOP("Create a B-spline by knots, i.e. by interpolation, in the sketch.");
919
sWhatsThis = "Sketcher_CreateBSplineByInterpolation";
920
sStatusTip = sToolTipText;
921
sPixmap = "Sketcher_CreateBSplineByInterpolation";
926
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreateBSplineByInterpolation,
927
"Sketcher_CreateBSplineByInterpolation")
929
void CmdSketcherCreateBSplineByInterpolation::activated(int iMsg)
932
ActivateHandler(getActiveGuiDocument(),
933
std::make_unique<DrawSketchHandlerBSpline>(
934
ConstructionMethods::BSplineConstructionMethod::Knots));
937
bool CmdSketcherCreateBSplineByInterpolation::isActive()
939
return isCommandActive(getActiveGuiDocument());
944
DEF_STD_CMD_AU(CmdSketcherCreatePeriodicBSplineByInterpolation)
946
CmdSketcherCreatePeriodicBSplineByInterpolation::CmdSketcherCreatePeriodicBSplineByInterpolation()
947
: Command("Sketcher_CreatePeriodicBSplineByInterpolation")
949
sAppModule = "Sketcher";
951
sMenuText = QT_TR_NOOP("Create periodic B-spline by knots");
953
QT_TR_NOOP("Create a periodic B-spline by knots, i.e. by interpolation, in the sketch.");
954
sWhatsThis = "Sketcher_CreatePeriodicBSplineByInterpolation";
955
sStatusTip = sToolTipText;
956
sPixmap = "Sketcher_CreatePeriodicBSplineByInterpolation";
961
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreatePeriodicBSplineByInterpolation,
962
"Sketcher_CreatePeriodicBSplineByInterpolation")
964
void CmdSketcherCreatePeriodicBSplineByInterpolation::activated(int iMsg)
968
ActivateHandler(getActiveGuiDocument(),
969
std::make_unique<DrawSketchHandlerBSpline>(
970
ConstructionMethods::BSplineConstructionMethod::Knots,
974
bool CmdSketcherCreatePeriodicBSplineByInterpolation::isActive()
976
return isCommandActive(getActiveGuiDocument());
981
DEF_STD_CMD_ACLU(CmdSketcherCompCreateBSpline)
986
CmdSketcherCompCreateBSpline::CmdSketcherCompCreateBSpline()
987
: Command("Sketcher_CompCreateBSpline")
989
sAppModule = "Sketcher";
991
sMenuText = QT_TR_NOOP("Create B-spline");
992
sToolTipText = QT_TR_NOOP("Create a B-spline in the sketch");
993
sWhatsThis = "Sketcher_CompCreateBSpline";
994
sStatusTip = sToolTipText;
1002
void CmdSketcherCompCreateBSpline::activated(int iMsg)
1005
ActivateHandler(getActiveGuiDocument(),
1006
std::make_unique<DrawSketchHandlerBSpline>(
1007
ConstructionMethods::BSplineConstructionMethod::ControlPoints));
1009
else if (iMsg == 1) {
1010
ActivateHandler(getActiveGuiDocument(),
1011
std::make_unique<DrawSketchHandlerBSpline>(
1012
ConstructionMethods::BSplineConstructionMethod::ControlPoints,
1015
else if (iMsg == 2) {
1016
ActivateHandler(getActiveGuiDocument(),
1017
std::make_unique<DrawSketchHandlerBSpline>(
1018
ConstructionMethods::BSplineConstructionMethod::Knots));
1020
else if (iMsg == 3) {
1021
ActivateHandler(getActiveGuiDocument(),
1022
std::make_unique<DrawSketchHandlerBSpline>(
1023
ConstructionMethods::BSplineConstructionMethod::Knots,
1032
Gui::ActionGroup* pcAction = qobject_cast<Gui::ActionGroup*>(_pcAction);
1033
QList<QAction*> a = pcAction->actions();
1035
assert(iMsg < a.size());
1036
pcAction->setIcon(a[iMsg]->icon());
1039
Gui::Action* CmdSketcherCompCreateBSpline::createAction()
1041
Gui::ActionGroup* pcAction = new Gui::ActionGroup(this, Gui::getMainWindow());
1042
pcAction->setDropDownMenu(true);
1043
applyCommandData(this->className(), pcAction);
1045
QAction* bspline = pcAction->addAction(QString());
1046
bspline->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateBSpline"));
1048
QAction* periodicbspline = pcAction->addAction(QString());
1049
periodicbspline->setIcon(
1050
Gui::BitmapFactory().iconFromTheme("Sketcher_Create_Periodic_BSpline"));
1052
QAction* bsplinebyknot = pcAction->addAction(QString());
1053
bsplinebyknot->setIcon(
1054
Gui::BitmapFactory().iconFromTheme("Sketcher_CreateBSplineByInterpolation"));
1056
QAction* periodicbsplinebyknot = pcAction->addAction(QString());
1057
periodicbsplinebyknot->setIcon(
1058
Gui::BitmapFactory().iconFromTheme("Sketcher_CreatePeriodicBSplineByInterpolation"));
1060
_pcAction = pcAction;
1064
pcAction->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateBSpline"));
1066
pcAction->setProperty("defaultAction", QVariant(defaultId));
1071
void CmdSketcherCompCreateBSpline::updateAction(int mode)
1073
Gui::ActionGroup* pcAction = qobject_cast<Gui::ActionGroup*>(getAction());
1078
QList<QAction*> a = pcAction->actions();
1079
int index = pcAction->property("defaultAction").toInt();
1080
switch (static_cast<GeometryCreationMode>(mode)) {
1081
case GeometryCreationMode::Normal:
1082
a[0]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateBSpline"));
1083
a[1]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_Create_Periodic_BSpline"));
1085
Gui::BitmapFactory().iconFromTheme("Sketcher_CreateBSplineByInterpolation"));
1086
a[3]->setIcon(Gui::BitmapFactory().iconFromTheme(
1087
"Sketcher_CreatePeriodicBSplineByInterpolation"));
1088
getAction()->setIcon(a[index]->icon());
1090
case GeometryCreationMode::Construction:
1091
a[0]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateBSpline_Constr"));
1093
Gui::BitmapFactory().iconFromTheme("Sketcher_Create_Periodic_BSpline_Constr"));
1095
Gui::BitmapFactory().iconFromTheme("Sketcher_CreateBSplineByInterpolation_Constr"));
1096
a[3]->setIcon(Gui::BitmapFactory().iconFromTheme(
1097
"Sketcher_CreatePeriodicBSplineByInterpolation_Constr"));
1098
getAction()->setIcon(a[index]->icon());
1103
void CmdSketcherCompCreateBSpline::languageChange()
1105
Command::languageChange();
1110
Gui::ActionGroup* pcAction = qobject_cast<Gui::ActionGroup*>(_pcAction);
1111
QList<QAction*> a = pcAction->actions();
1113
QAction* bspline = a[0];
1115
QApplication::translate("Sketcher_CreateBSpline", "B-spline by control points"));
1116
bspline->setToolTip(
1117
QApplication::translate("Sketcher_CreateBSpline", "Create a B-spline by control points"));
1118
bspline->setStatusTip(
1119
QApplication::translate("Sketcher_CreateBSpline", "Create a B-spline by control points"));
1120
QAction* periodicbspline = a[1];
1121
periodicbspline->setText(QApplication::translate("Sketcher_Create_Periodic_BSpline",
1122
"Periodic B-spline by control points"));
1123
periodicbspline->setToolTip(
1124
QApplication::translate("Sketcher_Create_Periodic_BSpline",
1125
"Create a periodic B-spline by control points"));
1126
periodicbspline->setStatusTip(
1127
QApplication::translate("Sketcher_Create_Periodic_BSpline",
1128
"Create a periodic B-spline by control points"));
1129
QAction* bsplinebyknot = a[2];
1130
bsplinebyknot->setText(
1131
QApplication::translate("Sketcher_CreateBSplineByInterpolation", "B-spline by knots"));
1132
bsplinebyknot->setToolTip(QApplication::translate("Sketcher_CreateBSplineByInterpolation",
1133
"Create a B-spline by knots"));
1134
bsplinebyknot->setStatusTip(QApplication::translate("Sketcher_CreateBSplineByInterpolation",
1135
"Create a B-spline by knots"));
1136
QAction* periodicbsplinebyknot = a[3];
1137
periodicbsplinebyknot->setText(
1138
QApplication::translate("Sketcher_CreatePeriodicBSplineByInterpolation",
1139
"Periodic B-spline by knots"));
1140
periodicbsplinebyknot->setToolTip(
1141
QApplication::translate("Sketcher_CreatePeriodicBSplineByInterpolation",
1142
"Create a periodic B-spline by knots"));
1143
periodicbsplinebyknot->setStatusTip(
1144
QApplication::translate("Sketcher_CreatePeriodicBSplineByInterpolation",
1145
"Create a periodic B-spline by knots"));
1148
bool CmdSketcherCompCreateBSpline::isActive()
1150
return isCommandActive(getActiveGuiDocument());
1156
DEF_STD_CMD_AU(CmdSketcherCreate3PointCircle)
1158
CmdSketcherCreate3PointCircle::CmdSketcherCreate3PointCircle()
1159
: Command("Sketcher_Create3PointCircle")
1161
sAppModule = "Sketcher";
1162
sGroup = "Sketcher";
1163
sMenuText = QT_TR_NOOP("Create circle by 3 points");
1164
sToolTipText = QT_TR_NOOP("Create a circle by 3 perimeter points");
1165
sWhatsThis = "Sketcher_Create3PointCircle";
1166
sStatusTip = sToolTipText;
1167
sPixmap = "Sketcher_Create3PointCircle";
1172
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreate3PointCircle, "Sketcher_Create3PointCircle")
1174
void CmdSketcherCreate3PointCircle::activated(int iMsg)
1177
ActivateHandler(getActiveGuiDocument(),
1178
std::make_unique<DrawSketchHandlerCircle>(
1179
ConstructionMethods::CircleEllipseConstructionMethod::ThreeRim));
1182
bool CmdSketcherCreate3PointCircle::isActive()
1184
return isCommandActive(getActiveGuiDocument());
1190
DEF_STD_CMD_A(CmdSketcherCreatePoint)
1192
CmdSketcherCreatePoint::CmdSketcherCreatePoint()
1193
: Command("Sketcher_CreatePoint")
1195
sAppModule = "Sketcher";
1196
sGroup = "Sketcher";
1197
sMenuText = QT_TR_NOOP("Create point");
1198
sToolTipText = QT_TR_NOOP("Create a point in the sketch");
1199
sWhatsThis = "Sketcher_CreatePoint";
1200
sStatusTip = sToolTipText;
1201
sPixmap = "Sketcher_CreatePoint";
1206
void CmdSketcherCreatePoint::activated(int iMsg)
1209
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerPoint>());
1212
bool CmdSketcherCreatePoint::isActive()
1214
return isCommandActive(getActiveGuiDocument());
1219
DEF_STD_CMD_A(CmdSketcherCreateFillet)
1221
CmdSketcherCreateFillet::CmdSketcherCreateFillet()
1222
: Command("Sketcher_CreateFillet")
1224
sAppModule = "Sketcher";
1225
sGroup = "Sketcher";
1226
sMenuText = QT_TR_NOOP("Create fillet");
1227
sToolTipText = QT_TR_NOOP("Create a fillet between two lines or at a coincident point");
1228
sWhatsThis = "Sketcher_CreateFillet";
1229
sStatusTip = sToolTipText;
1230
sPixmap = "Sketcher_CreateFillet";
1235
void CmdSketcherCreateFillet::activated(int iMsg)
1238
ActivateHandler(getActiveGuiDocument(),
1239
std::make_unique<DrawSketchHandlerFillet>(
1240
ConstructionMethods::FilletConstructionMethod::Fillet));
1243
bool CmdSketcherCreateFillet::isActive()
1245
return isCommandActive(getActiveGuiDocument());
1250
DEF_STD_CMD_A(CmdSketcherCreateChamfer)
1252
CmdSketcherCreateChamfer::CmdSketcherCreateChamfer()
1253
: Command("Sketcher_CreateChamfer")
1255
sAppModule = "Sketcher";
1256
sGroup = "Sketcher";
1257
sMenuText = QT_TR_NOOP("Create chamfer");
1258
sToolTipText = QT_TR_NOOP("Create a chamfer between two lines or at a coincident point");
1259
sWhatsThis = "Sketcher_CreateChamfer";
1260
sStatusTip = sToolTipText;
1261
sPixmap = "Sketcher_CreateChamfer";
1266
void CmdSketcherCreateChamfer::activated(int iMsg)
1269
ActivateHandler(getActiveGuiDocument(),
1270
std::make_unique<DrawSketchHandlerFillet>(
1271
ConstructionMethods::FilletConstructionMethod::Chamfer));
1274
bool CmdSketcherCreateChamfer::isActive()
1276
return isCommandActive(getActiveGuiDocument());
1280
class CmdSketcherCompCreateFillets: public Gui::GroupCommand
1283
CmdSketcherCompCreateFillets()
1284
: GroupCommand("Sketcher_CompCreateFillets")
1286
sAppModule = "Sketcher";
1287
sGroup = "Sketcher";
1288
sMenuText = QT_TR_NOOP("Create fillet or chamfer");
1289
sToolTipText = QT_TR_NOOP("Create a fillet or chamfer between two lines");
1290
sWhatsThis = "Sketcher_CompCreateFillets";
1291
sStatusTip = sToolTipText;
1294
setCheckable(false);
1296
addCommand("Sketcher_CreateFillet");
1297
addCommand("Sketcher_CreateChamfer");
1300
const char* className() const override
1302
return "CmdSketcherCompCreateFillets";
1305
bool isActive() override
1307
return isCommandActive(getActiveGuiDocument());
1314
DEF_STD_CMD_A(CmdSketcherTrimming)
1316
CmdSketcherTrimming::CmdSketcherTrimming()
1317
: Command("Sketcher_Trimming")
1319
sAppModule = "Sketcher";
1320
sGroup = "Sketcher";
1321
sMenuText = QT_TR_NOOP("Trim edge");
1322
sToolTipText = QT_TR_NOOP("Trim an edge with respect to the picked position");
1323
sWhatsThis = "Sketcher_Trimming";
1324
sStatusTip = sToolTipText;
1325
sPixmap = "Sketcher_Trimming";
1330
void CmdSketcherTrimming::activated(int iMsg)
1333
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerTrimming>());
1336
bool CmdSketcherTrimming::isActive()
1338
return isCommandActive(getActiveGuiDocument());
1344
DEF_STD_CMD_A(CmdSketcherExtend)
1347
CmdSketcherExtend::CmdSketcherExtend()
1348
: Command("Sketcher_Extend")
1350
sAppModule = "Sketcher";
1351
sGroup = "Sketcher";
1352
sMenuText = QT_TR_NOOP("Extend edge");
1353
sToolTipText = QT_TR_NOOP("Extend an edge with respect to the picked position");
1354
sWhatsThis = "Sketcher_Extend";
1355
sStatusTip = sToolTipText;
1356
sPixmap = "Sketcher_Extend";
1361
void CmdSketcherExtend::activated(int iMsg)
1364
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerExtend>());
1367
bool CmdSketcherExtend::isActive()
1369
return isCommandActive(getActiveGuiDocument());
1375
DEF_STD_CMD_A(CmdSketcherSplit)
1378
CmdSketcherSplit::CmdSketcherSplit()
1379
: Command("Sketcher_Split")
1381
sAppModule = "Sketcher";
1382
sGroup = "Sketcher";
1383
sMenuText = QT_TR_NOOP("Split edge");
1384
sToolTipText = QT_TR_NOOP("Splits an edge into two while preserving constraints");
1385
sWhatsThis = "Sketcher_Split";
1386
sStatusTip = sToolTipText;
1387
sPixmap = "Sketcher_Split";
1392
void CmdSketcherSplit::activated(int iMsg)
1395
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerSplitting>());
1398
bool CmdSketcherSplit::isActive()
1400
return isCommandActive(getActiveGuiDocument());
1405
class CmdSketcherCompCurveEdition: public Gui::GroupCommand
1408
CmdSketcherCompCurveEdition()
1409
: GroupCommand("Sketcher_CompCurveEdition")
1411
sAppModule = "Sketcher";
1412
sGroup = "Sketcher";
1413
sMenuText = QT_TR_NOOP("Curve Edition");
1414
sToolTipText = QT_TR_NOOP("Curve Edition tools.");
1415
sWhatsThis = "Sketcher_CompCurveEdition";
1416
sStatusTip = sToolTipText;
1419
setCheckable(false);
1421
addCommand("Sketcher_Trimming");
1422
addCommand("Sketcher_Split");
1423
addCommand("Sketcher_Extend");
1426
const char* className() const override
1428
return "CmdSketcherCompCurveEdition";
1431
bool isActive() override
1433
return isCommandActive(getActiveGuiDocument());
1439
DEF_STD_CMD_A(CmdSketcherExternal)
1441
CmdSketcherExternal::CmdSketcherExternal()
1442
: Command("Sketcher_External")
1444
sAppModule = "Sketcher";
1445
sGroup = "Sketcher";
1446
sMenuText = QT_TR_NOOP("Create external geometry");
1447
sToolTipText = QT_TR_NOOP("Create an edge linked to an external geometry");
1448
sWhatsThis = "Sketcher_External";
1449
sStatusTip = sToolTipText;
1450
sPixmap = "Sketcher_External";
1455
void CmdSketcherExternal::activated(int iMsg)
1458
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerExternal>());
1461
bool CmdSketcherExternal::isActive()
1463
return isCommandActive(getActiveGuiDocument());
1468
DEF_STD_CMD_AU(CmdSketcherCarbonCopy)
1470
CmdSketcherCarbonCopy::CmdSketcherCarbonCopy()
1471
: Command("Sketcher_CarbonCopy")
1473
sAppModule = "Sketcher";
1474
sGroup = "Sketcher";
1475
sMenuText = QT_TR_NOOP("Create carbon copy");
1476
sToolTipText = QT_TR_NOOP("Copy the geometry of another sketch");
1477
sWhatsThis = "Sketcher_CarbonCopy";
1478
sStatusTip = sToolTipText;
1479
sPixmap = "Sketcher_CarbonCopy";
1484
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCarbonCopy, "Sketcher_CarbonCopy")
1486
void CmdSketcherCarbonCopy::activated(int iMsg)
1489
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerCarbonCopy>());
1492
bool CmdSketcherCarbonCopy::isActive()
1494
return isCommandActive(getActiveGuiDocument());
1499
class CmdSketcherCompSlot: public Gui::GroupCommand
1502
CmdSketcherCompSlot()
1503
: GroupCommand("Sketcher_CompSlot")
1505
sAppModule = "Sketcher";
1506
sGroup = "Sketcher";
1507
sMenuText = QT_TR_NOOP("Slots");
1508
sToolTipText = QT_TR_NOOP("Slot tools.");
1509
sWhatsThis = "Sketcher_CompSlot";
1510
sStatusTip = sToolTipText;
1513
setCheckable(false);
1515
addCommand("Sketcher_CreateSlot");
1516
addCommand("Sketcher_CreateArcSlot");
1519
void updateAction(int mode) override
1521
Gui::ActionGroup* pcAction = qobject_cast<Gui::ActionGroup*>(getAction());
1526
QList<QAction*> al = pcAction->actions();
1527
int index = pcAction->property("defaultAction").toInt();
1528
switch (static_cast<GeometryCreationMode>(mode)) {
1529
case GeometryCreationMode::Normal:
1530
al[0]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateSlot"));
1531
al[1]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateArcSlot"));
1532
getAction()->setIcon(al[index]->icon());
1534
case GeometryCreationMode::Construction:
1535
al[0]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateSlot_Constr"));
1536
al[1]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateArcSlot_Constr"));
1537
getAction()->setIcon(al[index]->icon());
1542
const char* className() const override
1544
return "CmdSketcherCompSlot";
1547
bool isActive() override
1549
return isCommandActive(getActiveGuiDocument());
1555
DEF_STD_CMD_AU(CmdSketcherCreateSlot)
1557
CmdSketcherCreateSlot::CmdSketcherCreateSlot()
1558
: Command("Sketcher_CreateSlot")
1560
sAppModule = "Sketcher";
1561
sGroup = "Sketcher";
1562
sMenuText = QT_TR_NOOP("Create slot");
1563
sToolTipText = QT_TR_NOOP("Create a slot in the sketch");
1564
sWhatsThis = "Sketcher_CreateSlot";
1565
sStatusTip = sToolTipText;
1566
sPixmap = "Sketcher_CreateSlot";
1571
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreateSlot, "Sketcher_CreateSlot")
1573
void CmdSketcherCreateSlot::activated(int iMsg)
1576
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerSlot>());
1579
bool CmdSketcherCreateSlot::isActive()
1581
return isCommandActive(getActiveGuiDocument());
1586
DEF_STD_CMD_AU(CmdSketcherCreateArcSlot)
1588
CmdSketcherCreateArcSlot::CmdSketcherCreateArcSlot()
1589
: Command("Sketcher_CreateArcSlot")
1591
sAppModule = "Sketcher";
1592
sGroup = "Sketcher";
1593
sMenuText = QT_TR_NOOP("Create arc slot");
1594
sToolTipText = QT_TR_NOOP("Create an arc slot in the sketch");
1595
sWhatsThis = "Sketcher_CreateArcSlot";
1596
sStatusTip = sToolTipText;
1597
sPixmap = "Sketcher_CreateArcSlot";
1602
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreateArcSlot, "Sketcher_CreateArcSlot")
1604
void CmdSketcherCreateArcSlot::activated(int iMsg)
1607
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerArcSlot>());
1610
bool CmdSketcherCreateArcSlot::isActive(void)
1612
return isCommandActive(getActiveGuiDocument());
1617
DEF_STD_CMD_AU(CmdSketcherCreateTriangle)
1619
CmdSketcherCreateTriangle::CmdSketcherCreateTriangle()
1620
: Command("Sketcher_CreateTriangle")
1622
sAppModule = "Sketcher";
1623
sGroup = "Sketcher";
1624
sMenuText = QT_TR_NOOP("Create equilateral triangle");
1625
sToolTipText = QT_TR_NOOP("Create an equilateral triangle in the sketch");
1626
sWhatsThis = "Sketcher_CreateTriangle";
1627
sStatusTip = sToolTipText;
1628
sPixmap = "Sketcher_CreateTriangle";
1633
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreateTriangle, "Sketcher_CreateTriangle")
1635
void CmdSketcherCreateTriangle::activated(int iMsg)
1638
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerPolygon>(3));
1641
bool CmdSketcherCreateTriangle::isActive()
1643
return isCommandActive(getActiveGuiDocument());
1646
DEF_STD_CMD_AU(CmdSketcherCreateSquare)
1648
CmdSketcherCreateSquare::CmdSketcherCreateSquare()
1649
: Command("Sketcher_CreateSquare")
1651
sAppModule = "Sketcher";
1652
sGroup = "Sketcher";
1653
sMenuText = QT_TR_NOOP("Create square");
1654
sToolTipText = QT_TR_NOOP("Create a square in the sketch");
1655
sWhatsThis = "Sketcher_CreateSquare";
1656
sStatusTip = sToolTipText;
1657
sPixmap = "Sketcher_CreateSquare";
1662
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreateSquare, "Sketcher_CreateSquare")
1664
void CmdSketcherCreateSquare::activated(int iMsg)
1667
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerPolygon>(4));
1670
bool CmdSketcherCreateSquare::isActive()
1672
return isCommandActive(getActiveGuiDocument());
1675
DEF_STD_CMD_AU(CmdSketcherCreatePentagon)
1677
CmdSketcherCreatePentagon::CmdSketcherCreatePentagon()
1678
: Command("Sketcher_CreatePentagon")
1680
sAppModule = "Sketcher";
1681
sGroup = "Sketcher";
1682
sMenuText = QT_TR_NOOP("Create pentagon");
1683
sToolTipText = QT_TR_NOOP("Create a pentagon in the sketch");
1684
sWhatsThis = "Sketcher_CreatePentagon";
1685
sStatusTip = sToolTipText;
1686
sPixmap = "Sketcher_CreatePentagon";
1691
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreatePentagon, "Sketcher_CreatePentagon")
1693
void CmdSketcherCreatePentagon::activated(int iMsg)
1696
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerPolygon>(5));
1699
bool CmdSketcherCreatePentagon::isActive()
1701
return isCommandActive(getActiveGuiDocument());
1705
DEF_STD_CMD_AU(CmdSketcherCreateHexagon)
1707
CmdSketcherCreateHexagon::CmdSketcherCreateHexagon()
1708
: Command("Sketcher_CreateHexagon")
1710
sAppModule = "Sketcher";
1711
sGroup = "Sketcher";
1712
sMenuText = QT_TR_NOOP("Create hexagon");
1713
sToolTipText = QT_TR_NOOP("Create a hexagon in the sketch");
1714
sWhatsThis = "Sketcher_CreateHexagon";
1715
sStatusTip = sToolTipText;
1716
sPixmap = "Sketcher_CreateHexagon";
1721
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreateHexagon, "Sketcher_CreateHexagon")
1723
void CmdSketcherCreateHexagon::activated(int iMsg)
1726
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerPolygon>(6));
1729
bool CmdSketcherCreateHexagon::isActive()
1731
return isCommandActive(getActiveGuiDocument());
1734
DEF_STD_CMD_AU(CmdSketcherCreateHeptagon)
1736
CmdSketcherCreateHeptagon::CmdSketcherCreateHeptagon()
1737
: Command("Sketcher_CreateHeptagon")
1739
sAppModule = "Sketcher";
1740
sGroup = "Sketcher";
1741
sMenuText = QT_TR_NOOP("Create heptagon");
1742
sToolTipText = QT_TR_NOOP("Create a heptagon in the sketch");
1743
sWhatsThis = "Sketcher_CreateHeptagon";
1744
sStatusTip = sToolTipText;
1745
sPixmap = "Sketcher_CreateHeptagon";
1750
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreateHeptagon, "Sketcher_CreateHeptagon")
1752
void CmdSketcherCreateHeptagon::activated(int iMsg)
1755
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerPolygon>(7));
1758
bool CmdSketcherCreateHeptagon::isActive()
1760
return isCommandActive(getActiveGuiDocument());
1763
DEF_STD_CMD_AU(CmdSketcherCreateOctagon)
1765
CmdSketcherCreateOctagon::CmdSketcherCreateOctagon()
1766
: Command("Sketcher_CreateOctagon")
1768
sAppModule = "Sketcher";
1769
sGroup = "Sketcher";
1770
sMenuText = QT_TR_NOOP("Create octagon");
1771
sToolTipText = QT_TR_NOOP("Create an octagon in the sketch");
1772
sWhatsThis = "Sketcher_CreateOctagon";
1773
sStatusTip = sToolTipText;
1774
sPixmap = "Sketcher_CreateOctagon";
1779
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreateOctagon, "Sketcher_CreateOctagon")
1781
void CmdSketcherCreateOctagon::activated(int iMsg)
1784
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerPolygon>(8));
1787
bool CmdSketcherCreateOctagon::isActive()
1789
return isCommandActive(getActiveGuiDocument());
1792
DEF_STD_CMD_AU(CmdSketcherCreateRegularPolygon)
1794
CmdSketcherCreateRegularPolygon::CmdSketcherCreateRegularPolygon()
1795
: Command("Sketcher_CreateRegularPolygon")
1797
sAppModule = "Sketcher";
1798
sGroup = "Sketcher";
1799
sMenuText = QT_TR_NOOP("Create regular polygon");
1800
sToolTipText = QT_TR_NOOP("Create a regular polygon in the sketch");
1801
sWhatsThis = "Sketcher_CreateRegularPolygon";
1802
sStatusTip = sToolTipText;
1803
sPixmap = "Sketcher_CreateRegularPolygon";
1808
CONSTRUCTION_UPDATE_ACTION(CmdSketcherCreateRegularPolygon, "Sketcher_CreateRegularPolygon")
1810
void CmdSketcherCreateRegularPolygon::activated(int iMsg)
1815
SketcherRegularPolygonDialog srpd;
1816
if (srpd.exec() == QDialog::Accepted) {
1817
ActivateHandler(getActiveGuiDocument(),
1818
std::make_unique<DrawSketchHandlerPolygon>(srpd.sides));
1822
bool CmdSketcherCreateRegularPolygon::isActive()
1824
return isCommandActive(getActiveGuiDocument());
1827
DEF_STD_CMD_ACLU(CmdSketcherCompCreateRegularPolygon)
1829
CmdSketcherCompCreateRegularPolygon::CmdSketcherCompCreateRegularPolygon()
1830
: Command("Sketcher_CompCreateRegularPolygon")
1832
sAppModule = "Sketcher";
1833
sGroup = "Sketcher";
1834
sMenuText = QT_TR_NOOP("Create regular polygon");
1835
sToolTipText = QT_TR_NOOP("Create a regular polygon in the sketcher");
1836
sWhatsThis = "Sketcher_CompCreateRegularPolygon";
1837
sStatusTip = sToolTipText;
1842
void CmdSketcherCompCreateRegularPolygon::activated(int iMsg)
1846
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerPolygon>(3));
1849
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerPolygon>(4));
1852
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerPolygon>(5));
1855
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerPolygon>(6));
1858
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerPolygon>(7));
1861
ActivateHandler(getActiveGuiDocument(), std::make_unique<DrawSketchHandlerPolygon>(8));
1865
SketcherRegularPolygonDialog srpd;
1866
if (srpd.exec() == QDialog::Accepted) {
1867
ActivateHandler(getActiveGuiDocument(),
1868
std::make_unique<DrawSketchHandlerPolygon>(srpd.sides));
1877
Gui::ActionGroup* pcAction = qobject_cast<Gui::ActionGroup*>(_pcAction);
1878
QList<QAction*> a = pcAction->actions();
1880
assert(iMsg < a.size());
1881
pcAction->setIcon(a[iMsg]->icon());
1884
Gui::Action* CmdSketcherCompCreateRegularPolygon::createAction()
1886
Gui::ActionGroup* pcAction = new Gui::ActionGroup(this, Gui::getMainWindow());
1887
pcAction->setDropDownMenu(true);
1888
applyCommandData(this->className(), pcAction);
1890
QAction* triangle = pcAction->addAction(QString());
1891
triangle->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateTriangle"));
1892
QAction* square = pcAction->addAction(QString());
1893
square->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateSquare"));
1894
QAction* pentagon = pcAction->addAction(QString());
1895
pentagon->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreatePentagon"));
1896
QAction* hexagon = pcAction->addAction(QString());
1897
hexagon->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateHexagon"));
1898
QAction* heptagon = pcAction->addAction(QString());
1899
heptagon->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateHeptagon"));
1900
QAction* octagon = pcAction->addAction(QString());
1901
octagon->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateOctagon"));
1902
QAction* regular = pcAction->addAction(QString());
1903
regular->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateRegularPolygon"));
1905
_pcAction = pcAction;
1908
pcAction->setIcon(hexagon->icon());
1910
pcAction->setProperty("defaultAction", QVariant(defaultId));
1915
void CmdSketcherCompCreateRegularPolygon::updateAction(int mode)
1917
Gui::ActionGroup* pcAction = qobject_cast<Gui::ActionGroup*>(getAction());
1922
QList<QAction*> a = pcAction->actions();
1923
int index = pcAction->property("defaultAction").toInt();
1924
switch (static_cast<GeometryCreationMode>(mode)) {
1925
case GeometryCreationMode::Normal:
1926
a[0]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateTriangle"));
1927
a[1]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateSquare"));
1928
a[2]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreatePentagon"));
1929
a[3]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateHexagon"));
1930
a[4]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateHeptagon"));
1931
a[5]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateOctagon"));
1932
a[6]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateRegularPolygon"));
1933
getAction()->setIcon(a[index]->icon());
1935
case GeometryCreationMode::Construction:
1936
a[0]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateTriangle_Constr"));
1937
a[1]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateSquare_Constr"));
1938
a[2]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreatePentagon_Constr"));
1939
a[3]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateHexagon_Constr"));
1940
a[4]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateHeptagon_Constr"));
1941
a[5]->setIcon(Gui::BitmapFactory().iconFromTheme("Sketcher_CreateOctagon_Constr"));
1943
Gui::BitmapFactory().iconFromTheme("Sketcher_CreateRegularPolygon_Constr"));
1944
getAction()->setIcon(a[index]->icon());
1949
void CmdSketcherCompCreateRegularPolygon::languageChange()
1951
Command::languageChange();
1956
Gui::ActionGroup* pcAction = qobject_cast<Gui::ActionGroup*>(_pcAction);
1957
QList<QAction*> a = pcAction->actions();
1959
QAction* triangle = a[0];
1960
triangle->setText(QApplication::translate("CmdSketcherCompCreateRegularPolygon", "Triangle"));
1961
triangle->setToolTip(
1962
QApplication::translate("Sketcher_CreateTriangle",
1963
"Create an equilateral triangle by its center and by one corner"));
1964
triangle->setStatusTip(
1965
QApplication::translate("Sketcher_CreateTriangle",
1966
"Create an equilateral triangle by its center and by one corner"));
1967
QAction* square = a[1];
1968
square->setText(QApplication::translate("CmdSketcherCompCreateRegularPolygon", "Square"));
1969
square->setToolTip(QApplication::translate("Sketcher_CreateSquare",
1970
"Create a square by its center and by one corner"));
1971
square->setStatusTip(
1972
QApplication::translate("Sketcher_CreateSquare",
1973
"Create a square by its center and by one corner"));
1974
QAction* pentagon = a[2];
1975
pentagon->setText(QApplication::translate("CmdSketcherCompCreateRegularPolygon", "Pentagon"));
1976
pentagon->setToolTip(
1977
QApplication::translate("Sketcher_CreatePentagon",
1978
"Create a pentagon by its center and by one corner"));
1979
pentagon->setStatusTip(
1980
QApplication::translate("Sketcher_CreatePentagon",
1981
"Create a pentagon by its center and by one corner"));
1982
QAction* hexagon = a[3];
1983
hexagon->setText(QApplication::translate("CmdSketcherCompCreateRegularPolygon", "Hexagon"));
1984
hexagon->setToolTip(
1985
QApplication::translate("Sketcher_CreateHexagon",
1986
"Create a hexagon by its center and by one corner"));
1987
hexagon->setStatusTip(
1988
QApplication::translate("Sketcher_CreateHexagon",
1989
"Create a hexagon by its center and by one corner"));
1990
QAction* heptagon = a[4];
1991
heptagon->setText(QApplication::translate("CmdSketcherCompCreateRegularPolygon", "Heptagon"));
1992
heptagon->setToolTip(
1993
QApplication::translate("Sketcher_CreateHeptagon",
1994
"Create a heptagon by its center and by one corner"));
1995
heptagon->setStatusTip(
1996
QApplication::translate("Sketcher_CreateHeptagon",
1997
"Create a heptagon by its center and by one corner"));
1998
QAction* octagon = a[5];
1999
octagon->setText(QApplication::translate("CmdSketcherCompCreateRegularPolygon", "Octagon"));
2000
octagon->setToolTip(
2001
QApplication::translate("Sketcher_CreateOctagon",
2002
"Create an octagon by its center and by one corner"));
2003
octagon->setStatusTip(
2004
QApplication::translate("Sketcher_CreateOctagon",
2005
"Create an octagon by its center and by one corner"));
2006
QAction* regular = a[6];
2008
QApplication::translate("CmdSketcherCompCreateRegularPolygon", "Regular polygon"));
2009
regular->setToolTip(
2010
QApplication::translate("Sketcher_CreateOctagon",
2011
"Create a regular polygon by its center and by one corner"));
2012
regular->setStatusTip(
2013
QApplication::translate("Sketcher_CreateOctagon",
2014
"Create a regular polygon by its center and by one corner"));
2017
bool CmdSketcherCompCreateRegularPolygon::isActive()
2019
return isCommandActive(getActiveGuiDocument());
2022
void CreateSketcherCommandsCreateGeo()
2024
Gui::CommandManager& rcCmdMgr = Gui::Application::Instance->commandManager();
2026
rcCmdMgr.addCommand(new CmdSketcherCreatePoint());
2027
rcCmdMgr.addCommand(new CmdSketcherCreateArc());
2028
rcCmdMgr.addCommand(new CmdSketcherCreate3PointArc());
2029
rcCmdMgr.addCommand(new CmdSketcherCreateCircle());
2030
rcCmdMgr.addCommand(new CmdSketcherCreate3PointCircle());
2031
rcCmdMgr.addCommand(new CmdSketcherCreateEllipseByCenter());
2032
rcCmdMgr.addCommand(new CmdSketcherCreateEllipseBy3Points());
2033
rcCmdMgr.addCommand(new CmdSketcherCompCreateConic());
2034
rcCmdMgr.addCommand(new CmdSketcherCreateArcOfEllipse());
2035
rcCmdMgr.addCommand(new CmdSketcherCreateArcOfHyperbola());
2036
rcCmdMgr.addCommand(new CmdSketcherCreateArcOfParabola());
2037
rcCmdMgr.addCommand(new CmdSketcherCompCreateArc());
2038
rcCmdMgr.addCommand(new CmdSketcherCreateBSpline());
2039
rcCmdMgr.addCommand(new CmdSketcherCreatePeriodicBSpline());
2040
rcCmdMgr.addCommand(new CmdSketcherCreateBSplineByInterpolation());
2041
rcCmdMgr.addCommand(new CmdSketcherCreatePeriodicBSplineByInterpolation());
2042
rcCmdMgr.addCommand(new CmdSketcherCompCreateBSpline());
2043
rcCmdMgr.addCommand(new CmdSketcherCreateLine());
2044
rcCmdMgr.addCommand(new CmdSketcherCreatePolyline());
2045
rcCmdMgr.addCommand(new CmdSketcherCreateRectangle());
2046
rcCmdMgr.addCommand(new CmdSketcherCreateRectangleCenter());
2047
rcCmdMgr.addCommand(new CmdSketcherCreateOblong());
2048
rcCmdMgr.addCommand(new CmdSketcherCompCreateRegularPolygon());
2049
rcCmdMgr.addCommand(new CmdSketcherCreateTriangle());
2050
rcCmdMgr.addCommand(new CmdSketcherCreateSquare());
2051
rcCmdMgr.addCommand(new CmdSketcherCreatePentagon());
2052
rcCmdMgr.addCommand(new CmdSketcherCreateHexagon());
2053
rcCmdMgr.addCommand(new CmdSketcherCreateHeptagon());
2054
rcCmdMgr.addCommand(new CmdSketcherCreateOctagon());
2055
rcCmdMgr.addCommand(new CmdSketcherCreateRegularPolygon());
2056
rcCmdMgr.addCommand(new CmdSketcherCompCreateRectangles());
2057
rcCmdMgr.addCommand(new CmdSketcherCreateSlot());
2058
rcCmdMgr.addCommand(new CmdSketcherCreateArcSlot());
2059
rcCmdMgr.addCommand(new CmdSketcherCompSlot());
2060
rcCmdMgr.addCommand(new CmdSketcherCreateFillet());
2061
rcCmdMgr.addCommand(new CmdSketcherCreateChamfer());
2062
rcCmdMgr.addCommand(new CmdSketcherCompCreateFillets());
2065
rcCmdMgr.addCommand(new CmdSketcherTrimming());
2066
rcCmdMgr.addCommand(new CmdSketcherExtend());
2067
rcCmdMgr.addCommand(new CmdSketcherSplit());
2068
rcCmdMgr.addCommand(new CmdSketcherCompCurveEdition());
2069
rcCmdMgr.addCommand(new CmdSketcherExternal());
2070
rcCmdMgr.addCommand(new CmdSketcherCarbonCopy());
2071
rcCmdMgr.addCommand(new CmdSketcherCompLine());