Command/de

Introduction
Ein FreeCAD-Befehl ist das, was ausgeführt wird, wenn Du einen Symbolleisten-Button oder ein Tastenkürzel drückst. Es kann eine sehr einfache Aktion sein, wie den Zoomfaktor in der 3D-Ansicht ändern oder den Standpunkt zu drehen, oder ein komplexes System, das Dialogfenster öffnet und darauf wartet, dass der Benutzer bestimmte Aufgaben ausführt.

Jeder FreeCAD-Befehl hat einen eindeutigen Namen, der in der Liste aller Befehle-Seite auftaucht. Befehle können über einen Symbolleisten-Button, einen Menü-Eintrag, ein Python-Skript oder die Python-Konsole aufgerufen werden:

FreeCADGui.runCommand("my_Command_Name")

Background
FreeCAD-Befehle sind pro Arbeitsbereich definiert. Arbeitsbereiche werden ihre Befehlsdefinitionen normalerweise zum FreeCAD-Programmstartzeitpunkt hinzufügen, so dass der Befehl existiert und verfügbar ist, sobald FreeCAD startet, unabhängig davon, ob der jeweilige Arbeitsbereich aktiviert ist oder nicht. Allerdings könnte der Arbeitsbereichsautor in einigen Fällen entschieden haben, den FreeCAD-Startprozess nicht zu überlasten und deshalb die Befehlsdefinitionen erst bei der Initialisierung des Arbeitsbereichs zu laden. In diesen Fällen ist der Befehl erst nach der Aktivierung des Arbeitsbereichs verfügbar (Du hast wenigstens einmal dorthin gewechselt).

Da die meisten von ihnen Benutzeraktionen erfordern, sind FreeCAD-Befehle nur im GUI-Modus und nicht im Konsolen-Modus verfügbar. Der Einfachheit halber haben die meisten FreeCAD-Befehle eine entsprechende Python-Funktion (wie z.B. Part.makeBox oder Draft.makeLine) oder führen Code aus, der sehr einfach in einem Python-Skript nachgebildet werden kann.

Befehle können entweder in C++ oder Python erstellt werden.

Commands defined in C++
Beispiel einer C++-Befehlsdefinition (normalerweise definiert in /Mod/ModuleName/Gui/Command.cpp):

Commands defined in Python
und ein ähnlicher Befehl in Python (es gibt keine Regel, wo er abgelegt sein muss, jeder Python-Arbeitsbereich legt das selbst fest...)