JMP에서는 List는 {}로 구성되어 있지만 Python은 List가 []로 구성되어 있기 때문이다.
Names Default To Here( 1 );
dt = Current Data Table();
//Make list to selected column for rainflow count
sel_col = dt << Get Selected Columns( string );
signal = As List( Column( dt, sel_col ) << GetAsMatrix() );
//show(signal);
rainflow 방법을 선택한 New window를 만든다.
Combo Box를 만들어서 rainflow 방법을 선택하게 했고 선택한 변수값에 따라 하위 선택 Combo Box가 아래에 Append() 되도록 만들었다.
하위 선택 Combo Box는 Expr()으로 만들어서 Append(Eval())로 디스플레이되도록 했다.
Combo Box에서 선택한 값에 따라 기존에 선택된 하위 선택 Combo Box가 제거되고 새로운 Combo Box가 나타나게 하기 위해 Try(Combo Box 변수명 << delete box) 코드를 사용했다.
예전에는 if문을 사용했는데 Try() 코드가 훨씬 수월하다.
선택을 하고 최종적으로 OK 버튼을 클릭하면 rainflow 방법, 하위 세팅 변수값을 Get() 하도록 했다.
Python Execute() 함수를 이용해서 Python "rainflow" 패키지를 실행하는 Python code를 입력했다.
signal과 설정 변수를 input으로 하여 조건에 따라 각각의 rainflow 코드가 실행되도록 했다.
결과값을 새로운 Data Table로 만들어지도록 했고, 결과값을 Heat Map으로 표현되도록 구성했다.
Pagoda roof 방식 Full info 설정시 결과값
"rainflow" 패키지는 pagofa roof 방식만 사용한다고 앞서 말했다.
그 외 다른 방법도 추가하고 싶었다. 특히 4 Point 방식은 적용하고 싶었다.
아무리 찾아봐도 4 Point 방식의 Python 패키지는 찾지 못했고,
LLM을 이용하여 Python code를 만들어보고 싶어 했지만, 실력이 부족하여 만든 code 마다 결과값에 문제가 있었다.
좀 더 자료를 찾아서 향후에 추가하고 싶다.
구글에서 공개된 ASTM E1049-85 문서에는 Range-pair 방식에 대한 설명이 있었다.
이를 프롬프트로 만들어서 Claude를 이용 Python code를 생성했고 이후 조금 튜닝을 해서 적용을 했다.