PROC ShowLine(txt) IS VAR p, asc, dec IN p := PS.CurrentPoint(); asc, dec := PS.FontHeight(); PS.Type(p, txt); PS.MoveTo((CAR(p), CDR(p) - (asc + dec ))) END END; PROC ShowVar(name, val) IS ShowLine(name & " = " & Unparse.Value(val)) END; PROC P(a) IS IF VAR ay1 ~ -4.725269, ay2 ~ -0.286212, ay3 ~ 3.697048, az1 ~ -7.827311, az2 ~ -0.245738, az3 ~ 6.758616, by1 ~ -2.8847, by2 ~ -0.420612, by3 ~ 3.392521, bz1 ~ -5.29555, bz2 ~ -0.264776, bz3 ~ 5.647535, cy1 ~ -2.590619, cy2 ~ -0.615462, cy3 ~ 4.390292, cz1 ~ -5.464584, cz2 ~ -0.290098, cz3 ~ 6.938893, dy ~ -1, dz ~ -1, ey ~ 1, ez ~ 1, fy ~ 0, fz ~ 0 IN 194 * (ay1 + ay2 + ay3 ) - 105 * dy + 150 * ey - 33 * fy = 0 AND 194 * (az1 + az2 + az3 ) - 105 * dz + 150 * ez - 33 * fz = 0 AND 172 * (by1 + by2 + by3 ) - 51 * dy - 66 * ey - 21 * fy = 0 AND 172 * (bz1 + bz2 + bz3 ) - 51 * dz - 66 * ez - 21 * fz = 0 AND 266 * (cy1 + cy2 + cy3 ) + 129 * dy - 186 * ey - 39 * fy = 0 AND 266 * (cz1 + cz2 + cz3 ) + 129 * dz - 186 * ez - 39 * fz = 0 AND 97 * (ay1 * ay2 + ay1 * ay3 + ay2 * ay3 ) - 172 * (by1 * by2 + by1 * by3 + by2 * by3 ) + 54 * (dy * ey) - 3 * (dy * fy) + 12 * (ey * fy) = 0 AND 97 * (ay1 * az2 + ay1 * az3 + ay2 * az1 + ay2 * az3 + ay3 * az1 + ay3 * az2 ) - 172 * (by1 * bz2 + by1 * bz3 + by2 * bz1 + by2 * bz3 + by3 * bz1 + by3 * bz2 ) + 54 * (dy * ez + dz * ey) - 3 * (dy * fz + dz * fy) + 12 * (ey * fz + ez * fy) = 0 AND 97 * (az1 * az2 + az1 * az3 + az2 * az3 ) - 172 * (bz1 * bz2 + bz1 * bz3 + bz2 * bz3 ) + 54 * (dz * ez) - 3 * (dz * fz) + 12 * (ez * fz) = 0 AND 97 * (ay1 * ay2 + ay1 * ay3 + ay2 * ay3 ) - 133 * (cy1 * cy2 + cy1 * cy3 + cy2 * cy3 ) - 6 * (dy * ey) - 12 * (dy * fy) + 18 * (ey * fy) = 0 AND 97 * (ay1 * az2 + ay1 * az3 + ay2 * az1 + ay2 * az3 + ay3 * az1 + ay3 * az2 ) - 133 * (cy1 * cz2 + cy1 * cz3 + cy2 * cz1 + cy2 * cz3 + cy3 * cz1 + cy3 * cz2 ) - 6 * (dy * ez + dz * ey) - 12 * (dy * fz + dz * fy) + 18 * (ey * fz + ez * fy) = 0 AND 97 * (az1 * az2 + az1 * az3 + az2 * az3 ) - 133 * (cz1 * cz2 + cz1 * cz3 + cz2 * cz3 ) - 6 * (dz * ez) - 12 * (dz * fz) + 18 * (ez * fz) = 0 AND 97 * ay1 * ay2 * ay3 - 344 * by1 * by2 * by3 + 133 * cy1 * cy2 * cy3 + 6 * dy * ey * fy = 0 AND 97 * (ay1 * ay2 * az3 + ay1 * az2 * ay3 + az1 * ay2 * ay3 ) - 344 * (by1 * by2 * bz3 + by1 * bz2 * by3 + bz1 * by2 * by3 ) + 133 * (cy1 * cy2 * cz3 + cy1 * cz2 * cy3 + cz1 * cy2 * cy3 ) + 6 * (dy * ey * fz + dy * ez * fy + dz * ey * fy) = 0 AND 97 * (ay1 * az2 * az3 + az1 * ay2 * az3 + az1 * az2 * ay3 ) - 344 * (by1 * bz2 * bz3 + bz1 * by2 * bz3 + bz1 * bz2 * by3 ) + 133 * (cy1 * cz2 * cz3 + cz1 * cy2 * cz3 + cz1 * cz2 * cy3 ) + 6 * (dy * ez * fz + dz * ey * fz + dz * ez * fy) = 0 AND 97 * az1 * az2 * az3 - 344 * bz1 * bz2 * bz3 + 133 * cz1 * cz2 * cz3 + 6 * dz * ez * fz = 0 -> PS.MoveTo(a); ShowVar("ay1", ay1); ShowVar("ay2", ay2); ShowVar("ay3", ay3); ShowVar("az1", az1); ShowVar("az2", az2); ShowVar("az3", az3); ShowVar("by1", by1); ShowVar("by2", by2); ShowVar("by3", by3); ShowVar("bz1", bz1); ShowVar("bz2", bz2); ShowVar("bz3", bz3); ShowVar("cy1", cy1); ShowVar("cy2", cy2); ShowVar("cy3", cy3); ShowVar("cz1", cz1); ShowVar("cz2", cz2); ShowVar("cz3", cz3); ShowVar("dy", dy); ShowVar("dz", dz); ShowVar("ey", ey); ShowVar("ez", ez); ShowVar("fy", fy); ShowVar("fz", fz) END | PS.Type(a, "No Solution") FI END;