![FreeSewing](https://static.freesewing.org/banner.png)

@freesewing/plugin-export-dxf on NPM License: MIT Code quality on DeepScan Open issues tagged pkg:plugin-export-dxf All Contributors

Follow @freesewing_org on Twitter Chat with us on Discord Become a FreeSewing Patron Follow @freesewing_org on Twitter

# @freesewing/plugin-export-dxf A FreeSewing plugin to export your pattern as DXF-ASTM ## About This plugin adds the ability to export patterns to DXF-ASTM. DXF (Drawing interchange format) is a file format developed by Autodesk (of AutoCADยฎ fame). The DXF-ASTM variety is a subset of the format, specifically targetted at the garment industry. ASTM is the _American Society for Testing and Materials_ โ€” a standards body โ€” that published the format. DXF-ASTM is the successor of DXF-AAMA which was developed by the _American Apparel Manufacturers Association_ which reveals the origins of the file format. ## Usage Instantiate your pattern, and use the plugin. It will add the `exportDxf()` method to the pattern object. This method will return the DXF-ASTM output. ```js import models from '@freesewing/models' import Aaron from '@freesewing/aaron' import exportDxfPlugin from '@freesewing/plugin-export-dxf' const settings = { // Make sure to set complete to false complete: false, measurements: models.withoutBreasts.size42 } let dxf = new Aaron(settings).use(exportDxfPlugin).draft().exportDxf() ``` ## Configuration This plugin takes a configuration object as a second parameter to the `pattern.use()` method. ### Precision The precision property determines the length of the line segments used to approximate curves. The generated DXF-ASTM output will only contain straight lines, so curves will be approximated wiht lines segments. The `precision` sets the length of those segments in mm. In the example below, the `precision` is set to `25` resulting in the use of line segments 25mm (1 inch) to approximate the curve. ```js let config = { precision: 25 } let dxf = new Aaron(settings).use(exportDxfPlugin, config) ``` The default `precision` is `1`, giving you 1mm long line segments to approximate curves. ## Reasons to use this plugin This plugin can export your pattern to DXF-ASTM so you can import it to your 3D software of choice. ## Reasons to not use this plugin ### Because DXF is inferior to SVG in every way DXF (and DXF-AAMA and DXF-ASTM with it) are rooted in the world of industrial manufacturing. And it shows. Nowadays, it's easy to think of the DXF file format as a bit of an embarassment. But it is deliberatly kept dumb so that old industrial CNC milling machines, plotters, laster cutters and whatnot, can handle the format. ### Because this plugin does not implement all of DXF This plugin does the minimum to allow export of FreeSewing patterns into 3D garment tools. It expexts the input pattern to only include the outlines. That means, no seam allowance, or titles, no notches, and so on. ## What am I looking at? ๐Ÿค” This repository is our *monorepo* holding [all our NPM packages](https://freesewing.dev/reference/packages/). This folder holds: @freesewing/plugin-export-dxf ## About FreeSewing ๐Ÿ’€ Where the world of makers and developers collide, that's where you'll find FreeSewing. If you're a maker, checkout [freesewing.org](https://freesewing.org/) where you can generate our sewing patterns adapted to your measurements. If you're a developer, our documentation is on [freesewing.dev](https://freesewing.dev/). Our [core library](https://freesewing.dev/reference/api/) is a *batteries-included* toolbox for parametric design of sewing patterns. But we also provide a range of [plugins](https://freesewing.dev/reference/plugins/) that further extend the functionality of the platform. If you have NodeJS installed, you can try it right now by running: ```bash npx create-freesewing-pattern ``` Or, consult our getting started guides for [Linux](https://freesewing.dev/tutorials/getting-started-linux/), [MacOS](https://freesewing.dev/tutorials/getting-started-mac/), or [Windows](https://freesewing.dev/tutorials/getting-started-windows/). We also have a [pattern design tutorial](https://freesewing.dev/tutorials/pattern-design/) that walks you through your first parametric design, and [a friendly community](https://freesewing.org/community/where/) with people who can help you when you get stuck. ## Support FreeSewing: Become a patron ๐Ÿฅฐ FreeSewing is an open source project run by a community, and financially supported by our patrons. If you feel what we do is worthwhile, and you can spend a few coind without hardship, then you should [join us and become a patron](https://freesewing.org/community/join). ## Links ๐Ÿ‘ฉโ€๐Ÿ’ป - ๐Ÿ’ป Makers website: [freesewing.org](https://freesewing.org) - ๐Ÿ’ป Developers website: [freesewing.dev](https://freesewing.dev) - ๐Ÿ’ฌ Chat: On Discord via [discord.freesewing.org](https://discord.freesewing.org/) - โœ… Todo list/Kanban board: On Github via [todo.freesewing.org](https://todo.freesewing.org/) - ๐Ÿฆ Twitter: [@freesewing_org](https://twitter.com/freesewing_org) - ๐Ÿ“ท Instagram: [@freesewing_org](https://instagram.com/freesewing_org) ## License: MIT ๐Ÿค“ ยฉ [Joost De Cock](https://github.com/joostdecock). See [the license file](https://github.com/freesewing/freesewing/blob/develop/LICENSE) for details. ## Where to get help ๐Ÿคฏ Our [chatrooms on Discord](https://chat.freesewing.org/) are the best place to ask questions, share your feedback, or just hang out. If you want to report a problem, please [create an issue](https://github.com/freesewing/freesewing/issues/new). ## Contributors โœจ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):

Adam Tomkins

๐Ÿ“–

Alexandre Ignjatovic

๐Ÿ’ป

AlfaLyr

๐Ÿ’ป ๐Ÿ”Œ ๐ŸŽจ

Andrew James

๐Ÿ“–

Anneke

๐Ÿ“– ๐ŸŒ

Annie Kao

๐Ÿ“–

Anternative

๐Ÿ“–

Anthony

๐Ÿ’ฌ

Cameron Dubas

๐Ÿ“–

Carsten Biebricher

๐Ÿ“–

Cathy Zoller

๐Ÿ“–

Chantal Lapointe

๐ŸŒ

Damien PIQUET

๐Ÿ’ป

Darigov Research

๐Ÿ“– ๐Ÿค”

Elena FdR

๐Ÿ“– ๐Ÿ“

Emmanuel Nyachoke

๐Ÿ’ป ๐Ÿ“–

EvEkSwed

๐ŸŒ

Fantastik-Maman

๐ŸŒ

Forrest O.

๐Ÿ“–

Glenn Matthews

๐Ÿ“–

Irapeke

๐ŸŒ

Jacek Sawoszczuk

๐Ÿ“–

Jason Williams

๐Ÿ“–

Jeremy Jackson

๐Ÿ’ป

Joebidido

๐ŸŒ

Joost De Cock

๐Ÿšง

Josh Essman

๐Ÿ“–

Kake

๐Ÿ“–

Kapunahele Wong

๐Ÿ“–

Karen

๐Ÿ“– ๐Ÿ“‹

Katie McGinley

๐Ÿ“–

Kieran Klaassen

๐Ÿ’ป

Kittycatou

๐ŸŒ

Kris

๐Ÿ“–

Kristin Ruben

๐Ÿ’ป

Loudepeuter

๐ŸŒ

Lucian

๐Ÿ“‹

Marcus

๐ŸŒ

Martin Tribo

๐Ÿ“–

Nadege Michel

โš ๏ธ ๐Ÿ“–

Natalia

๐Ÿ’ป ๐ŸŽจ ๐Ÿ“

Nathan Yergler

๐Ÿ“–

Nick Dower

๐Ÿ“– ๐Ÿ’ป ๐Ÿ›

Patrick Forringer

๐Ÿ”Œ

Paul

๐Ÿ“– ๐Ÿ“ ๐ŸŒ

Phillip Thelen

๐Ÿ’ป

Pixieish

๐Ÿ“–

Prof. dr. Sorcha Nรญ Dhubhghaill

๐Ÿ“–

Quentin FELIX

๐Ÿ’ป ๐ŸŽจ

Rik Hekker

๐Ÿ›

Sam Livingston-Gray

๐Ÿ“–

Sanne

๐Ÿ’ป ๐Ÿ“–

Sara Latorre

๐ŸŒ

SeaZeeZee

๐Ÿ“–

Slylele

๐Ÿ“– ๐ŸŒ

Soazillon

๐ŸŒ

Stefan Sydow

๐ŸŒ ๐Ÿ“–

Trรญona

๐Ÿ“–

Unmutual

๐Ÿ“–

Wouter van Wageningen

๐Ÿ’ป ๐ŸŽจ ๐Ÿ”ง

amysews

๐Ÿ“–

beautifulsummermoon

๐ŸŒ

berce

๐Ÿ“–

biou

๐Ÿ’ป

bobgeorgethe3rd

๐Ÿ’ป ๐Ÿ“– ๐ŸŽจ

brmlyklr

๐Ÿ“–

chri5b

๐Ÿ’ป โš ๏ธ

dingcycle

๐ŸŒ

econo202

๐Ÿ“–

ericamattos

๐ŸŒ

fightingrabbit

๐Ÿ’ป

gaylyndie

๐Ÿ“–

grimlokason

๐Ÿ’ป

hellgy

๐ŸŽจ

marckiesel

๐ŸŒ

starfetch

๐Ÿ’ป ๐Ÿ“– ๐ŸŒ ๐ŸŽจ

ttimearl

๐Ÿ–‹

tuesgloomsday

๐Ÿ“–

valadaptive

๐Ÿ’ป

viocky

๐ŸŒ

woolishboy

๐Ÿ’ป

yc

๐ŸŒ
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!