-
BaseObject.GetAbsPos(self)
Возвращает абсолютное положение объекта. Это будут абсолютные локальные координаты внутри родительского объекта. -
BaseObject.GetAbsScale(self)
Возвращает абсолютный масштаб объекта. Они будут относиться к родительскому объекту, если он у него есть -
BaseObject.GetAbsRot(self)
Возвращает абсолютное вращение HPB объекта относительно любого родительского -
BaseObject.GetRelPos(self)
Возвращает относительное положение объекта. -
BaseObject.GetRelScale(self)
Возвращает относительный масштаб объекта. -
BaseObject.GetRelRot(self)
Возвращает относительное вращение объекта. -
BaseObject.GetFrozenPos(self)
Возвращает замороженное положение объекта. -
BaseObject.GetFrozenScale(self)
Возвращает замороженный масштаб объекта. -
BaseObject.GetFrozenRot(self)
Возвращает замороженное вращение HPB объекта.
Эти методы возвращают тип - Vector(0, 0, 0)
BaseObject.GetMl(self)
Получите локальную матрицу, которая представляет положение, масштаб и вращение объектов.BaseObject.GetMg(self)
Получите мировую (глобальную) матрицу, которая представляет положение, масштаб и вращение объектов.BaseObject.GetMln(self)
Получите локальную нормализованную матрицу, которая представляет положение, масштаб и вращение объектов.BaseObject.GetMgn(self)
Получите глобальную нормализованную матрицу, которая представляет положение, масштаб и вращение объектов.BaseObject.GetUpMg(self)
Получите глобальную матрицу родительского объекта, которая представляет положение, масштаб и вращение объектов. Если у объекта нет родительского объекта, то эта матрица будет единичной матрицей.
Эти методы возвращают тип - Matrix(v1: (1, 0, 0); v2: (0, 1, 0); v3: (0, 0, 1); off: (0, 0, 0))
-
BaseObject.GetMp(self)
Центр ограничивающей рамки (вектор) в локальном пространстве. -
BaseObject.GetRad(self)
Это радиус ограничивающей рамки (x/y/z) объекта. Он работает для всех объектов и выполняется быстрее, чем поиск границ даже полигональных объектов вручную, радиус кэшируется внутри. -
BaseObject.GetFirstTag(self)
возвращает первый тег на объекте -
BaseObject.GetLastTag(self)
возвращает последний тег на объекте -
BaseObject.GetTags(self)
возвращает все теги объекта -
BaseObject.GetTag(self, type, nr=0)
возвращает тег определенного типа. type -Ttexture,Texpresso,Tphong,Tpython,Tpolygonselection... nr- Начальный индекс тега для поиска этого типа -
BaseObject.KillTag(self, type, nr=0)
удаляет тег определенного типа
Примеры кода:
import c4d
def tag_operations(obj):
# Получение и вывод всех тегов объекта
tags = obj.GetTags()
print(f"Теги объекта: {', '.join([tag.GetName() for tag in tags])}")
# Добавление нового тега Phong к объекту
phong_tag = c4d.BaseTag(c4d.Tphong)
obj.InsertTag(phong_tag)
print("Добавлен тег Phong.")
# Удаление всех тегов Phong у объекта
while obj.GetTag(c4d.Tphong):
obj.KillTag(c4d.Tphong)
print("Все теги Phong удалены.")
def object_transformations(obj):
# Вывод абсолютных координат объекта
abs_pos = obj.GetAbsPos()
abs_scale = obj.GetAbsScale()
abs_rot = obj.GetAbsRot()
print(f"Абсолютное положение: {abs_pos}")
print(f"Абсолютный масштаб: {abs_scale}")
print(f"Абсолютное вращение: {abs_rot}")
# Вывод относительных координат объекта
rel_pos = obj.GetRelPos()
rel_scale = obj.GetRelScale()
rel_rot = obj.GetRelRot()
print(f"Относительное положение: {rel_pos}")
print(f"Относительный масштаб: {rel_scale}")
print(f"Относительное вращение: {rel_rot}")
# Вывод замороженных координат объекта
frozen_pos = obj.GetFrozenPos()
frozen_scale = obj.GetFrozenScale()
frozen_rot = obj.GetFrozenRot()
print(f"Замороженное положение: {frozen_pos}")
print(f"Замороженный масштаб: {frozen_scale}")
print(f"Замороженное вращение: {frozen_rot}")
# Вывод матриц объекта
local_matrix = obj.GetMl()
global_matrix = obj.GetMg()
print(f"Локальная матрица: {local_matrix}")
print(f"Глобальная матрица: {global_matrix}")
# Основная функция
def main():
# Получаем активный объект
active_obj = doc.GetActiveObject()
if active_obj is None:
print("Нет активного объекта.")
return
object_transformations(active_obj)
tag_operations(active_obj)
c4d.EventAdd()
# Вызов основной функции
if __name__=="__main__":
main()