Object name/pl: Difference between revisions
(Created page with "Istnieją różne właściwości etykiet: * {{Incode|Etykieta}} może akceptować dowolny ciąg UTF8, w tym znaki akcentu i spacji. * W oknie widoku drzewa wyświetlana jest {{incode|Etykieta}} obiektu, a nie jego {{incode|Nazwa}}. Dlatego za każdym razem, gdy tworzony jest nowy obiekt, dobrą praktyką jest zmiana {{incode|Etykiety}} na bardziej opisowy ciąg znaków. Aby zmienić nazwę ''(etykietę)'' obiektu, wybierz ją w widoku drzewa i naciśnij...") |
(Created page with "* Pierwszy argument wskazuje typ obiektu, w tym przypadku {{incode|"Part::Box"}}. * Drugi argument to ciąg znaków definiujący atrybut {{incode|Name}}. Jeśli nie zostanie on podany, domyślnie przyjmuje taką samą nazwę jak klasa obiektu, czyli {{incode|"Part__Box"}}, gdzie dwa nieprawidłowe symbole, dwukropki {{incode|::}}, są zastąpione dwoma podkreśleniami {{incode|__}}. ** {{incode|Name}} może zawierać tylko podstawowe znaki alfanumeryczne i znak podkreśl...") |
||
Line 67: | Line 67: | ||
Funkcja {{incode|addObject}} posiada dwa podstawowe argumenty typu string. |
Funkcja {{incode|addObject}} posiada dwa podstawowe argumenty typu string. |
||
* |
* Pierwszy argument wskazuje typ obiektu, w tym przypadku {{incode|"Part::Box"}}. |
||
* |
* Drugi argument to ciąg znaków definiujący atrybut {{incode|Name}}. Jeśli nie zostanie on podany, domyślnie przyjmuje taką samą nazwę jak klasa obiektu, czyli {{incode|"Part__Box"}}, gdzie dwa nieprawidłowe symbole, dwukropki {{incode|::}}, są zastąpione dwoma podkreśleniami {{incode|__}}. |
||
** |
** {{incode|Name}} może zawierać tylko podstawowe znaki alfanumeryczne i znak podkreślenia, {{incode|[_0-9a-zA-Z]}}. Jeśli podane zostaną inne symbole, zostaną one przekonwertowane na znak podkreślenia. Na przykład {{incode|"A+B:C*"}} zostanie przekonwertowane na {{incode|"A_B_C_"}}. |
||
** |
** {{Incode|Name}} nie może zaczynać się od liczby, musi zaczynać się od litery lub podkreślenia, {{Incode|[_a-zA-Z]}}. Na przykład {{incode|"123ABC"}} jest konwertowany na {{incode|"_23ABC"}}. |
||
** |
** Obiekt {{incode|Name}} jest ustalany w momencie utworzenia, nie można go później zmodyfikować. |
||
** |
** Obiekt {{incode|Name}} musi być unikalny w całym dokumencie. Jeśli użyty zostanie ten sam obiekt {{Incode|"Name"}}, automatycznie dołączony zostanie kolejny numer, tak aby wynikowe nazwy były unikalne; na przykład, jeśli {{Incode|"Name"}} już istnieje, nowe obiekty zostaną nazwane {{Incode|"Name001"}}, {{Incode|"Name002"}}, {{Incode|"Name003"}} itd. |
||
<span id="Label"></span> |
<span id="Label"></span> |
Revision as of 15:56, 28 October 2023
Wprowadzenie
Wszystkie obiekty w programie mają nazwę obiektu, która jednoznacznie identyfikuje je w obrębie danego dokumentu.
Informacje te dotyczą wszystkich obiektów pochodnych od App: Obiektu dokumentu (klasa App::DocumentObject
), która zasadniczo obejmuje wszystkie obiekty, które można utworzyć w dokumencie.
Nazwy
Nazwy mają różne właściwości:
Nazwa
może zawierać tylko proste znaki alfanumeryczne i znak podkreślenia,[_0-9a-zA-Z]
.Nazwa
nie może zaczynać się od cyfry, musi zaczynać się od litery lub podkreślenia,[_a-zA-Z]
.Nazwa
jest przypisywana w czasie tworzenia obiektu, później nie można jej już edytować. Nigdy nie można zmienić nazwy obiektu.Nazwa
musi być unikalna w całym dokumencie. Nie ma znaczenia, czy dwa obiekty są zupełnie różnych typów, na przykład jeden to kieszeń środowiska Projekt Części, a drugi to ściana środowiska Architektura. Muszą one mieć różne nazwy.- Podczas tworzenia obiektu tego samego typu, zwykle nazwa jest zwiększana o kolejny numer, a więc
Sześcian
,Sześcian001
,Sześcian002
itd. Zapobiega to kolizji nazw. - Po usunięciu obiektu, jego
Nazwa
staje się dostępna do użycia przez nowo utworzony obiekt. Oznacza to, że jeśli istnieją obiektySześcian
,Sześcian001
iSześcian002
, a my usuniemy pierwszy z nich, to następnym obiektem utworzonym za pomocą Part Box nie będzieSześcian003
, leczSześcian
, ponieważ ciąg ten jest dostępny do ponownego użycia. Zauważ, że nie jest możliwa zmiana nazwy obiektuSześcian001
lubSześcian002
naSześcian
, ponieważ ich nazwy są niezmienne.
Podsumowując, Nazwa
zasadniczo działa jak unikalny identyfikator (UID) dla obiektu. Ponieważ unikalna Nazwa
jest bardzo restrykcyjna, wszystkie obiekty mają również właściwość Etykieta
, która umożliwia "zmianę nazwy" obiektu na coś bardziej opisowego. Wewnętrzna Nazwa
faktycznie pozostaje stała, ale edytowalna przez użytkownika Etykieta
może być używana w większości sytuacji, w których użyto by Nazwy
. W powszechnym użyciu w programie i dokumentacji "zmiana nazwy" oznacza zmianę Etykiety
, a nie rzeczywistej Nazwy
obiektu.
Etykiety
Istnieją różne właściwości etykiet:
Etykieta
może akceptować dowolny ciąg UTF8, w tym znaki akcentu i spacji.- W oknie widoku drzewa wyświetlana jest
Etykieta
obiektu, a nie jegoNazwa
. Dlatego za każdym razem, gdy tworzony jest nowy obiekt, dobrą praktyką jest zmianaEtykiety
na bardziej opisowy ciąg znaków. Aby zmienić nazwę (etykietę) obiektu, wybierz ją w widoku drzewa i naciśnij F2 (lub raczej Return na macOS) lub otwórz menu podręczne (kliknij prawym przyciskiem myszy) i wybierz Zmień nazę. - Nawet po zmianie nazwy obiektu, wewnętrzny
NamNazwae
będzie nadal wyświetlana w wielu miejscach, na przykład na pasku pasek stanu lub w oknie widok wyboru, gdy obiekt jest zaznaczony. - Ponieważ wewnętrzne funkcje programu odnoszą się do obiektów za pomocą
Nazwy
, wiele okien dialogowych wyświetli najpierwNazwę
, a następnie edytowalną przez użytkownikaEtykietę
w nawiasach, na przykładSześcian (Element wyciągany)
. - Domyślnie
Etykieta
jest unikalna, podobnie jakNazwa
. Zachowanie to można jednak zmienić w edytorze preferencji, Edycja → Preferencje ... → Ogólne → Dokument → Zezwalaj na umieszczanie duplikatów etykiet obiektów w obrębie jednego dokumentu. Oznacza to, że generalnieEtykieta
nie jest unikalna w dokumencie i może się powtarzać. Zaleca się jednak zachowanie unikalnościEtykiet
, ponieważ jest to prawdopodobnie najbardziej przydatne do identyfikacji różnych obiektów. Podczas pisania niestandardowych funkcji, które manipulują obiektami, metody powinny używaćNazwy
obiektu, a nie jegoEtykiety
, aby zagwarantować, że używany jest właściwy obiekt. - Podczas korzystania z wyrażeń, na przykład w edytorze właściwości lub w arkuszu kalkulacyjnym, Etykieta może być przywoływana za pomocą podwójnych nawiasów utworzonych z symboli "mniej niż" i "więcej niż".
<<Custom Label With Spaces>>.Height
<<Label may use UTF8 characters>>.Width
Etykieta2
Jest to prosty ciąg znaków, który może zawierać dowolny tekst, a zatem może być używany do dokumentowania (opisywania z większą ilością szczegółów) utworzonego obiektu.
- W oknie widoku drzewa edytuj pole obok ikony, w kolumnie "Opis", klikając je i naciskając F2 (lub raczej Entern na macOS).
- Można również zmienić tę właściwość, modyfikując atrybut
Etykieta2
z poziomu Konsoli Python. - Atrybut DANEEtykieta2 jest normalnie ukryty w edytorze właściwości, ale może być uwidoczniony poprzez otwarcie menu podręcznego (kliknięcie prawym przyciskiem myszy) i wybranie Wyświetl wszystko.
Tworzenie skryptów
Zobacz również: Podstawy tworzenia skryptów FreeCAD, oraz Obiekty skryptowe.
Każdy obiekt w oprogramowaniu jest tworzony wewnętrznie za pomocą metody addObject()
dokumentu. Większość obiektów 2D i 3D, które użytkownik zobaczy w oknie widoku 3D pochodzi z Część: Cecha. W poniższym przykładzie utworzony obiekt to Sześcian środowiska pracy Część.
import FreeCAD as App
doc = App.newDocument()
obj = doc.addObject("Part::Box", "Name")
obj.Label = "Custom label"
Nazwa
Funkcja addObject
posiada dwa podstawowe argumenty typu string.
- Pierwszy argument wskazuje typ obiektu, w tym przypadku
"Part::Box"
. - Drugi argument to ciąg znaków definiujący atrybut
Name
. Jeśli nie zostanie on podany, domyślnie przyjmuje taką samą nazwę jak klasa obiektu, czyli"Part__Box"
, gdzie dwa nieprawidłowe symbole, dwukropki::
, są zastąpione dwoma podkreśleniami__
.Name
może zawierać tylko podstawowe znaki alfanumeryczne i znak podkreślenia,[_0-9a-zA-Z]
. Jeśli podane zostaną inne symbole, zostaną one przekonwertowane na znak podkreślenia. Na przykład"A+B:C*"
zostanie przekonwertowane na"A_B_C_"
.Name
nie może zaczynać się od liczby, musi zaczynać się od litery lub podkreślenia,[_a-zA-Z]
. Na przykład"123ABC"
jest konwertowany na"_23ABC"
.- Obiekt
Name
jest ustalany w momencie utworzenia, nie można go później zmodyfikować. - Obiekt
Name
musi być unikalny w całym dokumencie. Jeśli użyty zostanie ten sam obiekt"Name"
, automatycznie dołączony zostanie kolejny numer, tak aby wynikowe nazwy były unikalne; na przykład, jeśli"Name"
już istnieje, nowe obiekty zostaną nazwane"Name001"
,"Name002"
,"Name003"
itd.
Etykieta
The Label
is a property of the created object and can be changed to a more meaningful text.
- Upon creating the object, the
Label
is the same as theName
. - However, unlike the
Name
, theLabel
can accept any UTF8 string, including accents and spaces. - The
Label
can be changed at any point in time just by assigning the desired string,obj.Label = "New label"
Getting an object by Name or Label
All objects in a document are data attributes of the corresponding Document object. The attribute's name correspond to the internal Name
of the object.
import FreeCAD as App
obj1 = App.ActiveDocument.Box
obj2 = App.ActiveDocument.Box001
obj3 = App.ActiveDocument.Box002
This is equivalent to using the getObject
method of the Document.
import FreeCAD as App
obj1 = App.ActiveDocument.getObject('Box')
obj2 = App.ActiveDocument.getObject('Box001')
obj3 = App.ActiveDocument.getObject('Box002')
However, it is also possible to get the object by the more descriptive Label
.
import FreeCAD as App
obj1 = App.ActiveDocument.getObjectsByLabel("Concrete wall")[0]
obj2 = App.ActiveDocument.getObjectsByLabel("Custom parallelepiped")[0]
obj3 = App.ActiveDocument.getObjectsByLabel("Some special name for this cube__002")[0]
Given that the Label
is in general not unique, the getObjectsByLabel
method returns a list with all objects found with that Label
. However, if the Label
is unique in the document then the first element in that list should be the desired object.
- Jak zacząć
- Instalacja: Pobieranie programu, Windows, Linux, Mac, Dodatkowych komponentów, Docker, AppImage, Ubuntu Snap
- Podstawy: Informacje na temat FreeCAD, Interfejs użytkownika, Profil nawigacji myszką, Metody wyboru, Nazwa obiektu, Edytor ustawień, Środowiska pracy, Struktura dokumentu, Właściwości, Pomóż w rozwoju FreeCAD, Dotacje
- Pomoc: Poradniki, Wideo poradniki
- Środowiska pracy: Strona Startowa, Architektura, Assembly, CAM, Rysunek Roboczy, MES, Inspekcja, Siatka, OpenSCAD, Część, Projekt Części, Punkty, Inżynieria Wsteczna, Robot, Szkicownik, Arkusz Kalkulacyjny, Powierzchnia 3D, Rysunek Techniczny, Test Framework