/* * This EAGLE User Language Program */ string dir(int direction) { switch (direction) { case PIN_DIRECTION_NC :return "nc"; case PIN_DIRECTION_IN :return "in"; case PIN_DIRECTION_OUT :return "out"; case PIN_DIRECTION_IO :return "i/o"; case PIN_DIRECTION_OC :return "oc"; case PIN_DIRECTION_PWR :return "pwr"; case PIN_DIRECTION_PAS :return "pas"; case PIN_DIRECTION_HIZ :return "hiz"; case PIN_DIRECTION_SUP :return "sup"; } } string fun(int function) { switch (function) { case PIN_FUNCTION_FLAG_NONE :return "none"; case PIN_FUNCTION_FLAG_DOT :return "dot"; case PIN_FUNCTION_FLAG_CLK :return "clk"; } } string len(int length) { switch (length) { case PIN_LENGTH_POINT :return "point"; case PIN_LENGTH_SHORT :return "short"; case PIN_LENGTH_MIDDLE :return "middle"; case PIN_LENGTH_LONG :return "long"; } } string vis(int visible) { switch (visible) { case PIN_VISIBLE_FLAG_OFF :return "off"; case PIN_VISIBLE_FLAG_PAD :return "pad"; case PIN_VISIBLE_FLAG_PIN :return "pin"; } return "both"; } string po(int pour) { switch (pour) { case POLYGON_POUR_SOLID :return "solid"; case POLYGON_POUR_HATCH :return "hatch"; } } string sh(int shape) { switch (shape) { case PAD_SHAPE_SQUARE :return "square"; case PAD_SHAPE_ROUND :return "round"; case PAD_SHAPE_OCTAGON :return "octagon"; case PAD_SHAPE_XLONGOCT :return "xlongoct"; case PAD_SHAPE_YLONGOCT :return "ylongoct"; } } string adlev(int addlevel) { switch (addlevel) { case GATE_ADDLEVEL_MUST :return "must"; case GATE_ADDLEVEL_CAN :return "can"; case GATE_ADDLEVEL_NEXT :return "next"; case GATE_ADDLEVEL_REQUEST :return "request"; case GATE_ADDLEVEL_ALWAYS :return "always"; } } void pinprint(UL_PIN p) { printf("Pin '%s' %s %s %s r%g %s (%g %g)\n",p.name,dir(p.direction),fun(p.function),len(p.length),p.angle,vis(p.visible),u2mil(p.x),u2mil(p.y)); } void wireprint(UL_WIRE w) { printf("Layer %d;\nWire %g (%g %g) (%g %g);\n",w.layer,u2mil(w.width),u2mil(w.x1),u2mil(w.y1),u2mil(w.x2),u2mil(w.y2)); } void textprint(UL_TEXT t) { char mir='m'; if (t.mirror==0) mir='r'; printf("Layer %d;\nchange size %g;\nchange ratio %d;\n",t.layer,u2mil(t.size),t.ratio); printf("Text '%s' %c%g (%g %g)\n",t.value,mir,t.angle,u2mil(t.x),u2mil(t.y)); } void arcprint(UL_ARC a) { string ort="cw"; if (a.angle1