code wiki / _hdl_build / nx_contour_print.nx

nx_contour_print.nx

buildroot/runtime/_hdl_build/nx_contour_print.nx

5470 B116 linesdepth 5pulls 8 transitivereach 4 importersview sourcekind library
docsdependenciesstructsconstsfunctions

about

nx_contour_print.nx -- LIB: the UNIFIED multi-material contour emitter (3D-printing R1b). Generalises from a hardcoded rectangle to ANY closed polygon contour, so arbitrary geometry (not just a wall) prints in any material through ONE function. (Production contours come from the mature nx_slice_* pipeline; this proves the emitter accepts arbitrary polygons + makes the R-ECO cistern ROUND.) Material family selects the deltas: FILAMENT = hot hotend (M104/M109), METAL = arc (M3/M5) + inter-layer cooling dwell (G4), PASTE = cold; the contour-tracing + layering is shared. No float: a 12-point integer circle table + Newton integer sqrt for path length. CARDINAL 26: motion + extrusion/arc/hotend-temp only; no firmware/EEPROM. license_tier: ORIGINAL

dependencies 5 imports · 2 importers

nx_print_material.nx nx_food_science.nx nx_seg_store.nx nx_syscalls.nx nx_vecmath.nx nx_contour_print.nx nx_contour_print_gate.nx nx_slice_bridge.nx

imports: nx_print_material.nxnx_food_science.nxnx_seg_store.nxnx_syscalls.nxnx_vecmath.nx

imported by: nx_contour_print_gate.nxnx_slice_bridge.nx

structs

none

consts

none

functions

15func cp_um_to_mm(dst: *u8, off: i64, um: i64) -> i64
called by 1: cp_emit_prism calls 1: fd_apnum
26func cp_isqrt(nn: i64) -> i64 { return vm_isqrt(nn) }
called by 1: cp_seglen calls 1: vm_isqrt
27func cp_seglen(x0: i64, y0: i64, x1: i64, y1: i64) -> i64
called by 1: cp_emit_prism calls 1: cp_isqrt
32func cp_move(out: *u8, off: i64, x: i64, y: i64, e: i64) -> i64
called by 1: cp_emit_prism calls 2: as_appendfd_apnum
42func cg_rect(xs: *i64, ys: *i64, w: i64, d: i64) -> i64
called by 1: main
50func cg_circle(xs: *i64, ys: *i64, cx: i64, cy: i64, r: i64) -> i64
called by 1: main calls 1: sys_mmap
71func cp_emit_prism(prefix: *u8, mat_id: *u8, xs: *i64, ys: *i64, npts: i64, h: i64, out: *u8) -> i64