将条件添加至助手

分别将后置条件和前置条件添加到任务 1 和任务 2 中。

在模拟助手中,条件施加必须在工作流指定点符合的要求。有两种类型的条件:
  • 前置条件—定义任务开始之前需要的条件。
  • 后置条件—检查是否符合任务的要求。

在本教程中,您分别将后置条件和前置条件添加到任务 1 和任务 2 中。该条件检查几何文件零部件是否存在模拟中。如未存在零部件,则无法完成任务 1 并禁用任务 2。

将所有条件的代码添加到单独类是很好的做法。

  1. 将新类添加到助手程序包中并命名为 InternalFlowConditions


  2. 将下列代码复制到 InternalFlowConditions 类中。已将内容纳入代码中:
    package Assistant;
    
    import java.util.Collections;
    import star.assistant.CSOCondition;
    import star.assistant.CSOLookupConditionTrigger;
    import star.common.GeometryPart;
    import star.common.filters.Predicate;
    
    /**
     * 该类包含用于内部流体助手的所有条件。
     */
    public class InternalFlowConditions {
    
        public static synchronized CSOCondition<GeometryPart> createPartCondition() {
    
            // 创建一个新条件
            CSOCondition<GeometryPart> partCondition = new CSOCondition<GeometryPart>();
            // 设置该条件的文本描述
            partCondition.setDesc("A geometry part must be present.");
            // 创建新条件触发器,其可在将 CAD 模块添加到查找时触发。
            CSOLookupConditionTrigger<GeometryPart> partConditionTrigger = new CSOLookupConditionTrigger<GeometryPart>(GeometryPart.class);
            // 设置以上创建的条件的触发器列表。
            partCondition.setTriggers(Collections.singleton(partConditionTrigger));
            // 用评估方法创建新谓词 (真/假评估) 然后评估对象是否满足该条件。
            partCondition.setPredicate(new Predicate<GeometryPart>() {
                @Override
                public boolean evaluate(GeometryPart part) {
                    // 您可检查此处零部件的特定属性。
                    return true;
                }
            });
            return partCondition;
        }
    }