-
Notifications
You must be signed in to change notification settings - Fork 4
KOSME Example2
SongInYong edited this page Oct 18, 2024
·
4 revisions
기존 WIKI 에 있던 자료들을 실습용 코드로 재구성한 예제들 입니다.
import omni.usd
from pxr import Usd, UsdGeom
# 스테이지 가져오기
stage = omni.usd.get_context().get_stage()
# 새로운 Xform Prim 생성
prim_path = "/World/my_prim"
xform = UsdGeom.Xform.Define(stage, prim_path)
# Cube 생성
cube = UsdGeom.Cube.Define(stage, f"{prim_path}/cube")
cube.CreateSizeAttr(100)
print(f"Prim created at {prim_path}")
[실행 결과]
import omni.usd
from pxr import Usd, UsdGeom, Gf
# 스테이지 가져오기
stage = omni.usd.get_context().get_stage()
# 이전에 생성한 Prim 가져오기
prim_path = "/World/my_prim/cube"
cube = stage.GetPrimAtPath(prim_path)
# 크기 속성 수정
size_attr = UsdGeom.Cube(cube).GetSizeAttr()
size_attr.Set(200)
# 색상 속성 추가
cube_gprim = UsdGeom.Gprim(cube)
color_attr = cube_gprim.CreateDisplayColorAttr()
color_attr.Set([Gf.Vec3f(1.0, 0.0, 0.0)]) # 빨간색
print(f"Prim at {prim_path} updated with new size and color")
from pxr import Usd, UsdGeom, Sdf, Gf
from omni.usd import get_context
obj_name = "/World/HUSKY_01" # prim 주소 상황에 따라 변경
stage = get_context().get_stage()
prim = stage.GetPrimAtPath(obj_name)
# 현재 위치 조회
translate_attr = prim.GetAttribute("xformOp:translate")
translation_value = translate_attr.Get()
print(f"translation: {translation_value }")
# 회전 속성 조회
rotation_attr = prim.GetAttribute('xformOp:rotateXYZ')
rotation_value = rotation_attr.Get()
print(f"Rotation: {rotation_value}")
# 현재 스케일 속성 조회
scale_attr = prim.GetAttribute("xformOp:scale")
scale_value = scale_attr.Get()
print(f"Rotation: {scale_value}")
from pxr import Usd, UsdGeom, Sdf, Gf
from omni.usd import get_context
obj_name = "/World/HUSKY_01" # prim 주소 상황에 따라 변경
stage = get_context().get_stage()
prim = stage.GetPrimAtPath(obj_name)
TRANSLATION = Gf.Vec3d(100.0,50.0,0)
ROTATION = Gf.Vec3d(0,180.0,0)
SCALE = Gf.Vec3d(2.0,2.0,2.0)
# pirm 위치 변경
prim.GetAttribute("xformOp:translate").Set(Gf.Vec3d(TRANSLATION), 0)
# pirm 회전
rotation_attr = prim.GetAttribute('xformOp:rotateXYZ').Set(Gf.Vec3d(ROTATION), 0)
# prim 스케일 변경
scale_attr = prim.GetAttribute("xformOp:scale").Set(Gf.Vec3d(SCALE), 0)