c4d.BaseObject
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()
Last updated
Was this helpful?