1、安装插件dxfgrabber
pip install dxfgrabber
2、进行格式转换,生成obj文件
这个只是示意程序,只生成模型的轮廓,不包含材质
#! /usr/bin/env python
# coding: utf-8
import dxfgrabber
def convertPolylines(polylines, vertexes, faces, index):
resultVertexes = vertexes
resultFaces = faces
resultIndex = index
for item in (polylines):
for point in (item.points):
resultVertexes += 'v ' + str(point[0]) + ' ' + str(point[2]) + ' ' + str(
point[1]) + ' ' + '\n'
resultFaces = resultFaces + 'usemtl color' + str(item.color) + '\n'
resultFaces = resultFaces + 'f ' + str(resultIndex + 1) + ' ' + str(2 + resultIndex) + ' ' + str(
3 + resultIndex) + ' ' + str(4 + resultIndex) + '\n'
resultIndex += 4
return (resultVertexes, resultFaces, resultIndex)
def main():
dxf = dxfgrabber.readfile('./eplusout.dxf')
polylines = [entity for entity in dxf.entities if entity.dxftype == '3DFACE']
vertexes = ''
faces = ''
index = 0
result = convertPolylines(polylines, vertexes, faces, index)
vertexes = result[0]
faces = result[1]
file = open("./eplusout.obj", 'w+')
file.write(vertexes)
file.write(faces)
file.close()
if __name__ == "__main__":
main()