2D SIF is a dialect which supports 2D CNC milling and laser cutting. It is also useful for representing slices of a 3D solid to be manufactured by SFF processes.
SIF_2D | => | ( SIF_2D int int HEADER_LIST BODY ) | |||
HEADER_LIST | => |
empty |
|||
| | HEADER_LIST ( units VALUE ) | ||||
| | HEADER_LIST ( coord_precision VALUE ) | ||||
| | HEADER_LIST ( stock_depth VALUE ) | ||||
BODY | => | ( body GEOMETRY_LIST ) | |||
GEOMETRY_LIST | => |
empty |
|||
| |
GEOMETRY_LIST LOOP |
||||
| |
GEOMETRY_LIST SEGMENT_GROUP |
||||
| |
GEOMETRY_LIST VERTEX |
||||
LOOP_LIST | => |
empty |
|||
| | LOOP_LIST LOOP | ||||
LOOP | => | ( loop SEGMENT_LIST LOOP_LIST ) | |||
SEGMENT_GROUP | => | ( segment SEG_ID SEGMENT_LIST V_ID ) | |||
SEG_ID | => | int | |||
SEGMENT_LIST | => |
SEGMENT |
|||
| | SEGMENT_LIST SEGMENT | ||||
SEGMENT | => |
V_ID |
|||
| | V_ID ( bezier V_ID_LIST ) | ||||
| | V_ID ( arc VALUE ) | ||||
TRI_V_ID_LIST | => |
V_ID V_ID V_ID V_ID_LIST |
|||
BI_V_ID_LIST | => |
V_ID V_ID V_ID_LIST |
|||
V_ID_LIST | => |
empty |
|||
| | V_ID_LIST V_ID | ||||
VERTEX | => | ( v V_ID VALUE VALUE VALUE ) | |||
V_ID | => | int | |||
VALUE | => |
int |
|||
| | EXP | ||||
EXP | => | ( e int int ) |
(* Torus *) (SIF_2D 0 5 (units 1) (coord_precision (e 1 -3)) (stock_depth 2) (body (v 0 3 3 0) (v 1 -3 3 0) (v 2 -3 -3 0) (v 3 3 -3 0) (v 4 1 1 0) (v 5 1 -1 0) (v 6 -1 -1 0) (v 7 -1 1 0) (face (loop 0 1 2 3 (loop 4 5 6 7)) ) )