code wiki / (root) / nx_print_process.nx

nx_print_process.nx

buildroot/runtime/nx_print_process.nx

6898 B137 linesdepth 2pulls 2 transitivereach 60 importersview sourcekind librarytopic print
docsdependenciesstructsconstsfunctions

about

nx_print_process.nx -- bits-up sealed enum of additive-manufacturing PROCESS classes (orthogonal to material chemistry; classifies the physics of how the material is deposited and consolidated). ===================================================================== Multi-process / multi-material vision ===================================================================== Operator directive (2026-05-20): "i want to print lots of materials like concrete metal glass clay etc as you roadmap out so i could hypothetically have different types of printers printing different parts on a timing that lets a robot put them together" This file is the BITS-UP foundation for that vision. Every process class below has measurably different physics (temperature, viscosity, cure mechanism, layer time, mechanical strength). The NxMaterialProfile struct currently models FDM polymers; future profile shapes (sealed per-process structs) will model: - DIW dispensing rate + cure-vs-print-rate ratio (concrete, clay) - SLA cure energy + wavelength + Z-jerk-at-peel - DMLS laser power + scan speed + powder bed parameters - Binder jet droplet volume + saturation + cure cycle Substrate primitives queued (NOT in this file yet): nx_print_backend -- per-process emit interface (extends NxGcodeEmitter) nx_build_plan -- multi-part coordination (which printer, which part, when) nx_assembly_timing -- per-part complete-by-T, robot-pickup-at-T schedule nx_robot_pickup_spec -- end-effector orientation, grip force, part registration nx_part_compatibility -- interlock + fit verification across separately-printed pieces nx_coord_frame_transform -- bed coords -> assembly coords per part EXCEED motivation: NO production slicer handles cross-process coordination. OrcaSlicer / Bambu / Cura / PrusaSlicer are FDM-only. Specialized slicers exist per-process (Chitubox for resin, Materialise Magics for DMLS, etc.) but none coordinate ACROSS process types with timing for assembly. Nishi's bits-up substrate model treats process as a sealed enum parameter to a unified slicer + emitter stack, so a single .nx conductor can schedule: "FDM PLA torso prints on printer A by T+4h, concrete base

dependencies 1 imports · 7 importers

nx_syscalls.nx nx_print_process.nx nx_build_plan.nx nx_build_plan_sim.nx nx_build_plan_sim_test.nx nx_build_plan_test.nx nx_machine_arch_test.nx nx_machine_graph.nx nx_print_process_test.nx

imports: nx_syscalls.nx

imported by: nx_build_plan.nxnx_build_plan_sim.nxnx_build_plan_sim_test.nxnx_build_plan_test.nxnx_machine_arch_test.nxnx_machine_graph.nxnx_print_process_test.nx

structs

none

consts

49const NX_PROCESS_FDM_POLYMER: i64 = 0 // current substrate (PLA/PETG/etc)
50const NX_PROCESS_DIW_CEMENT: i64 = 1 // direct ink writing -- concrete, mortar
51const NX_PROCESS_DIW_CLAY: i64 = 2 // DIW -- ceramic green body, dry+kiln after
52const NX_PROCESS_DIW_BIOPRINT: i64 = 3 // DIW -- hydrogel / bio-ink (tissue scaffolds)
53const NX_PROCESS_SLA_RESIN: i64 = 4 // vat photopolymerization, UV cure
54const NX_PROCESS_DMLS_METAL: i64 = 5 // direct metal laser sintering, powder bed
55const NX_PROCESS_EBM_METAL: i64 = 6 // electron beam melting, vacuum chamber
56const NX_PROCESS_BINDER_JET: i64 = 7 // powder + binder droplets, post-cure
57const NX_PROCESS_FDM_METAL: i64 = 8 // metal-filled FDM (BASF Ultrafuse 316L, etc.)
58const NX_PROCESS_FDM_GLASS: i64 = 9 // soda-lime or borosilicate via FDM
59const NX_PROCESS_LDM_FOOD: i64 = 10 // liquid deposition modeling for chocolate/etc
60const NX_PROCESS_SLM_METAL: i64 = 11 // selective laser melting (cousin of DMLS)
61const NX_PROCESS_FFF_WOOD: i64 = 12 // wood-filled FDM
62const NX_PROCESS_N: i64 = 13 // count

functions

64func nx_process_is_valid(p: i64) -> i64
79func nx_process_needs_heated_extruder(p: i64) -> i64
called by 1: main
89func nx_process_uses_powder_bed(p: i64) -> i64
called by 2: mainmain
100func nx_process_needs_post_cure(p: i64) -> i64
called by 2: mainmain
114func nx_process_is_direct_write(p: i64) -> i64
called by 2: mainmain
130func nx_process_robot_pickup_ready(p: i64) -> i64
called by 2: mainmain