README
đ 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.