지난 시간에 진행했던 스프링 예제를 사용하여 반력 계산을 하는 방법에 대해 알아볼까합니다. 가장 이해가 쉬운 예제일 것 같아서 가져와봤습니다.
지난번에 포스팅 한 Displacement 구속조건 강좌에서는 Surface Traction 으로 1N의 하중을 -Z 방향으로 부여했습니다.
이번엔 Load 조건 없이, BCs만 두개로 변경하고, 특정 지점에서의 힘을 도출해낼 것입니다.지금은 이해가 잘 안되실 수도 있지만 아래 글을 계속 읽어나가시다보면 ‘아 이 말이었구나’ 하실 겁니다.
1. 경계 조건 변경
우선 아래와 같이 경계조건을 설정해줍니다.
Fixed 경계조건 하나, Displacement 경계조건 하나를 넣어주도록 하겠습니다.

아래와 같이 코일 스프링의 가장 아랫쪽의 면을 Fixed로 고정하고, 가장 윗쪽 면을 Displacement 로 1.68mm 압축되는 것을 구현해볼 것입니다.

왜 1.68mm을 압축 하느냐가 궁금하시다면 스프링 압축 편을 보고 오시면 되겠습니다.
변위 구속의 경계조건은 아래와 같습니다.

2. History Output에서 반력필드(RF) 추가
그리고 여기서 하나 더 해줄 것이 있습니다. History output에서 우클릭 후 Create를 해주는 것입니다.

그럼 아래와 같이 창이 뜹니다.
결과 값이 함께 출력하고 싶은 인자들을 추가로 선택하는 것입니다.

Node output을 선택하고,
스프링의 Displacement 조건이 걸려있는 Face(가장 위쪽 면)을 선택 한 후, 아래와 같이 셋업해줍니다.
U가 기본적으로 설정이 되어있을 텐데, RF로 선택을 해줍니다.
그리고, Totals를 Yes로 만들어줍니다. 이 의미는 각 노드들의 걸리는 반력 값을 모두 더해 하나로 sum 해주겠다는 것입니다.

OK를 누르면 아래와 같이 History outputs에 NH_Output-1 이 생깁니다.

이제 Analysis를 돌려보겠습니다.
3. 결과 해석
결과를 해석해보겠습니다.

Load로 하중을 걸었을 때와 거의 동일한 결과라고 볼 수 있습니다.
History outputs 추가로 인해, 좌측 하단에 못 보던 값이 생겼는데요. 바로 아래 부분입니다.

Total Force 에서 RF3 을 더블클릭하면, 해당 스프링에 작용하는 반력을 확인해볼 수 있습니다.
아래와 같은 창이 뜨며, 약 -1N이 발생한다고 나옵니다.

즉, 1.68mm 를 압축시킬 경우 반대방향으로 1N의 스프링 압축에 의한 반발력이 발생한다는 것을 의미합니다.
그러니까, 이 사례의 경우, x 미리를 눌렀을 때, y의 스프링 압축력이 발생할 것이다라는 것을 미리 알 수 있는 것이죠.
만약 이러한 기능이 없다면, 근사한 Force 값을 찍어보면서 역으로 유추할 수 밖에 없는 노릇입니다. (실제로 FreeCAD Workbench에서는 이런 기능을 지원하지 않아서 불편했던게 사실입니다.)
반발력을 알아야하는 수많은 경우에서 활용해볼 수 있습니다.
추가 팁
최근 PrePoMax 버젼에서는 해석이 완료된 이후에도 RF를 확인할 수 있습니다.

Result 탭에 있는 History outputs에서 우클릭을 하시면 됩니다.
From Field Ouput 선택 -> Region 선택 -> Field name 부터 Operate on 까지 아래와 같이 파라미터를 맞춥니다.
특히 Filter 1 에서 ROW가 아닌 Columns 으로 하게 되면 값 합산이 제대로 안되는 고질적인 문제가 있으므로 이에 유의합니다.

마무리
지금까지 history output 기능을 이용해서 반력(반발력), Reaction Force를 도출해보았습니다.
유용하게 활용하시면 좋겠습니다.
예제 필요하신 분들은 메일 부탁드립니다.