private boolean evaluateRestrainClause(String str) {
		double x = parseMathExpression(str);
		if (Double.isNaN(x))
			return false;
		if (x < 0) {
			out(ScriptEvent.FAILED, "Restraint cannot be negative: " + str);
			return false;
		}
		int nop = model.getNumberOfParticles();
		if (nop <= 0)
			return true;
		float c = (float) (x * 0.01);
		for (int k = 0; k < nop; k++) {
			Particle p = model.getParticle(k);
			if (p.isSelected()) {
				if (c < ZERO) {
					p.setRestraint(null);
				} else {
					if (p.restraint == null) {
						p.setRestraint(new PointRestraint(c, p.rx, p.ry));
					} else {
						p.restraint.k = c;
					}
				}
			}
		}
		view.repaint();
		notifyChange();
		return true;
	}