Using libDXF library

The use of CAD applications is enormous and so has been the need for standardization. An initiative made by Autodesk back in 1982 to provide a representation of the content in the drawing resulted in the creation of DXF (Drawing Exchange Format).

libDXF is a library to read and write DXF files. The library is used to parse the content stored in DXF files to create drawings when opened in a CAD software. Reading and writing of these files via this library needs an understanding of the structure of DXF.

I worked on a task to create a DXF drawing from a simple input file given by the user. The input file looks like:

wall(l=100,h=30,bx=10,by=10)
wall(l=10,h=50,bx=0,by=0)
flange(r=20,cx=50,cy=100)

The next step I performed is splitting of this input file via the separators: "(", ")", ",", "=".

Saving everything in an output file which looks like:
wall
l
100
h
30
bx
10
by
10
for one wall and similarly for the other entities.

Further in the functions defining the creation of entities, only the numeric numbers are needed as arguments. Creating a regular expression to extract the numbers from the output file and saving the numbers in a vector, the entities are saved to a DXF file. Figure below shows a drawing I created via this procedure:

Screenshot from 2016-02-22 10:27:17

The complete work can be referred at: https://github.com/kamalpreetgrewal/textToDrawing

txt to Drawing in LibreCAD

Recently, I have been working with DXF library. My aim has been to take a text file as input from the user which has details of different elements of a building. Currently I am focusing on the wall entity. On parsing the input file, it yields a DXF file as output which can be opened up in softwares that support the DXF format.

To achieve this, I have gone through things beyond the use of DXF library itself. The correct use of regular expressions has been providing the expected results so far. Not much going into the implementation for this post, I have an input text file with details of two walls written as follows:

wall(l=100,h=30,cx=10,cy=10)
wall(l=10,h=50,cx=0,cy=0)

l depicts the length of the wall. h is height of the wall while cx and cy are coordinates of bottom left corner of the wall.

Following up the format of writing a DXF file including its header, the entities section followed up by the footer, on opening the DXF file, I achieved the drawing similar to the one below:

Screenshot from 2015-09-02 21:33:42