Belt Wrap Angle Calculator for Open Belt Drives
This belt wrap angle calculator finds the contact angle on the smaller pulley in an open belt drive.
Run — free
Enter the small pulley diameter, large pulley diameter, and distance between their centers using one consistent length unit. The result is returned in both degrees and radians, making it convenient for hand calculations, design worksheets, and engineering software. The calculation uses ideal external tangent geometry and checks that the stated pulley dimensions describe a physically separated pair.
What the smaller-pulley wrap angle means
The wrap angle is the angular portion of a pulley circumference that remains in contact with the belt. In an open belt drive, the two pulleys rotate in the same direction, and the smaller pulley normally has less contact than the larger one. That smaller contact arc is often the limiting side when assessing how much traction the drive can transmit before slip becomes likely. This calculator reports that contact angle in degrees for drawings and familiar engineering communication, and in radians for formulas that use angular measure directly. All three dimensions may be entered in millimeters, inches, centimeters, or another length unit, provided the same unit is used for both diameters and the center distance. Because the formula depends on a ratio of lengths, the selected unit cancels. The result describes ideal geometric contact along the pulley pitch circles. It does not by itself calculate belt tension, transmitted power, centrifugal effects, groove wedging, tooth engagement, or a recommended safety factor.
How the open-belt geometry is calculated
Let the larger pulley diameter be D, the smaller pulley diameter be d, and the center distance be C. The offset of the two external tangent belt spans gives the dimensionless ratio (D − d) divided by 2C. The angle associated with that offset is the inverse sine of the ratio. For the smaller pulley, the contact angle is pi minus twice that inverse-sine angle. Equal pulley diameters therefore produce exactly 180 degrees of wrap, while increasing the diameter difference at a fixed center distance reduces the smaller pulley's contact. Increasing the center distance makes the belt spans more nearly parallel and moves the contact angle back toward 180 degrees. The calculator performs the trigonometry without approximation and then rounds only the displayed outputs for stable, readable results. It also requires the center distance to exceed half the sum of the diameters. That condition prevents the entered pitch circles from touching or overlapping, which would not represent a workable separated-pulley layout.
Using the result in a belt-drive design
Start with pitch diameters when they are available, since belt-drive geometry is conventionally evaluated at the belt pitch line rather than at an arbitrary outside surface. Measure center distance between shaft axes, not between pulley rims. After calculating the angle, use it as an input to the friction, tension-ratio, or manufacturer selection method appropriate to the belt type. A low wrap angle can indicate that the smaller pulley needs more separation, a different diameter combination, an idler, or another drive arrangement, but this calculator does not choose among those remedies. Flexible flat belts, V-belts, synchronous belts, and specialty profiles have different traction and engagement rules even when their geometric contact angles match. Real installations also include belt thickness, elastic stretch, pulley tolerances, shaft movement, and alignment error. Treat the ideal result as one geometric step in the design process, then check the belt manufacturer's minimum pulley diameter, required engagement, installation allowance, tensioning procedure, and service factors before finalizing equipment or ordering components.
What you can do with it
Check a preliminary pulley layout
Compare candidate pulley diameters and shaft spacing to see how each layout changes contact on the smaller pulley.
Supply an angle to a traction calculation
Obtain the smaller-pulley angle in radians for a belt tension-ratio or friction calculation.
Review an existing open belt drive
Use measured pulley diameters and shaft center distance to document the ideal geometric wrap angle.
FAQ
What formula does the calculator use?
For an open drive, the smaller-pulley wrap angle is pi minus two times asin((D - d) / (2C)), where D is the larger diameter, d is the smaller diameter, and C is center distance.
Which units should I enter?
Use any length unit, but use that same unit for both pulley diameters and the center distance. The units cancel in the diameter-to-distance ratio.
Why must center distance exceed half the sum of the diameters?
At or below that distance, the pulley pitch circles touch or overlap, so the inputs do not describe two physically separated pulleys.
Does this formula apply to crossed belts?
No. It is specifically for an open belt drive with external tangent spans. Crossed belt drives use different contact geometry.
How much does an API calculation cost?
Each API request costs $0.002. The browser calculation is available without an API request.
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/eng/belt-wrap-angle \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"small_diameter":100,"large_diameter":250,"center_distance":600}'const res = await fetch("https://api.kit.forhosting.com/eng/belt-wrap-angle", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"small_diameter": 100,
"large_diameter": 250,
"center_distance": 600
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/eng/belt-wrap-angle",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"small_diameter": 100,
"large_diameter": 250,
"center_distance": 600
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/eng/belt-wrap-angle", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"small_diameter":100,"large_diameter":250,"center_distance":600}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"small_diameter":100,"large_diameter":250,"center_distance":600}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/eng/belt-wrap-angle", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"small_diameter": 100,
"large_diameter": 250,
"center_distance": 600
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "eng.belt_wrap_angle",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |