import { SYMBOL_ACCENT, SYMBOL_FILL, SYMBOL_MUTED, SYMBOL_STROKE, SymbolSvg, } from "./primitives"; const PNEUMATIC_STROKE_WIDTH = 1.7; const PNVO001_STROKE = "#8b134f"; const ORIFICE_CONTENT_SCALE = 0.6; const ORIFICE_CONTENT_CENTER = { x: 32, y: 24 } as const; const ORIFICE_CONTENT_TRANSFORM = `translate(${ORIFICE_CONTENT_CENTER.x} ${ORIFICE_CONTENT_CENTER.y}) scale(${ORIFICE_CONTENT_SCALE}) translate(${-ORIFICE_CONTENT_CENTER.x} ${-ORIFICE_CONTENT_CENTER.y})`; function scaledOrificePoint(x: number, y: number) { return { x: ORIFICE_CONTENT_CENTER.x + (x - ORIFICE_CONTENT_CENTER.x) * ORIFICE_CONTENT_SCALE, y: ORIFICE_CONTENT_CENTER.y + (y - ORIFICE_CONTENT_CENTER.y) * ORIFICE_CONTENT_SCALE, }; } export const PNVO001_PORT_ANCHORS = { physicalLeft: scaledOrificePoint(0, 24), physicalRight: scaledOrificePoint(64, 24), signal: scaledOrificePoint(24.25, 56), } as const; type OrificeControl = "none" | "fixed" | "signal"; function Pnvo001Body({ control }: { control: OrificeControl }) { return ( {control === "none" ? null : ( <> )} {control === "signal" ? ( ) : null} ); } /** 定系数气动孔口(AMESim PNOR001)。 */ export function AmesimPnor001Symbol() { return ( ); } /** PNVO001 convenience variant whose opening is fixed by a parameter. */ export function AmesimPnvo001FixedSymbol() { return ( ); } /** Signal-modulated pneumatic orifice (AMESim PNVO001 / pn_morifice). */ export function AmesimPnvo001SignalSymbol() { return ( ); } type PipeSection = "C" | "R"; function PipeNetworkBody({ sections }: { sections: readonly PipeSection[] }) { const left = 9; const right = 55; const top = 13; const bottom = 35; const sectionWidth = (right - left) / sections.length; return ( <> {sections.slice(1).map((_, index) => { const x = left + sectionWidth * (index + 1); return ( ); })} {sections.map((section, index) => ( {section} ))} ); } /** Pure pneumatic resistance line (AMESim PNL00R). */ export function AmesimPnl00rSymbol() { return ( ); } /** C-R dynamic pneumatic line (AMESim PNL0001). */ export function AmesimPnl0001Symbol() { return ( ); } /** R-C-R dynamic pneumatic line (AMESim PNL0002). */ export function AmesimPnl0002Symbol() { return ( ); } /** C-R-C dynamic pneumatic line (AMESim PNL0003). */ export function AmesimPnl0003Symbol() { return ( ); } function JunctionTerminal({ x, y }: { x: number; y: number }) { return ( ); } /** Three-port pneumatic junction with one inlet-side and two outlet-side ports. */ export function AmesimPn3Node2Symbol() { return ( ); } /** Four-port pneumatic junction with one inlet-side and three outlet-side ports. */ export function AmesimP4Node2Symbol() { return ( ); }