Object 클래스에 따라 매크로에서 Collection 필터링

매크로에서 Collection을 사용하는 경우 해당 Collection의 특정 클래스의 Object만 필요한 경우가 많다. 여기서는 Collection을 필터링하는 방법에 대해 설명한다.

Collection은 Object를 그룹화하는 데 사용되는 Java 클래스이다. STAR-CCM+에서 Collection은 boundary, region 또는 derived parts와 같은 object를 그룹화하는 데 사용됩니다.

다음 구문을 사용할 때…

Collection myContinuaColl = sim.getContinuumManager().getObjects();

Continuum manager에 있는 MeshContinuum과 PhysicsContinuum 모든 object들을 호출한다.

Mesh 형식의 continua만 필요한 경우, 즉 MeshContinuum 클래스의 객체만 필요한 경우 다음 구문을 사용할 수 있다.

Collection myMeshConColl = sim.getContinuumManager().getObjectsOf(MeshContinuum.class);

위의 코드를 사용하면 Collection에 MeshContinuum만 포함된다.

다른 예를 몇 개 설명해보면

1. Physics Continua만 가져오는 내용

Collection myPhysConColl = sim.getContinuumManager().getObjectsOf(PhysicsContinuum.class);

2. Derived Part만 가져오는 내용

2-1. Probe point

Collection myProbePointsColl = sim.getPartManager().getObjectsOf(PointPart.class);

2-2. Plane Section

Collection myplaneSectColl = sim.getPartManager().getObjectsOf(PlaneSection.class);

2-3. threshold

Collection myThresholdColl = sim.getPartManager().getObjectsOf(ThresholdPart.class);

대부분의 경우 추가 사용을 위해 Collection에 하나의 Object 클래스만 포함해야 함을 코드에 표시해야 한다. 항상 다음 구문을 사용하는 것이 좋다:

Collection<MeshContinuum> myMeshC   ontinuaColl = sim.getContinuumManager().getObjectsOf(MeshContinuum.class);
Collection<PhysicsContinuum> myPhysContinuaColl = sim.getContinuumManager().getObjectsOf(PhysicsContinuum.class);
Collection<PointPart> myProbePointsColl = sim.getPartManager().getObjectsOf(PointPart.class);
Collection<PlaneSection> myplaneSectColl = sim.getPartManager().getObjectsOf(PlaneSection.class);
Collection<ThresholdPart>| myThresholdColl = sim.getPartManager().getObjectsOf(ThresholdPart.class);

이렇게 하면 루프를 사용하여 다음과 같이 Collection의 모든 Object를 스위프할 수 있습니다:

for(PointPart probePoint : myProbePointsColl) {
     sim.println(probePoint.getPresentationName());
}
위로 스크롤