1
0
Fork 0
freesewing/markdown/dev/howtos/design/cutlist/en.md
2023-04-27 19:15:17 +02:00

4.6 KiB

title
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

The grainline macro and the cutonfold macro will automatically add grain and fold information to the cutting instructions

These cutting instructions get used by the title macro, so be sure to add them before adding your part's title.

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:

Key Type Default Description
cut Number|false 2 the number of pieces to cut from the specified material. Pass false to clear all cutting instructions for the material
material String 'fabric' the translation key of the material to cut from
identical Boolean false should even numbers of pieces be cut in the same direction? false for mirrored
bias Boolean false should the pieces in these cutting instructions be cut on the bias? 'false' uses grainline instruction or leaves orientation as is
ignoreOnFold Boolean false should 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

Key Translation
fabric Main Fabric
lining Lining
canvas Canvas
lmhCanavas Light to Medium Hair Canvas
heavyCanvas Heavyweight Hair Canvas
interfacing Interfacing
plastic Plastic
ribbing Ribbing

Basic Usage

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

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

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

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.

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

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})
	}
}