1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[83468],{83468:(e,t,r)=>{r.r(t),r.d(t,{default:()=>O,layerRows:()=>G});var l=r(95155),a=r(12115),s=r(33789),o=r(97003),n=r(33534),i=r(16110),h=r(69869),d=r(49480),u=r(12513),c=r(27784);let m=["heavy clay","deep mud","a full size utility truck"],b=["tarmac","grass-gravel","sand-shallow-mud","deep-mud-marsh","past-hubs","unanswered"],p={tarmac:{label:"Hard tarmac or smooth dirt",factor:.04,openEnded:!1},"grass-gravel":{label:"Grass or packed gravel",factor:.15,openEnded:!1},"sand-shallow-mud":{label:"Soft sand or shallow mud",factor:.25,openEnded:!1},"deep-mud-marsh":{label:"Deep mud, wheel deep, or marsh",factor:.52,openEnded:!1},"past-hubs":{label:"Stuck past the hubs, chassis high",factor:1,openEnded:!0}},g=["snow, packed or loose","ice","loose rock, boulders or a ledge","a river crossing or a submerged vehicle","a vehicle with a seized brake, a locked differential or a broken wheel"],f=["yes","no","unanswered"];function w(e){return"yes"===e?"yes":"no"===e?"no":"unanswered"}function y(e){return b.includes(e)?e:"unanswered"}let x=e=>"number"==typeof e&&Number.isFinite(e),v=(e,t,r)=>e>=t&&e<=r,L=e=>`${Math.round(e).toLocaleString("en-US")} lb`,k=e=>`${Math.round(1e3*e)/10} percent`,N=e=>e.toFixed(1),j={rollingLb:null,gradientLb:null,totalLb:null,isFloor:!1,surfaceLabel:null,surfaceFactor:null,gradientFactorValue:null},$=(e,t)=>(1-e)**(t-1);function T(e,t){let r={highLb:null,lowLb:null,highRatio:null,lowRatio:null};if(!x(e)||!v(e,500,1e5))return{...r,problem:`Enter the winch rating, between ${L(500)} and ${L(1e5)}. It is the single line pull figure on the winch, and it applies on the first layer of rope only.`};if(!x(t)||!Number.isInteger(t)||!v(t,1,10))return{...r,problem:"The layer has to be a whole number from 1 to 10. Layer 1 is rope wound straight onto the drum core, and each wrap on top of that is another layer."};if(t>5)return{...r,problem:"The published band stops at layer 5 and this page will not run it further, because a figure carried past where its source stopped looking is a guess wearing a citation. Measure your drum and rope diameters and the geometry below covers it."};let l=$(.1,t),a=$(.13,t);return{highLb:e*l,lowLb:e*a,highRatio:l,lowRatio:a,problem:null}}function I(e,t,r){if(!x(e)||!Number.isInteger(e)||!v(e,1,10))return{ratio:null,ropeToDrum:null,problem:"The layer has to be a whole number from 1 to 10."};if(!x(t)||!v(t,1,24))return{ratio:null,ropeToDrum:null,problem:"Measure the bare drum across its barrel, between 1 and 24 inches. That is the core the rope wraps, not the flanges at each end."};if(!x(r)||!v(r,.1,1.5))return{ratio:null,ropeToDrum:null,problem:"Measure the rope or cable across, between 0.1 and 1.5 inches."};let l=r/t;return l>.5?{ratio:null,ropeToDrum:l,problem:"That rope is more than half the diameter of the drum it wraps, which is not a winch. Check whether the two measurements went into each other's boxes."}:{ratio:(1+l)/(1+(2*e-1)*l),ropeToDrum:l,problem:null}}function P(e){if(!x(e)||e<=0||e>1e5)return{idealLb:null,lowLb:null,highLb:null,speedFactor:.5,problem:`Enter the line pull the winch is giving, up to ${L(1e5)}. On a drum with rope on it that is the layer figure rather than the rating.`};let t=2*e;return{idealLb:t,lowLb:.9*t,highLb:.95*t,speedFactor:.5,problem:null}}let q=[{ask:"What size shackle and strap do I need for this pull?",answer:"No rigging rating comes off this page. A working load limit is a certified figure for one exact part, and two shackles of the same pin size can be rated a long way apart depending on grade."},{ask:"How hard will a kinetic rope hit if I snatch it out?",answer:"No force figure appears here. The peak depends on how far the rope stretches before it stops the vehicle, which moves with the rope age, its temperature and how wet it is, and this is where recovery gear kills people."},{ask:"Will that tree hold?",answer:"No. A trunk diameter says nothing about the roots under it, and a healthy looking tree over soaked ground comes out whole. Somebody standing at the site decides this."},{ask:"What is the GVWR of my truck?",answer:"It is on the sticker inside the driver door, and this page will not guess it from a model name. Two of the same truck differ by hundreds of pounds once a winch, a bumper and a rack are on one of them."},{ask:"I built the winch mount myself. Does it still work?",answer:"The published method covers certified commercial winches and rigging, so this page withholds its verdicts for anything else. The arithmetic still shows, because a number is useful even where a verdict is not."}
1,{ask:"How long can I keep pulling before something overheats?",answer:"No run time appears here. Duty cycle, motor temperature and battery draw decide it, the research behind this page covers none of the three, and your winch manufacturer publishes a duty cycle."},{ask:"What about snow, ice, rocks or a river crossing?",answer:"The published surface table names five surfaces and this page carries those five. Anything else gets no figure here rather than the nearest looking row."}],A=["The rated pull on the winch is the pull on the first layer of rope, and only there. Spool more rope out before you start and you are working closer to the drum core, where the pull is highest. A short pull off a full drum is the worst place on the winch to be.","A snatch block roughly doubles the pull and exactly halves the speed, and the drum has to take in two feet of rope for every foot the vehicle moves. So it fills the drum twice as fast and walks the winch up into its weaker layers while it works, which this page does not follow.","Rolling resistance here multiplies your whole gross weight rather than the part of it pressing into the slope, which is what the published method does. On steep ground that reads high rather than low.","A margin between the pull available and the load is a number rather than a clearance to pull. Rigging is a skill, the load rises the moment a wheel drops into something, and a line that lets go under tension whips."],F="toolbreezy:winch-size-calculator",S=Object.keys(p),D=e=>""===e.trim()?null:(0,d.jO)(e),E=e=>Math.round(e).toLocaleString(),W=e=>`${Math.round(1e3*e)/10}%`,M={yes:"Yes",no:"No",unanswered:"Not sure yet"},R={gv:"6000",rp:"9500",gd:"8",ly:"3",cp:"",dd:"2.5",rd:"0.3125"},C=["gv","rp","gd","ly","cp","dd","rd","sf","hc","cg","sb"],H=[{key:"gv",label:"Gross vehicle weight rating",unit:"lb",hint:"door jamb sticker, or a public scale"},{key:"rp",label:"Winch rating",unit:"lb",hint:"the single line pull on the winch"},{key:"gd",label:"Slope",unit:"degrees",hint:"0 is flat, 90 is a vertical face"}],z=[{key:"ly",label:"Layer the rope is pulling off",unit:"",hint:"1 is bare drum"},{key:"dd",label:"Bare drum diameter",unit:"in",hint:"the barrel, not the flanges"},{key:"rd",label:"Rope or cable diameter",unit:"in",hint:"across the line"},{key:"cp",label:"Chart pull at that layer",unit:"lb",hint:"optional, from your winch manual"}];function G(e,t,r,l){let a=null!==l&&Number.isInteger(l)&&l>5&&l<=10?l:5,s=[];for(let l=1;l<=a;l+=1){let a=T(e,l),o=I(l,t,r);s.push({layer:l,bandLow:a.lowLb,bandHigh:a.highLb,geo:null!==o.ratio&&null!==e?e*o.ratio:null})}return s}function O(){let[e,t]=(0,a.useState)(R),[r,d]=(0,a.useState)("deep-mud-marsh"),[$,O]=(0,a.useState)("unanswered"),[V,Y]=(0,a.useState)("unanswered"),[B,_]=(0,a.useState)(!1);(0,a.useEffect)(()=>{let e=(0,h.qA)(window.location.search,window.location.hash),r=(e,r)=>{let l={...R};for(let t of Object.keys(R)){let a=e(t);null!==a?l[t]=a.slice(0,8):r&&(l[t]="")}t(l)};if((0,h.Yc)(e,C)){r(t=>e.get(t),!0),d(y(e.get("sf"))),O(w(e.get("hc"))),Y(w(e.get("cg"))),_("1"===e.get("sb"));return}let l=(0,u.y5)(F);l.found&&(r(e=>l.str(e,R[e],8),!1),d(y(l.str("sf","deep-mud-marsh",24))),O(w(l.str("hc","unanswered",12))),Y(w(l.str("cg","unanswered",12))),_(l.bool("sb",!1)))},[]),(0,c.Vd)(F,()=>JSON.stringify({...e,sf:r,hc:$,cg:V,sb:B}),[e,r,$,V,B],{debounceMs:250});let U=(e,r)=>t(t=>({...t,[e]:r})),Z=(0,a.useMemo)(()=>(function(e){let t=[],r=w(e.certifiedGear),l=!0===e.useSnatchBlock,a=function(e,t){if(!x(e))return{floorLb:null,ceilingLb:null,narrowedLb:null,narrowedNote:null,problem:"Enter the gross vehicle weight rating. The published rule is built on the GVWR and never on the curb weight, which is the vehicle empty."};if(!v(e,500,1e5))return{floorLb:null,ceilingLb:null,narrowedLb:null,narrowedNote:null,problem:`A gross vehicle weight rating between ${L(500)} and ${L(1e5)} is the range this page will work in.`};let r=w(t),l=1.5*e,a=2*e,s="yes"===r?{narrowedLb:a,narrowedNote:`You described ${m.join(", ")} or something like it, and the published rule raises the multiplier to ${N(2)} for those, which is ${L(a)}. That reading rests on your own description of the ground, so it sits beside the requirement rather than replacing it.`}:"no"===r?{narrowedLb:l,narrowedNote:`You described ground that is none of ${m.join(", ")}, which points at the ${N(1.5)} multiplier and ${L(l)}. That is your own reading of the ground rather than a measurement, so the requirement above still spans both multipliers.`}:{narrowedLb:null,narrowedNote:null};return{floorLb:l,ceilingLb:a,...s,problem:null}}(e.gvwrLb,e.heavyConditions),s=function(e){var t;let r=[];if(!x(e.gvwrLb))return{...j,warnings:r,problem:"Enter the gross vehicle weight rating. It is on the door jamb sticker, and this page will not guess it from a model name, because two trucks off the same line differ by hundreds of pounds once options are fitted."};if(!v(e.gvwrLb,500,1e5))return{...j,warnings:r,problem:`A gross vehicle weight rating between ${L(500)} and ${L(1e5)} is the range this page will work in. Outside it the figure is a typing slip rather than an unusual vehicle.`};let l=function(e){let t=y(e);if("unanswered"===t)return{factor:null,isFloor:!1,label:null,problem:`Pick one of the ${b.length-1} surfaces the published table names. This page carries those five and nothing else, so snow, ice, loose rock and a river crossing get no figure here rather than the nearest looking one.`};let r=p[t];return{factor:r.factor,isFloor:r.openEnded,label:r.label,problem:null}}(e.surface);if(null!==l.problem||null===l.factor)return{...j,warnings:r,problem:l.problem};let a=x(t=e.gradeDegrees)?v(t,0,90)?{factor:Math.sin(t*Math.PI/180),degrees:t,problem:null}:{factor:null,degrees:null,problem:"A slope has to be between 0 and 90 degrees. Past vertical the vehicle is hanging rather than climbing, and the published method does not describe that at all."}:{factor:null,degrees:null,problem:"Enter the slope in degrees. Flat ground is zero and a vertical face is 90."};if(null!==a.problem||null===a.factor||null===a.degrees)return{...j,warnings:r,problem:a.problem};let s=e.gvwrLb*l.factor,o=e.gvwrLb*a.factor;return a.degrees>45&&r.push("Past 45 degrees the surface factor stops describing much, because the vehicle is being lifted more than it is being rolled. The gradient half of this figure is still exact and by then it is most of the answer."),l.isFloor&&r.push("The published table gives this surface as 100 percent or more, with no upper figure. Every number below it is a floor, and a vehicle bur
1ied past the chassis can ask for several times its own weight."),{rollingLb:s,gradientLb:o,totalLb:s+o,isFloor:l.isFloor,surfaceLabel:l.label,surfaceFactor:l.factor,gradientFactorValue:a.factor,warnings:r,problem:null}}({gvwrLb:e.gvwrLb,surface:e.surface,gradeDegrees:e.gradeDegrees}),o=function(e){let t=[],r=T(e.ratedPullLb,e.layer),l=I(e.layer,e.drumDiameterIn,e.ropeDiameterIn),a={pullLb:null,pullHighLb:null,basis:null,layer:null,basisNote:null};if(!x(e.ratedPullLb)||!v(e.ratedPullLb,500,1e5))return{...a,band:r,geometry:l,warnings:t,problem:`Enter the winch rating, between ${L(500)} and ${L(1e5)}. That figure is the pull on the first layer of rope and nowhere else on the drum.`};let s=e.ratedPullLb,o=e.layer;if(!x(o)||!Number.isInteger(o)||!v(o,1,10))return{...a,band:r,geometry:l,warnings:t,problem:"The layer has to be a whole number from 1 to 10. Count the wraps out from the drum core to the one the rope is pulling off."};if(1===o)return x(e.chartPullAtLayerLb)?{...a,band:r,geometry:l,warnings:t,problem:"A chart figure for layer 1 is the winch rating written twice. Leave that box empty at layer 1, or count the wraps again, because the rating already is the first layer pull."}:{pullLb:s,pullHighLb:s,basis:"first-layer",layer:o,band:r,geometry:l,basisNote:"On the first layer the rating is the pull. This is the only place on the drum where the number on the winch is the number you get, and it is why pulling more rope out before you start is worth doing.",warnings:t,problem:null};if(x(e.chartPullAtLayerLb))return e.chartPullAtLayerLb>s?{...a,band:r,geometry:l,warnings:t,problem:"A layer chart figure above the winch rating cannot be right, because layer 1 is the rating and every layer above it pulls less. Check which column you read."}:v(e.chartPullAtLayerLb,0,1e5)?{pullLb:e.chartPullAtLayerLb,pullHighLb:e.chartPullAtLayerLb,basis:"chart",layer:o,band:r,geometry:l,basisNote:`Your winch manufacturer's own layer chart beats every model on this page, so that is the figure being used. It is ${k(1-e.chartPullAtLayerLb/s)} down on the rating.`,warnings:t,problem:null}:{...a,band:r,geometry:l,warnings:t,problem:`That layer chart figure is outside anything this page will work with. Enter the pounds of line pull your winch manufacturer prints for layer ${o}.`};if(null===l.problem&&null!==l.ratio&&null!==l.ropeToDrum){let e=Math.round(1/l.ropeToDrum*10)/10,a=s*l.ratio,n=null===r.problem&&null!==r.lowRatio&&null!==r.lowLb;return n&&r.lowRatio<l.ratio?(t.push(`The published 10 to 13 percent band is harder on this layer than your own drum geometry is, at ${L(r.lowLb)} against ${L(a)}, so the lower of the two is what everything below works to. Your winch manufacturer's layer chart settles it properly.`),{pullLb:r.lowLb,pullHighLb:Math.max(a,r.highLb),basis:"published-band",layer:o,band:r,geometry:l,basisNote:`Your drum comes out at ${e} rope diameters across, which puts layer ${o} at ${k(l.ratio)} of the rating by geometry. The published band is harsher here, so ${L(r.lowLb)} is the figure being planned around.`,warnings:t,problem:null}):{pullLb:a,pullHighLb:n?Math.max(a,r.highLb):a,basis:"geometry",layer:o,band:r,geometry:l,basisNote:`Worked from your own drum and rope, which come out at a drum ${e} rope diameters across. Pull is torque divided by radius, so layer ${o} keeps ${k(l.ratio)} of the rating, which is ${L(a)}.`,warnings:t,problem:null}}return null!==r.problem||null===r.lowLb||null===r.highLb?{...a,band:r,geometry:l,warnings:t,problem:r.problem}:(t.push("This is the published band and nothing more. It is a constant percentage per layer, and the real drop is largest on the first wrap and smaller after, so measure the bare drum and the rope and the geometry above will do better."),{pullLb:r.lowLb,pullHighLb:r.highLb,basis:"published-band",layer:o,band:r,geometry:l,basisNote:`The published band puts layer ${o} between ${L(r.lowLb)} and ${L(r.highLb)}, and the lower end is what everything below is measured against.`,warnings:t,problem:null})}({ratedPullLb:e.ratedPullLb,layer:e.layer,chartPullAtLayerLb:e.chartPullAtLayerLb,drumDiameterIn:e.drumDiameterIn,ropeDiameterIn:e.ropeDiameterIn});t.push(...s.warnings,...o.warnings);let n=l&&null!==o.pullLb?P(o.pullLb):null,i=l&&null!==o.pullHighLb?P(o.pullHighLb):null,h=l?n?.lowLb??null:o.pullLb,d=l?i?.highLb??null:o.pullHighLb;l&&t.push("A block means the drum takes in two feet of rope for every foot the vehicle moves, so it fills twice as fast and walks the winch up into its weaker layers while it works. This page reads one layer and does not follow that climb.");let u="yes"===r?null:"no"===r?"This page covers certified, commercially manufactured recovery winches and rigging only, and you said yours is not. Nothing published here describes a homemade winch, a rebuilt drum or a shop made hook, so no verdict comes out.":"Say whether the winch and the rigging are certified commercial gear. The published method covers that and nothing else, so the numbers below stand as arithmetic and no verdict comes out until that is answered.",c="undetermined",g=null;if(null!==u)g=null;else if(null===a.problem&&null!==a.floorLb&&null!==a.ceilingLb&&x(e.ratedPullLb)&&v(e.ratedPullLb,500,1e5)){let t=e.ratedPullLb;t>=a.ceilingLb?(c="meets-full-span",g=`${L(t)} covers the whole published span, which runs from ${L(a.floorLb)} at ${N(1.5)} times your gross weight to ${L(a.ceilingLb)} at ${N(2)} times. That is a rating against a rule of thumb and it is not a statement about any particular recovery.`):t>=a.floorLb?(c="meets-floor-only",g=`${L(t)} clears the ${N(1.5)} times floor of ${L(a.floorLb)} and falls short of the ${L(a.ceilingLb)}
1 the same rule sets for heavy clay, deep mud and full size utility trucks. The gap is ${L(a.ceilingLb-t)}.`):(c="below-floor",g=`${L(t)} is under the published minimum of ${L(a.floorLb)}, which is ${N(1.5)} times your gross vehicle weight rating. The shortfall is ${L(a.floorLb-t)} before any question of ground or slope.`)}else g=a.problem??`Enter the winch rating, between ${L(500)} and ${L(1e5)}, to measure it against the published requirement.`;let f=null,$=null;if(null!==u)$=null;else if(null===s.problem&&null!==s.totalLb&&null!==h){f=h-s.totalLb;let e=s.isFloor?"at least ":"",t=l?" through one snatch block, with the published 5 to 10 percent friction taken off":" straight off the drum";$=f>=0?`The published figures put the load at ${e}${L(s.totalLb)} and the pull available on layer ${o.layer}${t} at ${L(h)}, a difference of ${L(f)}. A difference on a screen is not a clearance to pull, because the surface factor is a rule of thumb, the load can rise the moment the vehicle moves, and a line that lets go under tension travels faster than anybody can move.`:`The published figures put the load at ${e}${L(s.totalLb)} and the pull available on layer ${o.layer}${t} at only ${L(h)}, which is ${L(-f)} short. Pulling more rope off the drum to reach a lower layer, or rigging through a block, are the two things that change that number, and both are rigging decisions rather than arithmetic.`}else $=s.problem??o.problem;return{requirement:a,requirementVerdict:c,requirementLine:g,verdictsWithheld:u,load:s,drum:o,block:n,blockRigged:l,availableLb:h,availableHighLb:d,marginLb:f,comparisonLine:$,warnings:t,problem:null}})({gvwrLb:D(e.gv??""),ratedPullLb:D(e.rp??""),surface:r,gradeDegrees:D(e.gd??""),heavyConditions:$,certifiedGear:V,layer:D(e.ly??""),chartPullAtLayerLb:D(e.cp??""),drumDiameterIn:D(e.dd??""),ropeDiameterIn:D(e.rd??""),useSnatchBlock:B}),[e,r,$,V,B]),J=(0,a.useMemo)(()=>G(D(e.rp??""),D(e.dd??""),D(e.rd??""),D(e.ly??"")),[e.rp,e.dd,e.rd,e.ly]),K=J.some(e=>null!==e.bandLow||null!==e.geo),Q=(0,a.useMemo)(()=>P(Z.drum.pullLb),[Z.drum.pullLb]),X=["WINCH SIZE, AGAINST THE PUBLISHED FIGURES","",null!==Z.requirement.floorLb&&null!==Z.requirement.ceilingLb?`Published requirement ${E(Z.requirement.floorLb)} to ${E(Z.requirement.ceilingLb)} lb (1.5 to 2.0 times GVWR)`:`Published requirement ${Z.requirement.problem??"not worked out"}`,Z.requirementLine??Z.verdictsWithheld??"","",null===Z.load.problem&&null!==Z.load.totalLb?`Surface ${Z.load.surfaceLabel??""} at ${Z.load.surfaceFactor??""} 2Rolling resistance ${Z.load.isFloor?"at least ":""}${E(Z.load.rollingLb??0)} lb 3Gradient ${E(Z.load.gradientLb??0)} lb 4Load on the winch ${Z.load.isFloor?"at least ":""}${E(Z.load.totalLb)} lb`:`Load ${Z.load.problem??"not worked out"}`,"",null===Z.drum.problem&&null!==Z.drum.pullLb?[`Layer ${Z.drum.layer??""} pull ${E(Z.drum.pullLb)} lb (${Z.drum.basis??""})`,Z.blockRigged&&null!==Z.availableLb?`Through one block ${E(Z.availableLb)} lb, at half the line speed`:`Straight off the drum ${E(Z.drum.pullLb)} lb`].join("\n"):`Drum ${Z.drum.problem??"not worked out"}`,"",Z.comparisonLine??Z.verdictsWithheld??"","",...A].filter(e=>!0).join("\n");return(0,l.jsxs)("div",{className:"space-y-5",children:[(0,l.jsxs)("div",{className:"rounded-lg border border-amber-500/40 bg-amber-500/5 p-4",children:[(0,l.jsx)("h3",{className:"text-sm font-medium",children:"What this page will not work out"}),(0,l.jsx)("dl",{className:"mt-3 space-y-3",children:q.map(e=>(0,l.jsxs)("div",{children:[(0,l.jsx)("dt",{className:"text-sm font-medium",children:e.ask}),(0,l.jsx)("dd",{className:"text-sm text-muted-foreground",children:e.answer})]},e.ask))})]}),(0,l.jsxs)("div",{className:"rounded-lg border p-4",children:[(0,l.jsx)("h3",{className:"text-sm font-medium",children:"The vehicle, the winch and the slope"}),(0,l.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:"The gross vehicle weight rating belongs to one VIN and this page will not guess it from a model name. It is on the sticker inside the driver door, and a loaded vehicle over a public scale is the other way to get it."}),(0,l.jsx)("div",{className:"mt-3 grid gap-4 sm:grid-cols-3",children:H.map(t=>(0,l.jsxs)("div",{className:"space-y-1.5",children:[(0,l.jsx)("label",{className:"text-sm font-medium",htmlFor:t.key,children:t.label}),(0,l.jsx)(s.p,{id:t.key,inputMode:"decimal",value:e[t.key]??"",placeholder:t.unit,onChange:e=>U(t.key,e.target.value),className:"font-mono"}),(0,l.jsx)("p",{className:"text-xs text-muted-foreground",children:t.hint})]},t.key))})]}),(0,l.jsxs)("div",{className:"rounded-lg border p-4",children:[(0,l.jsx)("h3",{className:"text-sm font-medium",children:"The ground you are pulling off"}),(0,l.jsx)("div",{className:"mt-3 flex flex-wrap gap-2",children:S.map(e=>(0,l.jsxs)(o.$,{size:"sm",variant:r===e?"default":"outline",onClick:()=>d(e),children:[p[e].label," (",W(p[e].factor),p[e].openEnded?"+":"",")"]},e))}),(0,l.jsxs)("p",{className:"mt-3 text-sm text-muted-foreground",children:["Those five are the whole published table, so ",g.join(", ")," get no figure here rather than the nearest looking row."]})]}),(0,l.jsxs)("div",{className:"rounded-lg border p-4",children:[(0,l.jsx)("h3",{className:"text-sm font-medium",children:"Where the rope is on the drum"}),(0,l.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:"The rating on the winch is the pull on layer
41, which is rope wound straight onto the drum core. Measuring the bare drum and the rope lets this page work the derate from geometry rather than from a published average, and a figure off your own manufacturer chart beats both."}),(0,l.jsx)("div",{className:"mt-3 grid gap-4 sm:grid-cols-2 lg:grid-cols-4",children:z.map(t=>(0,l.jsxs)("div",{className:"space-y-1.5",children:[(0,l.jsx)("label",{className:"text-sm font-medium",htmlFor:t.key,children:t.label}),(0,l.jsx)(s.p,{id:t.key,inputMode:"decimal",value:e[t.key]??"",placeholder:t.unit,onChange:e=>U(t.key,e.target.value),className:"font-mono"}),(0,l.jsx)("p",{className:"text-xs text-muted-foreground",children:t.hint})]},t.key))}),(0,l.jsxs)("div",{className:"mt-4 flex flex-wrap gap-2",children:[(0,l.jsx)(o.$,{size:"sm",variant:B?"default":"outline",onClick:()=>_(!0),children:"Rigged through one snatch block"}),(0,l.jsx)(o.$,{size:"sm",variant:B?"outline":"default",onClick:()=>_(!1),children:"Straight pull"})]})]}),(0,l.jsxs)("div",{className:"rounded-lg border p-4",children:[(0,l.jsx)("h3",{className:"text-sm font-medium",children:"Two questions the published rule turns on"}),(0,l.jsxs)("div",{className:"mt-3 space-y-4",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("p",{className:"text-sm font-medium",children:"Is the winch and the rigging certified, commercially made gear?"}),(0,l.jsx)("div",{className:"mt-2 flex flex-wrap gap-2",children:f.map(e=>(0,l.jsx)(o.$,{size:"sm",variant:V===e?"default":"outline",onClick:()=>Y(e),children:M[e]},e))}),(0,l.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:"The published method covers certified gear and nothing else, so the two verdicts stay withheld until this is a yes. The arithmetic runs either way."})]}),(0,l.jsxs)("div",{children:[(0,l.jsx)("p",{className:"text-sm font-medium",children:"Heavy clay, deep mud, or a full size utility truck?"}),(0,l.jsx)("div",{className:"mt-2 flex flex-wrap gap-2",children:f.map(e=>(0,l.jsx)(o.$,{size:"sm",variant:$===e?"default":"outline",onClick:()=>O(e),children:M[e]},e))}),(0,l.jsx)("p",{className:"mt-2 text-xs text-muted-foreground",children:"This is your own reading of the ground, so it adds a labeled line and never narrows the requirement. The verdict is measured against the whole published span either way."})]})]})]}),null!==Z.requirement.problem?(0,l.jsx)("p",{className:"rounded-md border border-destructive/40 bg-destructive/5 p-3 text-sm",children:Z.requirement.problem}):(0,l.jsxs)("div",{className:"rounded-lg border p-4",children:[(0,l.jsx)("h3",{className:"text-sm font-medium",children:"What the published rule asks for"}),(0,l.jsxs)("div",{className:"mt-3 space-y-1 font-mono text-sm",children:[(0,l.jsxs)("div",{className:"flex justify-between",children:[(0,l.jsxs)("span",{className:"text-muted-foreground",children:["1.5"," times your gross weight, the published minimum"]}),(0,l.jsxs)("span",{className:"tabular-nums",children:[E(Z.requirement.floorLb??0)," lb"]})]}),(0,l.jsxs)("div",{className:"flex justify-between",children:[(0,l.jsxs)("span",{className:"text-muted-foreground",children:["2.0"," times, which the same rule sets for the hard cases"]}),(0,l.jsxs)("span",{className:"tabular-nums",children:[E(Z.requirement.ceilingLb??0)," lb"]})]})]}),null!==Z.verdictsWithheld?(0,l.jsx)("p",{className:"mt-3 rounded-md border border-amber-500/40 bg-amber-500/5 p-2 text-sm",children:Z.verdictsWithheld}):null!==Z.requirementLine&&(0,l.jsx)("p",{className:`mt-3 rounded-md border p-2 text-sm ${"below-floor"===Z.requirementVerdict?"border-destructive/50 bg-destructive/5":""}`,children:Z.requirementLine}),null!==Z.requirement.narrowedNote&&(0,l.jsx)("p",{className:"mt-2 text-sm text-muted-foreground",children:Z.requirement.narrowedNote})]}),null!==Z.load.problem?(0,l.jsx)("p",{className:"rounded-md border border-destructive/40 bg-destructive/5 p-3 text-sm",children:Z.load.problem}):(0,l.jsxs)("div",{className:"rounded-lg border p-4",children:[(0,l.jsx)("h3",{className:"text-sm font-medium",children:"The load the winch actually sees"}),(0,l.jsxs)("div",{className:"mt-3 space-y-1 font-mono text-sm",children:[(0,l.jsxs)("div",{className:"flex justify-between",children:[(0,l.jsxs)("span",{className:"text-muted-foreground",children:["Rolling resistance, ",Z.load.surfaceLabel," at ",W(Z.load.surfaceFactor??0)]}),(0,l.jsxs)("span",{className:"tabular-nums",children:[Z.load.isFloor?"at least ":"",E(Z.load.rollingLb??0)," lb"]})]}),(0,l.jsxs)("div",{className:"flex justify-between",children:[(0,l.jsx)("span",{className:"text-muted-foreground",children:"Gradient, the vehicle's own weight down the slope"}),(0,l.jsxs)("span",{className:"tabular-nums",children:[E(Z.load.gradientLb??0)," lb"]})]}),(0,l.jsxs)("div",{className:"flex justify-between border-t pt-1 font-medium",children:[(0,l.jsx)("span",{className:"text-muted-foreground",children:"What the winch is pulling against"}),(0,l.jsxs)("span",{className:"tabular-nums",children:[Z.load.isFloor?"at least ":"",E(Z.load.totalLb??0
4)," lb"]})]})]}),(0,l.jsxs)("p",{className:"mt-3 text-sm text-muted-foreground",children:["Gross weight is not the load. On this ground and this slope the published figures put it at"," ",(Math.round(10*((Z.load.totalLb??0)/(D(e.gv??"")||1)*100))/10).toLocaleString(void 0,{maximumFractionDigits:1})," percent of the vehicle, and the rolling half of that is multiplied by the whole weight rather than by the part pressing into the slope, which is what the published method does."]})]}),K&&(0,l.jsxs)("div",{className:"rounded-lg border p-4",children:[(0,l.jsx)("h3",{className:"text-sm font-medium",children:"What each layer of rope on the drum costs you"}),(0,l.jsx)("div",{className:"mt-3 overflow-x-auto",children:(0,l.jsxs)("table",{className:"w-full text-sm",children:[(0,l.jsx)("thead",{children:(0,l.jsxs)("tr",{className:"border-b text-left text-muted-foreground",children:[(0,l.jsx)("th",{className:"py-1 pr-3 font-medium",children:"Layer"}),(0,l.jsx)("th",{className:"py-1 pr-3 text-right font-medium",children:"Published band"}),(0,l.jsx)("th",{className:"py-1 text-right font-medium",children:"Your own drum geometry"})]})}),(0,l.jsx)("tbody",{className:"font-mono",children:J.map(e=>(0,l.jsxs)("tr",{className:`border-b last:border-0 ${e.layer===Z.drum.layer?"font-medium":""}`,children:[(0,l.jsx)("td",{className:"py-1 pr-3",children:e.layer}),(0,l.jsx)("td",{className:"py-1 pr-3 text-right tabular-nums",children:null!==e.bandLow&&null!==e.bandHigh?`${E(e.bandLow)} to ${E(e.bandHigh)} lb`:"not worked out"}),(0,l.jsx)("td",{className:"py-1 text-right tabular-nums",children:null!==e.geo?`${E(e.geo)} lb`:"measure the drum and rope"})]},e.layer))})]})}),(0,l.jsx)("p",{className:"mt-3 text-sm text-muted-foreground",children:"The two columns disagree, and the row in bold is the layer you said the rope is on. The published band takes a flat 10 to 13 percent off for every layer, while the geometry says pull is torque divided by radius, so the drop is biggest on the first wrap and smaller after. On a small recovery drum the geometry is harsher, and on a large industrial one the band is. Whichever is lower is what this page plans around, and your own manufacturer chart settles it properly."})]}),null!==Z.drum.problem?(0,l.jsx)("p",{className:"rounded-md border border-destructive/40 bg-destructive/5 p-3 text-sm",children:Z.drum.problem}):(0,l.jsxs)("div",{className:`rounded-lg border p-4 ${null!==Z.marginLb&&Z.marginLb<0?"border-destructive/50 bg-destructive/5":""}`,children:[(0,l.jsx)("h3",{className:"text-sm font-medium",children:"The pull you actually have"}),(0,l.jsxs)("div",{className:"mt-3 space-y-1 font-mono text-sm",children:[(0,l.jsxs)("div",{className:"flex justify-between",children:[(0,l.jsxs)("span",{className:"text-muted-foreground",children:["Line pull on layer ",Z.drum.layer]}),(0,l.jsxs)("span",{className:"tabular-nums",children:[E(Z.drum.pullLb??0)," lb"]})]}),Z.blockRigged&&null!==Z.block&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"flex justify-between",children:[(0,l.jsx)("span",{className:"text-muted-foreground",children:"Doubled through one block"}),(0,l.jsxs)("span",{className:"tabular-nums",children:[E(Z.block.idealLb??0)," lb"]})]}),(0,l.jsxs)("div",{className:"flex justify-between",children:[(0,l.jsxs)("span",{className:"text-muted-foreground",children:["After the published ",W(.05)," to ",W(.1)," pulley friction"]}),(0,l.jsxs)("span",{className:"tabular-nums",children:[E(Z.block.lowLb??0)," to ",E(Z.block.highLb??0)," lb"]})]}),(0,l.jsxs)("div",{className:"flex justify-between",children:[(0,l.jsx)("span",{className:"text-muted-foreground",children:"Vehicle speed against line speed"}),(0,l.jsxs)("span",{className:"tabular-nums",children:[Z.block.speedFactor," to 1"]})]})]})]}),null!==Z.drum.basisNote&&(0,l.jsx)("p",{className:"mt-3 text-sm text-muted-foreground",children:Z.drum.basisNote}),!Z.blockRigged&&null!==Q.idealLb&&(0,l.jsxs)("p",{className:"mt-2 text-sm text-muted-foreground",children:["One snatch block would take that to ",E(Q.lowLb??0)," to ",E(Q.highLb??0)," lb at the vehicle, at half the speed, because the drum takes in two feet of rope for every foot the vehicle moves. That relationship is conservation of work rather than a published figure."]})]}),null!==Z.comparisonLine&&(0,l.jsxs)("div",{className:`rounded-lg border p-4 ${null!==Z.marginLb&&Z.marginLb<0?"border-destructive/50 bg-destructive/5":""}`,children:[(0,l.jsx)("h3",{className:"text-sm font-medium",children:"The load against the pull"}),(0,l.jsx)("p",{className:"mt-2 text-sm text-muted-foreground",children:Z.comparisonLine})]}),Z.warnings.length>0&&(0,l.jsx)("ul",{className:"space-y-2",children:Z.warnings.map(e=>(0,l.jsx)("li",{className:"rounded-md border border-amber-500/40 bg-amber-500/5 p-2 text-sm",children:e},e.slice(0,32)))}),(0,l.jsxs)("div",{className:"rounded-lg border p-4",children:[(0,l.jsx)("h3",{className:"text-sm font-medium",children:"Worth knowing before you rig anything"}),(0,l.jsx)("ul",{className:"mt-3 space-y-2 text-sm text-muted-foreground",children:A.map(e=>(0,l.jsx)("li",{children:e},e.slice(0,32)))})]}),(0,l.jsx)(i.i,{value:X,label:"Copy the figures"}),(0,l.jsx)("p",{className:"text-sm text-muted-foreground",children:"This page reports published figures against what you typed and it never issues a clearance to pull, because rigging is a skill and a line that fails under tension whips faster than anybody can move. The research gives the drum loss two ways that do not agree, as a band of 10 to 13 percent per layer and as up to 40 percent at a full drum, and the band cannot reach 40 percent by the fourth layer under either end, so this page shows the band, shows what your own drum and rope geometry give, and works to the lower of the two. Reading that band as a compounding loss rather than as a flat subtraction is our choice and not the source of it, and the geometry route assumes drum torque holds
4steady and that rope stacks a full diameter per layer with no bedding in, which reads the loss slightly high. Rolling resistance here multiplies your full gross weight rather than the share of it pressing into the slope, which is what the published method does and which reads high on steep ground rather than low, and the friction cost of a snatch block is published as a range so no single doubled figure appears and every comparison uses the 10 percent end. Your gross weight has to come off the door jamb sticker or a public scale, and the layer chart your winch manufacturer publishes beats every model on this page. Nothing here rates rope, shackles, straps or anchors, nothing here touches kinetic recovery, and nothing here says how long the motor can pull before it overheats."}),(0,l.jsx)(n.ToolActions,{share:()=>(0,h.CZ)([{key:"gv",value:e.gv},{key:"rp",value:e.rp},{key:"gd",value:e.gd},{key:"ly",value:e.ly},{key:"cp",value:e.cp},{key:"dd",value:e.dd},{key:"rd",value:e.rd},{key:"sf",value:r},{key:"hc",value:$},{key:"cg",value:V},{key:"sb",value:B?"1":"0"}]),title:"Winch Size Calculator",queryIsImpersonal:"the vehicle rating, the winch rating and the ground you entered"})]})}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.