Fusion 360 <=> Isaac Sim
Autodesk <=> Nvidia
서론
최근 이 캐드에 관해서 글을 많이 작성하였는데 결과적으로 내가 택한 최종 선택법을 소개하고자 한다.
해당 방법 선정한 기준은 다음과 같다.
- 각 설계의 Part 명을 가져올 것 (필수)
- Orient, Transform value를 각 0으로 잡을 때 실측과 동일할 것 (필수)
- Vertex가 낮을 것 (우대)
Joint 설정을 가져올 것URDF Format 제외 모두 불가능
Obj는 Vertex의 수가 낮았지만 Part 명을 가져오지 못했고 Step은 Obj에 비해 Vertex의 수가 33~50% 많았지만 Part 명을 가져올 수 있었다. 여기에서 생각난 부분이 Vertex는 추후에 Optimize가 가능할 것 같으니 우선 Part 명을 가져오는게 우선이지 않을까? 하는 생각이 들었다. 따라서 최대한 STEP를 살리는 조건으로 진행하였다.
Fusion 360 Scale 조정
지난 포스팅에서 Fusion에서 어떻게 하면 기본 단위를 바꿀 수 있는지 알아보았다. 사실 본 포스팅에 있는 내용은 틀린 내용은 아니지만 100% 최적화된 방법은 아니다. 해당 방법을 이용하면 CAD 단의 Tree Level이 0~2까지 설정됨으로 Omniverse 에서는 tree level 0~1 의 metadeta만 load가 가능하니 Pivot Orient가 다 깨진다 (이 부분은 가정인데 맞는듯?)
이는 아래 포스팅으로 진행할시 Multiple Component화 되어 Component 밑에 또 따른 Component 밑에 Pivot(=Orient)가 들어가기 때문.
용어가 헷갈릴 수 있는데 CAD와 Graphics 그리고 RT3D에서 단어를 너무 혼용해서 나도 그냥 그대로 사용하고 있다.
따라서 새로운 방법을 더 찾아보았는데 Fusion 360의 Component를 복사하는 방법에 대해 우선 고민해보았다. 하지만 이는 Sketch를 별도로 복사해줘야 했는데... 이는 시간적 소요가 너무 클 것 같아서 제외하였다.
그런던 중 알게된 방법은 다음과 같다.
문서 설정 밑 단위에서 mm를 m로 바꿔주면 되는 것 이 후로 Isaac Sim에서 Import를 해보았는데... 문제가 발생하였다.
OBJ는 defualt unit이 meter로 잘 import 됨 하지만 STEP fomrat 은 settings을 무시하고 mm로 받아옴. 여기서 한가지 추측한 점이 Covert to USD = CAD Importer이지 않을까? 같은 UI가 뜨는게 맞는 것 같다. 따라서 Scale 값을 항상 0.001로 해줘야 했고 이는 또 다시 값 수정을 진행해야 했다.
추신, 여기서 기어코 Scale을 건들지 않으려고 하는 이유는 Omniverse object part의 extent에서 Scale 조정 이전 값의 node 값을 같고 있는 것을 확인하였다. 이에 AABB 등 기존 node를 기준으로 사용하는 알고리즘을 사용할 때 버그가 발생하였음. 예로 Scale이 풀려버린다던가? 이렇게 되어 버리면 언제 어떻게 문제가 생길지 모르기 때문에 그냥 사용을 하지 않고 있다.
결론 - 최적의 방법
그냥 초 단순하게 생각했음.
STEP가 Part를 가져온다 -> Scale은 100배가 된다 -> CAD 단에서 Scale을 0.01배로 조정하는게 어려울까?
0.01배로 한 이유는 STEP는 cm을 기준으로 가져오기 때문임
아니 어렵지 않다. 시간으로 재면 2분? 3분...? 사실 Fusion 360 Function list만 알면 금방 짤듯? 근데 이것까지 공부하면 잠을 아예 못잘 것 같다. 그래서 그냥 손으로 해봄
Solid - Scale를 선택한다.
Tree에 Components를 모두 select 하는데 이 때 점도 선택이 된다. 여기서 점 선택이 매우 중요한데... 설명하기가 어려운데 전체 Tree의 즉 Parent 점의 Pivot을 생각하면 됨 => 그냥 원점 좌표에 점 하나 만들고 하면 된다는 뜻이다.
원점 좌표에 점찍는 방법은 간단하다.
구성 - 꼭지점의 점에서 점 찍고 해당 점을 기준으로 Scale 값이 변한다고 생각하면 됨. 이거 안하면 1/100배 된 상태에서 원점을 찾아야 하기 때문에 눈이 너무 아프다. 정신 건강을 위해서라도 원점에 꼭지점을 찍고 Scale을 조정하자. 그리고 Isaac Sim에 넘기면 위의 조건을 다 만족하는 것을 알 수 있음.
끝으로 Isaac SIm에서 보면 다음과 같다. 여기서 버그를 발견했는데... Nueclues 서버에 올리고 Import 하면 파일이 안열림... 서버에 연결되어 있는데도 그런다... 어지럽네 그냥 on-prem에서 하면 다음과 같이 나타나는데
Add Transforms 눌러주면 된다.
파트명, Transform 초기 값, Scale 모두 일치 함. 가장 기본적인 단계이면서 가장 중요해서 이 부분에서 시간을 많이 썼다... 이 후로 나타나는 문제는 포럼에 질의 해서 풀 듯...? 사실 사용자가 하나하나 다 해보면서 이렇게 까지 정리한 것만으로 많이 해봤다고 생각함...
Import 설정
아오... 끝인 줄 알았는데 설정이 또 남아있었다. 다행히 SAT, OBJ와 같은 Generic format에서는 설정 값이 적용되지 않는 문제가 있었는데 STEP는 바로 적용 되었음. 그냥 기본 값으로 불러오니 바퀴가 육각형이 됨.
이거 관련해서 PIxyz는 degree로 되어있는데 Omniverse는 extent를 기준으로 잡더라... 이러면 사용자가 머리아플 것 같음... Tessellation이 extent 기준으로 해서 그런건 알겠는데... 예를 들어서 반지름이 0.5m인 원의 면적은 0.5 *2 * pi인데 이러면 3.14 이렇게 숫자가 깔끔하지 않게 나온다. 근데 그 면적 값을 모델러가 계산해서 그 값을 옴니버스에서 N각형을 표현하기 위해 넣어주라고...? 어질어질 하넹...
관련 내용을 블로그 글에 설명하면 오늘 잠 못잔다... 같이 스터디 하시는 분과 값 넣어가면서 가정이 맞는지 확인했음. 이거 이해하려면 Tessellation이랑 CAD 그리고 CAD(BRep)와 Mesh 차이 모두 알아야 함. 블로그 어딘가에 다 정리해 놓았다.
일반적으로 0.1mm (정밀) 1mm (대충 형상만) 을 사용하니 각자 매직넘버를 찾아서 프로젝트를 하도록 하자 ^_^ 심심해서 대충 최적화 해봤는데 이렇게 나옴.
전국 모든 모델러 화이팅 ^_^ 참고로 나는 모델러 아님 ㅎ
댓글