DXFLib is a library written in MATLAB that allows to create simple AutoCAD DXF files. Autocad DXF is a popular file format that can be interpreted in many CAD-related applications. AutoCAD DXF can be also converted to a PDF file containing 3D geometry using any 3D printer driver.
The DXFLib handles DXF layers and ACI Colors (RGB colors are automatically converted to their ACI counterparts). It is capable of exporting point, polylines, polysurfaces, text, various 3D primitives and 2D markers.
Just unpack zipped m-files to your working directory or create a separate directory and add its location to MATLAB path. All m-files are located in to root directory. The /examples directory contains DXF files which are generated by dxf_test.m script. Some DXF files are converted to 3D PDF files using Bentley View 3D printer driver.
The easiest way to learn how to create DXF files using DXFLib is to simply run the dxf_test.m script and then open it in MATLAB editor and compare the generated DXF files with the code inside the script. Obviously, you'll need any DXF viewer that is capable to handle 3D content. I recommend
to use free Bentley View software (http://www.bentley.com/en-US/Products/Bentley+View/). The
advantage of using Bentley View is that this software is capable to PRINT 3D PDF
files (some DXF files in /exaples subdirectory were converted using this 3D PDF printer driver). More examples and a short tutorial is available at: http://www.sejsmologia-gornicza.pl/?page_id=235
DXFLib page: http://www.induced.pl/projects/dxflib
Grzegorz Kwiatek (2020). DXFLib (https://www.mathworks.com/matlabcentral/fileexchange/33884-dxflib), MATLAB Central File Exchange. Retrieved .
@Tomas The documentation states that "Default drawing units for AutoCAD DesignCenter blocks: 0 = Unitless; 1 = Inches; 2 = Feet; 3 = Miles; 4 = Millimeters;
5 = Centimeters; 6 = Meters; 7 = Kilometers; 8 = Microinches; 9 = Mils; 10 = Yards; 11 = Angstroms; 12 = Nanometers; 13 = Microns; 14 = Decimeters; 15 = Decameters; 16 = Hectometers; 17 = Gigameters; 18 = Astronomical units; 19 = Light years; 20 = Parsecs. That's what's in documentation, I don't maintain this package anymore, apologies.
@Thomas You can follow the DXF format documentation that is available on the net freely. I guess you may change header of DXF file that my library creates and modify "INSUNITS" variable.
Great work. How do I change the units from meters to some different kind of units?
It would be better if this library could do pattern filling
The dxf_polyline does a great job at converting 2D images into .dxf files. It can be included in a loop to make a file with multiple polylines
please include 3d convex polygons as well
Is there a way of creating a polyline DXF, stopping the polyline and creating a new polyline (in the same DXF)? I am wanting to trace multiple loops together on one file but without line crossing over my completed loops, same question
Is there a way of creating a polyline DXF, stopping the polyline and creating a new polyline (in the same DXF)? I am wanting to trace multiple loops together on one file but without line crossing over my completed loops
This is great. But how do I change the polyline width? Please let me know.
Hi! Excellent, but I would also need arc entities. Would it be possible to add?
or even circles would work
Is there a way to generate arcs using the library?
Great, useful library.
Note that dxf_polyline operates on a columnwise basis, so it will give independent points if given row vectors.
Hello, can I use Draft sight to visualize the files?
Nice work! Thank you for your share.
I want to know whether there is a parameter for colors transparency of dxf_polymesh ?
I used KLayout application to view the created DXF files. Unfortunately, there is a line from a single point connecting to all the polygons in the created DXF. I was not expecting this. Looked very awkward, please consider Example 4 and Example 5 for this test, please.
very excellent~ it would be better if the dxflib can add circle iitem
Hi, I made a Menger's sponge cube on MATLAB and want to export it to Autocad. Could you please help me?
hello, I am using the dxf_polyline command after drawing a spiral, the result on matlab is goob but the dxf coverter only saves lines so the result on autocad is just lines connected in the shape of a spiral. however I need a curved spiral. please help if you know how to convert to dxf without changing the spiral :)
Hi I am not able to read dxf generated by this dxflib as it uses 'POLYLINE' instead of 'AcdbPolyline' or 'LWPOLYLINE', please help me to read those dxf files generated by dxflib.
Very Excellent library, it helped me a lot.
But still not give same output as i see in imwrite image in matlab.
dxf polyline graph is 90 degree clockwise rotated, pls help.
This website is excellent. It saves me a lot of time. A really convenient way to generate dxf files that could be read by CAD and other softwares.
I am really appreciated.
This library is awesome, I have only one complaint. The colors in example 9 don't come through in Rhino. The colors in example 8 do. Any recommendations you can make for colors to make their way across in example 9 to Rhino would be extremely helpful.
Great library. I have a simple optimization for large files:
Matlab flushes the buffer for every fprintf statement by default. Since you use a lot of small fprintf statements it can be useful to disable auto-flushing. You can easily do this by using fopen with 'W' instead of 'w'.
For me this speeded it up by a factor 20. But I had quite a large overhead since I was writing to a network folder.
Excellent Library, very good work. Do you by any chance have anything that would be able to create a table in DXF format?
I've tried to do it, but I keep running into a wall! And how do you distinguish between what is optional to have in a DXF and what is not? Maybe you could point me towards some proper literature :)?
Thanks for this library, its very useful. Is there a way to ensure that the polylines are closed? For example (and I don't know if this is the best way to do this) I am writing a series of rotated rectangles based on center points and angles. I use the polyline function but all the resulting rectangles are open. Thanks for the help!
Great library, very useful! Thanks
Nice toolbox, but I have a problem. I want to make dxf-files for laser cutting and used dxf_polyline to write X-Y curves/shapes (setting Z to 0) to a dxf-file. When I open the file in 2D with AutoCAD or DraftSight the curves only show up as points (no lines). How can I make 2D lines/curves?
Hi Lars, thank you for your feedback. The website has been updated to: http://www.induced.pl/projects/dxflib
The link to the tutorial (http://www.sejsmologia-gornicza.pl/?page_id=235) does not work. Is there an alternative link?
Very useful, thanks a lot!
Varun AV, The circles will be incorporated in the next version of DXFLib.
The library is useful, however, it could include circles too.
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!