[하이퍼매쉬 자동화] 두 node 사이의 거리를 구하는 방법
1) node의 id를 아는 경우
두 node의 아이디가 11과 22라고 합시다. 아래와 같은 방법으로 거리를 계산합니다.
먼저 각각 node의 좌표를 얻어 변수에 저장합니다.
set n1_x [hm_getvalue nodes id=11 dataname=x]
set n1_y [hm_getvalue nodes id=11 dataname=y]
set n1_z [hm_getvalue nodes id=11 dataname=z]
set n1_x [hm_getvalue nodes id=22 dataname=x]
set n1_y [hm_getvalue nodes id=22 dataname=y]
set n1_z [hm_getvalue nodes id=22 dataname=z]
각 좌표의 차이를 구합니다.
set d_x [expr $d1_x-$d2_x]
set d_y [expr $d1_x-$d2_x]
set d_z [expr $d1_z-$d2_z]
두 점사이의 거리를 계산합니다.
set dist [expr sqrt(pow($d_x,2)+pow($d_y,2)+pow($d_z,2))]
2) node를 *createmark 로 얻는 경우
특정 plane위에 있는 node들을 선택해서 n2 변수에 저장했습니다. 아래와 같은 방법으로 거리를 계산합니다.
*createmark nodes 1 "on plane" 0 0 -2 0 0 1 0.1 1 0
set n2 [hm_getmark nodes 1]
set n1_x [hm_getvalue nodes id=[lindex $n2 0] dataname=x]
set n1_y [hm_getvalue nodes id=[lindex $n2 0] dataname=y]
set n1_z [hm_getvalue nodes id=[lindex $n2 0] dataname=z]
set n1_x [hm_getvalue nodes id=[lindex $n2 1] dataname=x]
set n1_y [hm_getvalue nodes id=[lindex $n2 1] dataname=y]
set n1_z [hm_getvalue nodes id=[lindex $n2 1] dataname=z]
set d_x [expr $d1_x-$d2_x]
set d_y [expr $d1_x-$d2_x]
set d_z [expr $d1_z-$d2_z]
set dist [expr sqrt(pow($d_x,2)+pow($d_y,2)+pow($d_z,2))]
3) Tcl command 이용
두 node의 아이디가 11과 22라고 합시다. 아래와 같은 방법으로 거리를 계산합니다.
hm_getdistance nodes 11 22 0
0은 글로벌 좌표계를 의미합니다. 위와같이 명령어를 입력하면 아래 네가지 결과가 출력됩니다.
total distance and the three component values between the input nodes/points
거리만 원할 경우 아래 명령어를 이용합니다.
lindex [hm_getdistance nodes 11 22 0] 0
'<해석프로그램> > 하이퍼매쉬 자동화' 카테고리의 다른 글
[하이퍼매쉬 자동화] 매쉬 순서에 따른 매쉬오류 (0) | 2020.09.17 |
---|---|
surface로 surface 자르기 (0) | 2020.09.16 |
[하이퍼매쉬 자동화] 스크립팅할때 명령어들 모아놓은 곳 (0) | 2020.09.15 |
[하이퍼매쉬 자동화] line drag 할때, 생성 위치 (0) | 2020.09.15 |
[하이퍼매쉬 자동화] 연산 하는 방법 (0) | 2020.09.15 |
댓글