Nazwa obiektu
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
Obiekt Label
jest właściwością utworzonego obiektu i może zostać zmieniony na bardziej znaczący tekst.
- Podczas tworzenia obiektu,
Label
ma taką samą wartość jakName
. - Jednak w przeciwieństwie do
Name
,Label
może akceptować dowolny ciąg UTF8, łącznie ze znakami akcentówi i spacji. - Obiekt
Label
można zmienić w dowolnym momencie, po prostu przypisując żądany ciąg znaków,obj.Label = "New label"
.
Pobieranie obiektu przez nazwę lub etykietę
Wszystkie obiekty w dokumencie są atrybutami danych odpowiedniego obiektu Dokument. Nazwa atrybutu odpowiada wewnętrznej Nazwie
obiektu.
import FreeCAD as App
obj1 = App.ActiveDocument.Box
obj2 = App.ActiveDocument.Box001
obj3 = App.ActiveDocument.Box002
Jest to równoważne użyciu metody getObject
dokumentu.
import FreeCAD as App
obj1 = App.ActiveDocument.getObject('Box')
obj2 = App.ActiveDocument.getObject('Box001')
obj3 = App.ActiveDocument.getObject('Box002')
Możliwe jest jednak również pobranie obiektu za pomocą bardziej opisowego identyfikatora 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]
Biorąc pod uwagę, że obiekt Label
nie jest unikalny, metoda getObjectsByLabel
zwraca listę wszystkich obiektów znalezionych z tym obiektem Label
. Jeśli jednak Label
jest unikalny w dokumencie, to pierwszym elementem tej listy powinien być żądany obiekt.

- 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, Złożenie, BIM, 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