Collection을 사용해 STAR-CCM+에서 특정 이름을 가진 객체를 선택하는 방법

컬렉션은 요소(개체)를 그룹화하는 데 사용되는 Java 클래스이다. STAR-CCM+에서는 집합을 사용하여 경계, 영역 또는 derived Parts와 같은 개체를 그룹화한다.

이름이 특정 문자열이 포함된 요소를 필터링

Collection myRegColl = sim.getRegionManager().getObjects(); 를 사용했을 때 Region Manager로부터 모든 Region들을 가져오게 된다. 예를 들어 solid와 같은 이름을 포함하는 Region만 필요한 경우 다음 코드를 사용한다:

Collection <Region> myRegColl = sim.getRegionManager().getObjects();
Collection <Region> myFilterReColl = new ArrayList();
for(Region reg: myRegColl){
    if(reg.getPresentationName().toLowerCase().contains("solid )){
        myFilterReColl.add(reg);
    }
}

위 코드 중 .toLowerCase()는 메서드는 문자열을 소문자로 변환해 반환하게 된다. getPresentationName()메소드를 사용하여 특정 객체의 이름을 가져오게 되면 java에서는 대소문자를 구분하기 때문에 전체 문자열을 소문자로 통일하여 내가 원하는 이름을 가진 객체를 편하게 가져올 수 있다. 예를 들어 객체 이름이 “toStart_sOliD”라고 할 때 전체 문자열을 소문자로 변경하기 때문에 여기는 “solid”가 포함되어 있어 선택이 되게 된다.

  • ^ : 시작하는 위치
  • \\d : 숫자
  • .* : 뒤에 모든 것들

위 코드는 문자열 중 첫 번째 위치에 숫자(0,1,2,…,9)가 존재하는 객체를 넣어줄 수 있다. 예를 들어 문자열이 ” 8_cenTer_soLid”일 경우 가장 첫 번재 문자가 숫자이기 때문에 선택되게 된다.

위로 스크롤