Include Cutting Instructions

To include cutting instructions with your part, use the annotations plugin to add the cutlist.addCut method to your part’s store

Tip
The grainline macro and the cutonfold macro will automatically add grain and fold information to the cutting instructions
Tip
These cutting instructions get used by the title macro, so be sure to add them before adding your part’s title.
Note
addCut() Parameters

Pass an object to the store.cutlist.addCut method with any of the following keys; any you don’t provide will be filled with the defaults:

KeyTypeDefaultDescription
cutNumber|false2the number of pieces to cut from the specified material. Pass false to clear all cutting instructions for the material
materialString‘fabric’the translation key of the material to cut from
identicalBooleanfalseshould even numbers of pieces be cut in the same direction? false for mirrored
biasBooleanfalseshould the pieces in these cutting instructions be cut on the bias? ‘false’ uses grainline instruction or leaves orientation as is
ignoreOnFoldBooleanfalseshould these cutting instructions ignore any cutOnFold information set by the part

You can use any string you want for your material, but here are some standard ones we have translation for

KeyTranslation
fabricMain Fabric
liningLining
canvasCanvas
lmhCanavasLight to Medium Hair Canvas
heavyCanvasHeavyweight Hair Canvas
interfacingInterfacing
plasticPlastic
ribbingRibbing

Basic Usage

For simple cutting instructions, you can rely on the default method parameters

Javascript
import { pluginAnnotations } from '@freesewing/plugin-cutlist'

const part = {
	name: 'example.front',
	plugins: [pluginAnnotations],
	draft: ({part, store}
) => {
		// add instructions to cut two mirrored from main fabric
		store.cutlist.addCut()
	}
}

Intermediate Usage

For many designs, you’ll want more than just “Cut 2 mirrored from Main Fabric”

Specifying materials, number of pieces, orientation

You can override the default values to specify different materials, number of pieces to cut, and whether they should be mirrored or identical

Javascript
import { pluginAnnotations } from '@freesewing/plugin-cutlist'

const part = {
	name: 'example.front',
	plugins: [pluginAnnotations],
	draft: ({part, store}
) => {
		// add instructions to cut three identical from lining
		store.cutlist.addCut({cut: 3, material: 'lining', identical: true})
	}
}

Instructions for multiple materials

You can add as many sets of instructions as you need

Javascript
import { pluginAnnotations } from '@freesewing/plugin-cutlist'

const part = {
	name: 'example.front',
	plugins: [pluginAnnotations],
	draft: ({part, store}
) => {
		// add instructions to cut four mirrored from main fabric
		store.cutlist.addCut({cut: 4})
		// add instructions to cut three identical from lining
		store.cutlist.addCut({cut: 3, material: 'lining', identical: true})
	}
}

Advanced usage

Cut some on the fold, some not

Sometimes you want some pieces cut on the fold and others cut as halves to seam together.

Javascript
import { pluginAnnotations } from '@freesewing/plugin-cutlist'

const part = {
	name: 'example.front',
	plugins: [pluginAnnotations],
	draft: ({part, points, Point, macro, store}
) => {
		// set the cut on fold line
		points.p1 = new Point(0, 0)
		points.p2 = new Point(0, 10)

		// pieces should be cut on the fold
		macro('cutonfold', {from: points.p1, to: points.p2})

		// cut two on the fold
		store.cutlist.addCut()
		// cut two, not on the fold
		store.cutlist.addCut({cut: 2, ignoreOnFold: true})
	}
}

Cut some on the grain, some on the bias

You set the grainline on a piece, but you also need some to be cut on the bias

Javascript
import { pluginAnnotations } from '@freesewing/plugin-cutlist'

const part = {
	name: 'example.front',
	plugins: [pluginAnnotations],
	draft: ({part, points, Point, macro, store}
) => {
		// set the cut on fold line
		points.p1 = new Point(0, 0)
		points.p2 = new Point(0, 10)

		// the grain runs from p1 to p2
		macro('grainline', {from: points.p1, to: points.p2})

		// cut two mirrored on the grain
		store.cutlist.addCut()
		// cut two mirrored on the bias
		store.cutlist.addCut({cut: 2, bias: true})
	}
}