Command/pl: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Created page with "Zobacz stronę Funkcja rysowania linii.")
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
<languages/>
<languages/>
==Introduction==
<span id="Introduction"></span>
==Wprowadzenie==


{{TOCright}}
{{TOCright}}


'''Polecenie''' to czynność wykonywana po naciśnięciu przycisku na pasku narzędzi lub wpisaniu skrótu klawiaturowego. Może to być bardzo prosta czynność, jak zmiana stopnia powiększenia [[3D_view/pl|widoku 3D]] lub obrót punktu widzenia, albo złożony system, który będzie otwierał okna dialogowe i czekał na wykonanie przez użytkownika określonych zadań.
A [[Command|command]] is what is being executed when you press a toolbar button or type a keyboard shortcut. It can be a very simple action, like changing the zoom level of the [[3D view]] or rotating the point of view, or a complex system that will open dialog boxes and wait for the user to perform specific tasks.


Each FreeCAD command has a unique name, that appears in the [[:Category:Command_Reference|:Category:Command Reference]] page. Commands can be launched by a toolbar button, a menu item, or from a [[Python|python]] script or the [[Python_console|Python console]], by running:
Każde polecenie FreeCAD ma unikalną nazwę, która pojawia się na stronie [[:Category:Command_Reference|:Category:Command Reference]]. Polecenia mogą być uruchamiane za pomocą przycisku paska narzędzi, pozycji menu lub ze skryptu [[Python/pl|Python]] lub [[Python_console/pl|konsoli Python]], poprzez uruchomienie:


{{Code|code=
{{Code|code=
Line 12: Line 13:
}}
}}


== Background ==
<span id="Background"></span>
==Kontekst==


Polecenia FreeCAD są definiowane dla każdego środowiska pracy. Środowiska pracy zwykle dodają swoje definicje poleceń w czasie inicjowania FreeCAD, więc polecenie istnieje i jest dostępne natychmiast po uruchomieniu FreeCAD, bez względu na to, czy odpowiednie środowisko pracy zostało już aktywowane, czy nie. W niektórych przypadkach jednak autor środowiska pracy mógł zdecydować się nie przeciążać/obciążać procesu uruchamiania FreeCAD i dlatego załadował definicje poleceń tylko podczas inicjowania środowiska pracy. W takich przypadkach polecenie będzie dostępne dopiero po aktywacji środowiska pracy ''(po przełączeniu się na nie co najmniej raz za pomocą selektora środowiska pracy)''.
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/burden the FreeCAD startup process and therefore loaded 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).


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 {{incode|Part.makeBox}} or {{incode|Draft.makeLine}}), or will execute code that is very easy to replicate in a python script and/or [[macros|macro]].
Ponieważ większość z nich wymaga interakcji użytkownika, polecenia FreeCAD dostępne tylko w trybie GUI, a nie w trybie konsoli. Jednak dla wygody większość poleceń FreeCAD będzie miała odpowiadającą im funkcję środowiska Python ''(jak {{incode|Part.makeBox}} lub {{incode|Draft.makeLine}})'', lub wykona kod, który jest bardzo łatwy do odtworzenia w skrypcie Python i / lub [[Macros/pl|makrodefinicjach]].


Commands can be defined either in C++ or in Python.
Polecenia mogą być definiowane w języku C++ lub Python.


<span id="Commands_defined_in_C++"></span>
== Commands defined in C++ ==
==Polecenia zdefiniowane w C++==


Example of a C++ command definition, usually defined following the structure {{FileName|Mod/ModuleName/Gui/Command.cpp}}.
Przykład definicji polecenia w języku C++, zwykle zdefiniowany zgodnie ze strukturą {{FileName|Mod/ModuleName/Gui/Command.cpp}}.


{{Code|lang=cpp|code=
{{Code|lang=cpp|code=
Line 54: Line 57:
}}
}}


<span id="Commands_defined_in_Python"></span>
== Commands defined in Python ==
==Polecenia zdefiniowane w środowisku Python==


Example of a Python command definition, it can be placed in a directory like {{FileName|Mod/ModuleName/tools/commands.py}}.
Przykład definicji polecenia Python, może być umieszczony w katalogu takim jak {{FileName|Mod/ModuleName/tools/commands.py}}.
{{Code|code=
{{Code|code=
from PySide.QtCore import QT_TRANSLATE_NOOP
from PySide.QtCore import QT_TRANSLATE_NOOP
Line 87: Line 91:
}}
}}


== Examples ==
<span id="Examples"></span>
==Przykłady==


See [[Line_drawing_function|Line drawing function]].
Zobacz stronę [[Line_drawing_function/pl|Funkcja rysowania linii]].


<!-- Anything below this line must come after a closing translate tag -->
<!-- Anything below this line must come after a closing translate tag -->

Latest revision as of 15:48, 18 November 2023

Wprowadzenie

Polecenie to czynność wykonywana po naciśnięciu przycisku na pasku narzędzi lub wpisaniu skrótu klawiaturowego. Może to być bardzo prosta czynność, jak zmiana stopnia powiększenia widoku 3D lub obrót punktu widzenia, albo złożony system, który będzie otwierał okna dialogowe i czekał na wykonanie przez użytkownika określonych zadań.

Każde polecenie FreeCAD ma unikalną nazwę, która pojawia się na stronie :Category:Command Reference. Polecenia mogą być uruchamiane za pomocą przycisku paska narzędzi, pozycji menu lub ze skryptu Python lub konsoli Python, poprzez uruchomienie:

FreeCADGui.runCommand("my_Command_Name")

Kontekst

Polecenia FreeCAD są definiowane dla każdego środowiska pracy. Środowiska pracy zwykle dodają swoje definicje poleceń w czasie inicjowania FreeCAD, więc polecenie istnieje i jest dostępne natychmiast po uruchomieniu FreeCAD, bez względu na to, czy odpowiednie środowisko pracy zostało już aktywowane, czy nie. W niektórych przypadkach jednak autor środowiska pracy mógł zdecydować się nie przeciążać/obciążać procesu uruchamiania FreeCAD i dlatego załadował definicje poleceń tylko podczas inicjowania środowiska pracy. W takich przypadkach polecenie będzie dostępne dopiero po aktywacji środowiska pracy (po przełączeniu się na nie co najmniej raz za pomocą selektora środowiska pracy).

Ponieważ większość z nich wymaga interakcji użytkownika, polecenia FreeCAD są dostępne tylko w trybie GUI, a nie w trybie konsoli. Jednak dla wygody większość poleceń FreeCAD będzie miała odpowiadającą im funkcję środowiska Python (jak Part.makeBox lub Draft.makeLine), lub wykona kod, który jest bardzo łatwy do odtworzenia w skrypcie Python i / lub makrodefinicjach.

Polecenia mogą być definiowane w języku C++ lub Python.

Polecenia zdefiniowane w C++

Przykład definicji polecenia w języku C++, zwykle zdefiniowany zgodnie ze strukturą 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());

Polecenia zdefiniowane w środowisku Python

Przykład definicji polecenia Python, może być umieszczony w katalogu takim jak Mod/ModuleName/tools/commands.py.

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())

Przykłady

Zobacz stronę Funkcja rysowania linii.