Point Utilities 애드인은마우스를사용하여객체와상호작용할때 RoboDK API를활용하여객체의정확한 3D 수학적정보를읽어옵니다.
공구가활성화된상태에서 3D 모델을클릭하면소프트웨어가마우스커서가위치한 3D 메쉬의정확한삼각형을확인합니다. 이때다음두가지주요데이터를추출합니다:
1.위치 (X, Y, Z): 객체의 참조 프레임을 기준으로 한 정확한 위치(단위: 밀리미터).
2.법선 벡터 (I, J, K): 해당 지점의 표면으로부터 90도 방향을 가리키는 방향 벡터입니다.
이 애드인은 이 법선 벡터를 사용하여 공구가 객체에 어떻게 접근해야 하는지 결정합니다.
3D 모델을클릭하여작업영역에점을추가합니다. 이스크립트는마우스클릭리스너루프를사용하여지속적으로확인을수행합니다. 사용자가객체메쉬를마우스왼쪽버튼으로클릭할때마다표면데이터가캡처됩니다.
앱설정에서이러한점의위치를변경할수있습니다. ‘객체에 새 점 추가’를활성화하면점이선택한 3D 모델의파일구조에직접삽입됩니다. 이기능을비활성화하면스테이션트리내에독립적인점항목이생성되며, 정확한좌표가자동으로이름으로지정됩니다.

정적포인트는로봇이동명령을통해이동할수없습니다. 따라서 ‘포인트를타겟으로변환’ 작업은기본좌표포인트를스테이션트리내의기능적인 RoboDK 타겟으로변환합니다.
점을타겟으로변환하려면점을선택한후 ‘점(들)을 타겟(들)로 변환’ 옵션을클릭하기만하면됩니다. 점을미리선택하지않은상태에서이옵션을클릭하면, 원하는점을선택할수있는창이나타납니다.

이스크립트는점의법선벡터(I, J, K)를읽어들이고, 이를사용하여새타겟의국소 Z축을정렬합니다. 이를통해로봇이해당지점에도달했을때공구가어느방향을향해야하는지알려줍니다.
기본적으로표면법선벡터는객체에서멀어지는방향을가리키므로, 로봇공구가뒤쪽을향하게될수있습니다. 이를해결하기위해스크립트에는 ‘점 법선 역전(Inverse point normal)’ 설정(유틸리티(Utilities) > 점유틸리티(➔ ) > 점유틸리티(Point Utilities)➔설정(Settings) 내)이포함되어있습니다. 이옵션을선택하면스크립트가벡터좌표에 “-1”을곱하여방향을반전시키므로, 로봇공구가표면을직접향하게됩니다.
포인트클라우드를가져오거나수동으로포인트를클릭할때, 포인트는특정목록순서대로저장됩니다. 지리적순서가아닌경우, 로봇이부품전체를건너뛰며이동하게되어하드웨어손상의위험이있습니다.
정렬스크립트는객체의깨끗한복사본을생성하고점의순서를초기화합니다. 첫번째점을기준으로나머지모든점까지의물리적거리를계산한후, 절대적으로가장가까운점을다음단계로선택합니다. 이루프는모든점이근접도에따라정렬될때까지반복됩니다.
설정(유틸리티➔점유틸리티➔설정)에서정렬 시 첫 번째 점을 입력하라는 프롬프트를활성화하면, 실행전에대화상자가열립니다. 여기에서 X, Y, Z 좌표를입력하여로봇경로의시작위치를정확히지정할수있습니다.

이옵션은 3D 모델의정확한형상과속성을파악합니다. 객체의일부를클릭하면스크립트가마우스클릭지점을둘러싼메쉬삼각형클러스터를추출합니다. 이점들은백그라운드솔버로전송되어해당영역의곡률을평가하고, 수학적평면, 원통또는구에부합하는지확인합니다. 그런다음창의왼쪽하단모서리에정확한치수가표시됩니다.