Dermot
12-18-2008, 01:17 AM
In one of my current projects I need to export drawings created with Lua-GD (http://www.indigorose.com/forums/showthread.php?t=25782) to AutoCAD. It turns out it is easier than I thought. You can create a DXF file which can then be imported to AutCAD. You can read the specs for DXF file format here http://www.autodesk.com/techpubs/autocad/acad2000/dxf/index.htm
Here is an example from that site that I converted to Lua.
function WriteDXFPolygon(dxfFile, iSides, dblX, dblY, dblLen)
str = "0\r\n"
str = str.."SECTION\r\n"
str = str.."2\r\n"
str = str.."ENTITIES\r\n"
dblPI = Math.Atan(1) * 4
dblA1 = (2 * dblPI) / iSides
dblA = dblPI / 2
for i = 1, iSides do
str = str.."0\r\n"
str = str.."LINE\r\n"
str = str.."8\r\n"
str = str.."Polygon\r\n"
str = str.."10\r\n"
str = str..dblX.."\r\n"
str = str.."20\r\n"
str = str..dblY.."\r\n"
dblNX = dblLen * Math.Cos(dblA) + dblX
dblNY = dblLen * Math.Sin(dblA) + dblY
str = str.."11\r\n"
str = str..dblNX.."\r\n"
str = str.."21\r\n"
str = str..dblNY.."\r\n"
dblX = dblNX
dblY = dblNY
dblA = dblA + dblA1
end
str = str.."0\r\n"
str = str.."ENDSEC\r\n"
str = str.."0\r\n"
str = str.."EOF"
TextFile.WriteFromString(dxfFile, str, false)
end
Use like this.
WriteDXFPolygon(_DesktopFolder.."\\Polygon.dxf", 10, 10, 10, 200)
Here is an example from that site that I converted to Lua.
function WriteDXFPolygon(dxfFile, iSides, dblX, dblY, dblLen)
str = "0\r\n"
str = str.."SECTION\r\n"
str = str.."2\r\n"
str = str.."ENTITIES\r\n"
dblPI = Math.Atan(1) * 4
dblA1 = (2 * dblPI) / iSides
dblA = dblPI / 2
for i = 1, iSides do
str = str.."0\r\n"
str = str.."LINE\r\n"
str = str.."8\r\n"
str = str.."Polygon\r\n"
str = str.."10\r\n"
str = str..dblX.."\r\n"
str = str.."20\r\n"
str = str..dblY.."\r\n"
dblNX = dblLen * Math.Cos(dblA) + dblX
dblNY = dblLen * Math.Sin(dblA) + dblY
str = str.."11\r\n"
str = str..dblNX.."\r\n"
str = str.."21\r\n"
str = str..dblNY.."\r\n"
dblX = dblNX
dblY = dblNY
dblA = dblA + dblA1
end
str = str.."0\r\n"
str = str.."ENDSEC\r\n"
str = str.."0\r\n"
str = str.."EOF"
TextFile.WriteFromString(dxfFile, str, false)
end
Use like this.
WriteDXFPolygon(_DesktopFolder.."\\Polygon.dxf", 10, 10, 10, 200)