cad step格式转换为threejs支持的json格式

step格式的文件在网页端3D显示的时候是不能直接加载的。因为threejs没有提供step格式的加载器。所以如果需要在网页端显示step模型就需要先将step格式的文件进行转换。有的技术方案是通过先转化为stl然后转换为别的gltf,这样比较麻烦,而且多次转换不知道精度会不会丢失太多。

这里我通过搜索各种资料找到了一种转换的方法。直接将stp转换为json格式。关键代码如下:

def step2json(inputFile, outputFile):  # STEP Files
    step_reader = STEPControl_Reader()
    status = step_reader.ReadFile(inputFile)

    if status == IFSelect_RetDone:  # check status
        failsonly = False
        step_reader.PrintCheckLoad(failsonly, IFSelect_ItemsByEntity)
        step_reader.PrintCheckTransfer(failsonly, IFSelect_ItemsByEntity)

        step_reader.TransferRoot(1)
        _nbs = step_reader.NbShapes()
        _shape = step_reader.Shape(1)
        _tess = ShapeTesselator(_shape)
        _tess.Compute(compute_edges=False, mesh_quality=50)

        with open(outputFile, "w") as text_file:
            json = _tess.ExportShapeToThreejsJSONString(inputFile)
            json = json.replace("\\", "/")
            text_file.write(json)
    else:
        raise Exception("Error: can't read file - Method: _load_STEP_file")

输入是stp格式的文件,输出为three.js支持的json文件

转自 cad step格式转换为threejs支持的json格式

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值