Command/ro: Difference between revisions

From FreeCAD Documentation
(Created page with "O comandă FreeCAD command este ceea ce este executat când apăsați un buton din bara de instrumetne sau apăsați o scurtătură din tastatură. Poate fi o acțiune foarte...")
(Updating to match new version of source page)
 
(19 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
==Introduction==
O comandă FreeCAD command este ceea ce este executat când apăsați un buton din bara de instrumetne sau apăsați o scurtătură din tastatură. Poate fi o acțiune foarte simplă, cum ar fi schimbarea nivelului de zoom al vizualizării 3D sau rotirea punctului de vedere sau un sistem complex care va deschide casetele de dialog și va aștepta ca utilizatorul să îndeplinească anumite sarcini.


{{TOCright}}
Each FreeCAD command has a unique name, that appears in the [[:Category:Command_Reference]] page. Commands can be launched by a toolbar button, a menu item, or from a python script or the python console, by running:


<div class="mw-translate-fuzzy">
FreeCADGui.runCommand("my_Command_Name")
O comandă în FreeCAD este o aplicație care se execută atunci când apăsați un buton din bara de instrumente sau apăsați o scurtătură din tastatură. Poate fi o acțiune foarte simplă, cum ar fi schimbarea nivelului de zoom al vizualizării 3D sau rotirea punctului de vedere sau un sistem complex care va deschide casetele de dialog și va aștepta ca utilizatorul să îndeplinească anumite sarcini.
</div>


<div class="mw-translate-fuzzy">
FreeCAD commands are defined per workbench. Workbenches will normally add their command definitions at FreeCAD init time, so the command exists and is available as soon as FreeCAD is started, no matter if the corresponding workbench has been activated yet or not. In some cases, however, the workbench author might have decided, to not overload too much the FreeCAD startup process, to load the command definitions only at workbench init. In those cases, the command will only be available after the workbench has been activated (you have switched to it at least once with the workbench selector).
Fiecare comandă FreeCAD are un nume unic care apare în lista tuturor comenzilor [[:Category:Command_Reference]]. Comenzile pot fi invocate prin intermediul unui buton al barei de instrumente, al unei intrări în meniu, al unui script Python sau al consolei Python rulând:
</div>


{{Code|code=
As most of them require user interaction, FreeCAD commands are only available in GUI-mode, and not in console mode. However, for convenience, most FreeCAD commands will either have a corresponding python function (like Part.makeBox or Draft.makeLine), or will execute code that is very easy to replicate in a python script.
FreeCADGui.runCommand("my_Command_Name")
}}


== Background ==
Commands can be defined either in C++ or in Python.


<div class="mw-translate-fuzzy">
Example of a C++ command definition (usually defined in /Mod/ModuleName/Gui/Command.cpp):
Comenzile FreeCAD sunt definite prin Atelier/workbench. Atelierele de lucru vor adăuga, de regulă, definițiile comenzilor lor la momentul de pornire al programului FreeCAD, astfel încât comanda să existe și să fie disponibilă imediat ce începe FreeCAD, indiferent dacă Atelierul de lucru este activat sau nu. Cu toate acestea, în unele cazuri, autorul Atelierului de lucru s-ar fi putut decide să nu supraîncărcați procesul de boot FreeCAD și, prin urmare, să încărcați definițiile comenzii numai la inițializarea spațiului de lucru. În acele cazuri, comanda nu va fi disponibilă până când nu ați activat Atelierul de lucru (ați fost comutat cel puțin o dată acolo cu selectorul de Ateliere).
{{Code|code=
</div>

<div class="mw-translate-fuzzy">
Deoarece majoritatea dintre ele necesită interacțiune cu utilizatorul, comenzile FreeCAD sunt disponibile numai în modul GUI și nu în modul consola.
Pentru simplificare, majoritatea comenzilor FreeCAD au o funcție Python corespunzătoare (cum ar fi Part.makeBox sau Draft.makeLine) sau execută un cod care poate fi ușor replicat într-un script Python.
</div>

Comenzile pot fi definite sau în C++ ori în Python.

== Commands defined in C++ ==

<div class="mw-translate-fuzzy">
Exemplu de definiție a comenzii în C++ (usually defined in /Mod/ModuleName/Gui/Command.cpp):
</div>

{{Code|lang=cpp|code=
DEF_STD_CMD_A(StdCmdMyCommand);
DEF_STD_CMD_A(StdCmdMyCommand);


Line 43: Line 65:
}}
}}


== Commands defined in Python ==
and a similar command in python (no rule for where it must be done, each python workbench does as it sees fit...)

<div class="mw-translate-fuzzy">
și comanda similară în python (no rule for where it must be done, each python workbench does as it sees fit...)
</div>
{{Code|code=
{{Code|code=
from PySide.QtCore import QT_TRANSLATE_NOOP


class MyCommand:
class MyCommand:
"""Explanation of the command."""


def __init__(self):
def __init__(self):
# you can add things here like defining some variables that must exist at all times
"""Initialize variables for the command that must exist at all times."""
pass


def GetResources(self):
def GetResources(self):
"""Return a dictionary with data that will be used by the button or menu item."""
return {'Pixmap' : 'MyCommand.svg',
'Accel' : "Ctrl+A",
return {'Pixmap': 'MyCommand.svg',
'MenuText': QtCore.QT_TRANSLATE_NOOP("My_Command", "My Command"),
'Accel': "Ctrl+A",
'ToolTip': QtCore.QT_TRANSLATE_NOOP("My_Command", "Runs my command in the active document")}
'MenuText': QT_TRANSLATE_NOOP("My_Command", "My Command"),
'ToolTip': QT_TRANSLATE_NOOP("My_Command", "Runs my command in the active document")}


def Activated(self):
def Activated(self):
# place here the code to be executed when the command is ran
"""Run the following code when the command is activated (button press)."""
print("Activated")


def isActive(self):
def IsActive(self):
# here you have a chance to return True or False depending if your command must be shown as active or inactive (greyed).
"""Return True when the command should be active or False when it should be disabled (greyed)."""
return True


# the command must be "registered" in FreeCAD's command system
# The command must be "registered" with a unique name by calling its class.
FreeCADGui.addCommand('My_Command',MyCommand())
FreeCADGui.addCommand('My_Command', MyCommand())
}}
}}


== Examples ==
[[Category:User Documentation]]

[[Category:Developer Documentation]]
See [[Line_drawing_function|Line drawing function]].
[[Category:Command Reference]]

<!-- Anything below this line must come after a closing translate tag -->
{{Powerdocnavi{{#translation:}}}}
[[Category:Developer Documentation{{#translation:}}]]
[[Category:Python Code{{#translation:}}]]
[[Category:Glossary{{#translation:}}]]

Latest revision as of 09:12, 18 April 2022

Introduction

O comandă în FreeCAD este o aplicație care se execută atunci când apăsați un buton din bara de instrumente sau apăsați o scurtătură din tastatură. Poate fi o acțiune foarte simplă, cum ar fi schimbarea nivelului de zoom al vizualizării 3D sau rotirea punctului de vedere sau un sistem complex care va deschide casetele de dialog și va aștepta ca utilizatorul să îndeplinească anumite sarcini.

Fiecare comandă FreeCAD are un nume unic care apare în lista tuturor comenzilor Category:Command_Reference. Comenzile pot fi invocate prin intermediul unui buton al barei de instrumente, al unei intrări în meniu, al unui script Python sau al consolei Python rulând:

FreeCADGui.runCommand("my_Command_Name")

Background

Comenzile FreeCAD sunt definite prin Atelier/workbench. Atelierele de lucru vor adăuga, de regulă, definițiile comenzilor lor la momentul de pornire al programului FreeCAD, astfel încât comanda să existe și să fie disponibilă imediat ce începe FreeCAD, indiferent dacă Atelierul de lucru este activat sau nu. Cu toate acestea, în unele cazuri, autorul Atelierului de lucru s-ar fi putut decide să nu supraîncărcați procesul de boot FreeCAD și, prin urmare, să încărcați definițiile comenzii numai la inițializarea spațiului de lucru. În acele cazuri, comanda nu va fi disponibilă până când nu ați activat Atelierul de lucru (ați fost comutat cel puțin o dată acolo cu selectorul de Ateliere).

Deoarece majoritatea dintre ele necesită interacțiune cu utilizatorul, comenzile FreeCAD sunt disponibile numai în modul GUI și nu în modul consola. Pentru simplificare, majoritatea comenzilor FreeCAD au o funcție Python corespunzătoare (cum ar fi Part.makeBox sau Draft.makeLine) sau execută un cod care poate fi ușor replicat într-un script Python.

Comenzile pot fi definite sau în C++ ori în Python.

Commands defined in C++

Exemplu de definiție a comenzii în C++ (usually defined in /Mod/ModuleName/Gui/Command.cpp):

DEF_STD_CMD_A(StdCmdMyCommand);

StdCmdMyCommand::StdCmdMyCommand()
  : Command("Std_My_Command")
{
    sGroup        = QT_TR_NOOP("File");
    sMenuText     = QT_TR_NOOP("My Command");
    sToolTipText  = QT_TR_NOOP("Runs my command in the active document");
    sWhatsThis    = "Std_MyCommand";
    sStatusTip    = QT_TR_NOOP("Runs my command in the active document");
    sPixmap       = "MyCommand.svg";
    sAccel        = "Ctrl+A";
}

void StdCmdExport::activated(int iMsg)
{
    // place here the code to be executed when the command is ran
}

bool StdCmdMyCommand::isActive(void)
{
    // here you have a chance to return true or false depending if your command must be shown as active or inactive (greyed).
}

// the command must be "registered" in FreeCAD's command system
CommandManager &rcCmdMgr = Application::Instance->commandManager();
rcCmdMgr.addCommand(new StdCmdMyCommand());

Commands defined in Python

și comanda similară în python (no rule for where it must be done, each python workbench does as it sees fit...)

from PySide.QtCore import QT_TRANSLATE_NOOP


class MyCommand:
    """Explanation of the command."""

    def __init__(self):
        """Initialize variables for the command that must exist at all times."""
        pass

    def GetResources(self):
        """Return a dictionary with data that will be used by the button or menu item."""
        return {'Pixmap': 'MyCommand.svg',
                'Accel': "Ctrl+A",
                'MenuText': QT_TRANSLATE_NOOP("My_Command", "My Command"),
                'ToolTip': QT_TRANSLATE_NOOP("My_Command", "Runs my command in the active document")}

    def Activated(self):
        """Run the following code when the command is activated (button press)."""
        print("Activated")

    def IsActive(self):
        """Return True when the command should be active or False when it should be disabled (greyed)."""
        return True

# The command must be "registered" with a unique name by calling its class.
FreeCADGui.addCommand('My_Command', MyCommand())

Examples

See Line drawing function.