Object name/pl

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:

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:

<<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.

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.

Etykieta

Obiekt Label jest właściwością utworzonego obiektu i może zostać zmieniony na bardziej znaczący tekst.

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.