private boolean evaluatePcfClause(String clause) {
		if (model instanceof MesoModel)
			return false;
		if (clause == null || clause.equals(""))
			return false;
		String[] sub = clause.split(REGEX_AND);
		Pcf.Parameter[] par = new Pcf.Parameter[sub.length];
		byte id1 = 0, id2 = 0;
		int length = 0;
		for (int n = 0; n < sub.length; n++) {
			int i = sub[n].indexOf("within");
			String str = i == -1 ? sub[n] : sub[n].substring(0, i).trim();
			Matcher matcher = INTEGER_GROUP.matcher(str);
			if (matcher.find()) {
				try {
					String[] s = str.split(REGEX_SEPARATOR + "+");
					id1 = Float.valueOf(s[0].trim()).byteValue();
					id2 = Float.valueOf(s[1].trim()).byteValue();
					length = Math.round((Float.valueOf(s[2].trim()) * IR_CONVERTER));
				} catch (Exception e) {
					out(ScriptEvent.FAILED, "Script error at: " + str + "\n" + e);
					return false;
				}
			} else {
				out(ScriptEvent.FAILED, "Unrecognized clause: " + clause);
				return false;
			}
			if (i >= 0) {
				str = sub[n].substring(i).trim();
				matcher = WITHIN_RECTANGLE.matcher(str);
				if (matcher.find()) {
					Rectangle2D area = getWithinArea(str);
					if (area == null)
						return false;
					par[n] = new Pcf.Parameter(id1, id2, length, area);
				}
			} else {
				par[n] = new Pcf.Parameter(id1, id2, length, model.boundary);
			}
		}
		((AtomicModel) model).showPCF(par);
		return true;
	}