python中使用dxfgrabber,解析dxf文件信息生成obj文件

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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值