---
title: Chain to points
---
To get points consistently spaced along a chains, call
makerjs.model.toPoints(chain, distance)
passing your chain, and the distance between points:
{% highlight javascript %}
//convert a round rectangle to points
var makerjs = require('makerjs');
var rect = new makerjs.models.RoundRectangle(100, 50, 10);
var chain = makerjs.model.findSingleChain(rect);
var spacing = 10;
var keyPoints = makerjs.chain.toPoints(chain, spacing);
var model = {
models: {
rect: rect,
dots: new makerjs.models.Holes(1, keyPoints)
}
};
var svg = makerjs.exporter.toSVG(model);
document.write(svg);
{% endhighlight %}
Hint: you can use the pathLength property of the chain to make sure your distance divides equally on the entire chain:
{% highlight javascript %}
//convert a round rectangle to points
var makerjs = require('makerjs');
var rect = new makerjs.models.RoundRectangle(100, 50, 10);
var chain = makerjs.model.findSingleChain(rect);
var minimumSpacing = 10;
var divisions = Math.floor(chain.pathLength / minimumSpacing);
var spacing = chain.pathLength / divisions;
console.log(spacing);
var keyPoints = makerjs.chain.toPoints(chain, spacing);
var model = {
models: {
rect: rect,
dots: new makerjs.models.Holes(1, keyPoints)
}
};
var svg = makerjs.exporter.toSVG(model);
document.write(svg);
{% endhighlight %}