Я бы также предложил использовать OGR, но работает только с dwg / dxf версии 2000 или более ранней; вы можете использовать Teigha (http://www.opendesign.com/) для преобразования файлов в версию 2000, а затем вы можете использовать OGR.
Я сделал тонны преобразований из dwg в shp, и я обычно конвертировал dwg в версию 2000 dwg с помощью Teigha, а затем преобразовал этот dwg-200 в файл формы; как только шейп-файл, вы увидите, что этот файл содержит все слои, чтобы разделить каждый слой на другой файл формы. Я использую эту команду
ogr2ogr new_map_from_layer_X.shp - где "LAYER = 'X'" shape_converted_from_DWG_lines.shp