본문 바로가기
<해석프로그램>/하이퍼매쉬 자동화

[하이퍼매쉬 자동화] node 로 surface 만들때 번호 꼬이는 문제 해결

by bigpicture 2020. 9. 18.
반응형

[하이퍼매쉬 자동화] node 로 surface 만들때 번호 꼬이는 문제 해결


node로 surface 만들 때, 하이퍼매쉬 상에서 직접 선택하면 node 순서가 loop 대로 선택되는데, 코드를 이용해서 "on plane" 등의 옵션을 주면, 순서가 loop 순서가 아니라 번호 순으로 배열된다. 


아주 만족스러운 방법은 아니지만 해결방법을 찾았다. hm_getedgeloops 라는 명령어인데, element의 free edge 부분의 node를 loop 순서로 저장해준다. free edge가 여러개일 경우 각각 리스트로 저장한다.


아래는 예시다. blockA라는 block을 이용하여 element를 선택했다. free edge 를 얻어서 loop_all에 저장했다. 총 두개의 free edge가 저장되는데 그중에 원하는게 두번째 edge였고, 인덱싱을 용하여 두번째 edge에 접근했다. lindex $loop_all 1 이코드다. 0이 첫번째, 1이 두번째다. 


하나 문제가 있는데, loop를 얻을 경우 첫 요소에 2가 저장된다. 노드번호가 아니다. 이걸 없애줘야 해서. lreplace  명령어로 없애주었다. 


*surfacemode 4

*createmark elements 1 "by block" "blockA"

set loop_all [hm_getedgeloops elems markid=1]

set loop_1 [lindex $loop_all 1]

set loop_1 [lreplace $loop_1 0 0]


eval *createlist nodes 1 $loop_1

*surfacesplineonnodesloop2 1 0


node를 입력하면, 해당 node를 loop 순서로 정렬하는 코드가 있으면 좋은데 아직 못찾았다. 직접 짜봐야겠다. 

반응형

댓글