public static TwistedCore GetTwistedCore(int twistedElementsCount, ICableElement preform, Tape?tape = null, Thread thread = null) { var twistInfo = GetTwistInfo(twistedElementsCount); var twistedElementType = DefineTwistedCoreType(twistedElementsCount); var twistKoefficient = GetTwistKoefficient(twistedElementsCount); double diameter = 0; if (preform is TwistedCore core) { if (core.TwistedElementType == TwistedElementType.core) { diameter = core.Diameter * twistKoefficient * 0.9; } else { diameter = CalcCoreDiametersMethods[twistedElementType].Invoke(core.Preform.Diameter, twistKoefficient); } } else { diameter = CalcCoreDiametersMethods[twistedElementType].Invoke(preform.Diameter, twistKoefficient); } var twistStep = GetTwistStep(preform, diameter); var twistedCore = new TwistedCore() { Preform = preform, TwistInfo = twistInfo, TwistedElementType = twistedElementType, Tape = tape, Thread = thread, Diameter = diameter, TwistStep = twistStep }; return(twistedCore); }
public static double GetTwistStep(ICableElement singleTwistedElement, double twistedCoreDiameter) { return((singleTwistedElement is TwistedConductor || singleTwistedElement is InsulatedBillet) ? twistedCoreDiameter * 16 : twistedCoreDiameter * 18); }