DXF (๐งฉ Still under development ๐จ๐ฝโ๐ป)
๐ A simple JavaScript interface to DXF written in TypeScript.
โ๏ธ DXF is a JavaScript library, for Nodejs and Browser, it's for creating DXF files in a simple way.
โจ influenced by ๐ js-dxf.
- ๐ฅ Now it's supporting AC1021 and above.
- ๐ฅ Creating minimal dxf content possible.
- ๐ฅ Tested on ๐ AutoCAD, ๐ LibreCAD and ๐ DWG FastView on mobile.
๐ณ๏ธ Install the package
yarn add @tarikjabiri/dxf
# Or npm
npm i @tarikjabiri/dxf
โจ๏ธ Code example
import DXFWriter from '@tarikjabiri/dxf';
const dxf = new DXFWriter();
dxf.setTrueColor(200, 0, 207); // Set the true color.
dxf.addLine(0, 0, 100, 100);
let points = [
[-300, 0, 0],
[0, 200, 0],
[300, 70, 0],
[700, 100, 0],
[1000, 1200, 0],
];
dxf.unsetTrueColor(); // Unset the true color.
dxf.addLineType('DOT', '. . . . . . . . . . . . . . . . . .', [0, -4])
.addLineType(
'ACAD_ISO11W100',
'__ __ . __ __ . __ __ .',
[4, -2, 4, -2, 0, -2]
)
.addLineType('DOT2', '.................................', [0, -2])
.addLineType('DASHED', '_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _', [4, -4]);
dxf.addLayer('l_red', DXFWriter.colors.Red, 'DASHED')
.addLayer('l_green', DXFWriter.colors.Green, 'CONTINUOUS')
.addLayer('l_cyan', DXFWriter.colors.Cyan, 'CONTINUOUS')
.addLayer('l_yellow', DXFWriter.colors.Yellow, 'ACAD_ISO11W100');
dxf.setCurrentLayer('l_green')
.addSpline(points, points, 3, 8, [], [])
.setCurrentLayer('l_red')
.addCircle(60, 150, 50)
.addRectangle(20, 20, 100, 100)
.setCurrentLayer('l_cyan')
.addText(30, 30, 10, 'Hello World')
.addPolyline3D(
[
[70, 70, 50],
[150, 70, 0],
[170, 170, 150],
],
0
)
.addArc(0, 0, 120, 90, 180)
.addPoint(65, -30, 0)
.setCurrentLayer('l_yellow')
.addEllipse(100, 50, 150, 0, 1, 0, 2 * Math.PI)
.add3DFace(0, 0, 10, 20, 0, 10, 20, -20, 20, 0, -20, 20);
// โ๏ธ To get the dxf string just call the stringify() method
const dxfString = dxf.stringify();
For the priview of the example see ๐ examples directory.
โ๏ธ Supported entities :
- ARC
- CIRCLE
- ELLIPSE
- FACE 3D
- LINE
- POINT
- POLYLINE
- POLYLINE 3D
- SPLINE
- TEXT
๐ Colors integrated :
- Red
- Green
- Cyan
- Blue
- Magenta
- White
- Black
- Yellow
โน๏ธ References used in development :
- ๐ Autodesk Help
- ๐ ezdxf (a Python library written by ๐ Manfred Moitzi)
- ๐ AutoCAD Color Index (ACI)
- ๐ js-dxf (a Javascript library written by ๐ Ognjen Petrovic)
โ๏ธ License
๐ฏ Used by :
- ๐ My website Mapper.