code wiki / (root) / nx_polymer_thermal.nx

nx_polymer_thermal.nx

buildroot/runtime/nx_polymer_thermal.nx

6916 B171 linesdepth 3pulls 3 transitivereach 5 importersview sourcekind library
docsdependenciesstructsconstsfunctions

about

nx_polymer_thermal.nx -- per-polymer thermal envelope for FDM printing. Combines polymer chemistry (Tg, Tm, Td) with engineering constraints (recommended print + bed temp ranges) into a single substrate primitive the slicer composes for thermal-safety validation BEFORE emitting G-code with operator-supplied temps. Per META-CARDINAL feedback-engineering-sciences-bits-up-3d-print-first: this is the substrate's FIRST primitive that bridges Layer 2 (pure chemistry: nx_chem_periodic / nx_chem_molecule -- already shipped) with Layer 3 (engineering applications: nx_material_profile + nx_gcode_emit). Composes: - nx_material_profile (NX_MAT_* sealed-enum keys) - chemistry knowledge (Tg / Tm / Td values from polymer literature) Future v2 could compose nx_chem_molecule to compute mol weight from PLA repeating unit (C3H4O2)n etc., but v1 ships the slicer- relevant constants directly per material class. Thermal values verified against polymer-literature consensus: PLA: Tg 60°C / Tm 160°C / Td 250°C / print 190-230 / bed 50-65 PETG: Tg 80°C / Tm 240°C / Td 290°C / print 220-250 / bed 70-85 ABS: Tg 105°C / amorphous / Td 270°C / print 220-260 / bed 90-110 ASA: Tg 105°C / amorphous / Td 270°C / print 240-260 / bed 100-110 PC: Tg 145°C / amorphous / Td 320°C / print 270-310 / bed 110-130 TPU: Tg variable / Tm 180°C / Td 240°C / print 200-230 / bed 50-60 NYLON: Tg 50°C / Tm 220°C / Td 320°C / print 240-280 / bed 80-100 PA-CF: same as NYLON with reinforcement (no thermal delta) PEEK: Tg 143°C / Tm 343°C / Td 575°C / print 360-400 / bed 120-145 Amorphous polymers (ABS, ASA, PC) use Tm = 0 as sentinel meaning "no crystalline melt; soften gradually above Tg". Validator treats this case correctly. license_tier: ORIGINAL

dependencies 2 imports · 2 importers

nx_syscalls.nx nx_material_profile.nx nx_polymer_thermal.nx nx_polymer_thermal_test.nx nx_preflight.nx

imports: nx_syscalls.nxnx_material_profile.nx

imported by: nx_polymer_thermal_test.nxnx_preflight.nx

structs

63struct NxPolymerThermal

consts

41const NX_POLYTHERM_SAFE: i64 = 0
42const NX_POLYTHERM_PRINT_TOO_LOW: i64 = 1
43const NX_POLYTHERM_PRINT_TOO_HIGH: i64 = 2
44const NX_POLYTHERM_DECOMP_RISK: i64 = 3
45const NX_POLYTHERM_BED_TOO_LOW: i64 = 4
46const NX_POLYTHERM_BED_TOO_HIGH: i64 = 5
47const NX_POLYTHERM_UNKNOWN_CLASS: i64 = 6
48const NX_POLYTHERM_N: i64 = 7
74const NX_POLYTHERM_BYTES: i64 = 64 // 8 i64

functions

50func nx_polytherm_verdict_name(v: i64) -> *u8
78func nx_polytherm_set(p: *NxPolymerThermal, cls: i64,
99func nx_polymer_thermal_for(material_class: i64) -> *NxPolymerThermal
151func nx_polymer_thermal_validate(p: *NxPolymerThermal,
168func nx_polymer_validate_profile(mat: *NxMaterialProfile) -> i64