背景:做配载仪时需要批量的将IGS模型转换成STL模型

用到的方法:方法1:使用3D-tool或者其他工具进行转换

方法2:通过python使用FreeCAD的接口批量转换(当时师弟写的程序)

FreeCAD

FreeCAD是一个基于OpenCASCADE的开源CAD/CAE工具,FreeCAD 是多平台的,可用于 Windows、Mac OS X+ 以及 Linux。https://www.freecadweb.org/​www.freecadweb.orghttps://www.freecadweb.org/​www.freecadweb.org

测试平台:windows

步骤:安装FreeCAD

查看FreeCAD对应python版本号(x86 还是 x64),然后下载安装对应python版本

写python程序

1.安装FreeCAD比较简单,直接官网下载exe即可

2.查看python版本

安装完成后,默认不显示python脚本

通过View->Panels->python console打开python控制台

python控制台还可以学习freeCAD 的pythonAPI

比如我通过菜单打开了一个igs文件,然后导出stl 控制台中给出了相关的提示

3. 安装python

4. 写python脚本

使用VS code打开igs2stl.py文件,编辑代码

引入FreeCAD 包

import FreeCAD

运行,如果成功的话显示版本号:

5.完善Python脚本,打开igs文件所在的文件夹然后开始批量转换STL

代码如下:

# -*- coding: utf-8 -*-

#precision=input("Please input precision. default:40 :\n")

precision=40

if not precision:

precision=40

else:

precision=float(precision)

import sys

#sys.path.append('\\win32')

import FreeCAD,Part,os

import Mesh

import tkinter as tk

from tkinter import filedialog

folder=filedialog.askdirectory()

# first we check for filenames that contain .stp, .step, .igs or .iges

cadfiles = []

for f in os.listdir(folder):

for ext in [".stp", ".step", ".igs", ".iges"]:

if f.lower().endswith(ext):

cadfiles.append((folder+os.sep+f,ext))

break

if not cadfiles:

print ("No step or iges files found in the given folder")

sys.exit()

for f,ext in cadfiles:

#f=f.decode('gbk')

s = Part.read(f)

stl = f.replace(ext,'.stl')

stl=stl.encode('utf-8')

m=Mesh.Mesh()

m.addFacets(s.tessellate(precision))

mat=FreeCAD.Matrix()

mat.scale(1/1000.0,1/1000.0,1/1000.0)

m.transform(mat)

m.write(stl)

print("finished")

运行结果:

6.善后工作

转换我们用到Mesh和Part模块,所以可以删除一些不必要的模块及DLL,不然整个包特别打

拷贝整个安装目录到自己的文件夹,一遍删除dll一遍运行,如果出错就后退

清理前大概1.65G 删除无关模块后,大概100M

以Mod文件夹为例

删除后就剩2个文件夹

7.现在程序可以独立运行了,不再依赖于FreeCAD的安装包,可以用python做任何想做的事,然后发布成exe。深藏功与名

注意:python版本要和FreeCAD的对应

如果转换后的STL模型有问题,可以用Netfabb软件进行修复,支持批量修复及导出,导出后文件名会统一添加(repaired),写个python脚本批量重命名即可,见参考目录

使用FreeCAD批量处理省力多了,感谢小师弟,以前我都是一个个保存,经常100+文件 眼泪 TT

本文是以IGS转STL模型为例,同样支持其他类型,大家可以按需修改,如下图所示

参考:

开源免费freeCAD:https://wiki.freecadweb.org/Feature_list​wiki.freecadweb.org

免费的3d-tool viewer:3D und 2D CAD Viewer und 3D-Konverter​www.3d-tool.de

其他的一些转换软件:The Best STL File Converter Tools | All3DP​all3dp.com

python脚本批量重命名:刘春雷:python 批量重命名​zhuanlan.zhihu.com

assimp批量转模型_IGS模型批量转换成STL模型相关推荐

  1. 将训练好的pytorch模型的pth文件转换成onnx模型(亲测成功)

    将训练好的pytorch模型的pth文件转换成onnx模型(亲测成功) 模型转换 声明:本文原创,未经许可严禁转载,原文地址https://blog.csdn.net/hutao1030813002/ ...

  2. er图转换成关系模型的例题_有关数据库系统的练习题 E-R图的关系画图转换,,急需 谢谢了...

    展开全部 你看62616964757a686964616fe58685e5aeb931333332643239下下边的例子,你的问题就可以解决了. 设某商业集团数据库中有三个实体集.一是"商 ...

  3. Unity将内部模型转换成stl格式模型,用于3D打印机进行打印

    本章我们一起来看下怎样将unity中的fbx模型转成stl模型并且保存到本地. 原理:stl模型都是由三角面组成的,只要我们了解stl文件的格式,就能够轻松的将fbx模型转换成stl. 1.先获取到f ...

  4. sketchup 图片转模型_不用CAD描图迅速将图片转换成su模型

    原标题:不用CAD描图迅速将图片转换成su模型 首先上图,说明一下大概的流程: 1.[ps阶段]首先选取一副木雕图片,背景为单色最佳.如果不是单色,则需要ps一下,将背景转换成白色,这个过程使用魔术棒 ...

  5. maya多边形建模怎样做曲面_maya将曲面模型转换成多边形模型

    在maya中,曲面建模跟多边形建模各有各的优势,但现在建模一般是以多边形建模为主.很多模型用曲面做很简单,用多边形做就会显得有点复杂,那么如果能够将曲面模型转,换成多边形模型就好了. 1.双击打开ma ...

  6. 将传统的照片在Autodesk® 123D™ Catch中转换成3D模型

    将传统的照片在Autodesk® 123D™ Catch中转换成3D模型 http://www.douban.com/group/Catch123D/ Autodesk 123D Catch 如何进行 ...

  7. darknet cpp weights模型转换成ONNX模型

    整理不易,如果觉得有用,记得点赞收藏和分享哦 1. 下载转换需要的代码文件 在下面地址下载代码文件 https://gitee.com/liangjiaxi2019/pytorch-YOLOv4 2. ...

  8. python 文件夹中的文件批量处理 高通道tif图片转换成jpg格式

    在数据集的制作中,往往涉及到 文件夹中文件的批量处理操作,而首要的任务便是将获得的数据进行重命名以方便批量读取,随后再进行操作. 一.文件批量重命名 文件夹的批量处理操作关键在于用os库的os.lis ...

  9. 【地平线开发板 模型转换】将pytorch生成的onnx模型转换成.bin模型

    文章目录 1 获取onnx模型 2 启动docker容器 3 onnx模型检查 3.1 为什么要检查? 3.2 如何操作 4 图像数据预处理 4.1 一些问题的思考 4.2 图片挑选与放置 4.2 使 ...

最新文章

  1. java中 resource_Java从Resource中读取文本文件
  2. php程序员面试题(持续补充,偏中级面试题)
  3. [痛并快乐着 国外开发者总结欧美游戏坑钱指南] 讀後感想
  4. Python练习题:批量删除多个文件夹内的相同文件
  5. 华为擎云w510_苹果 iPhone 12 全家桶谍照曝光;华为台式机擎云W510现身官网
  6. springmvc基础学习3---注解简单理解
  7. Oracle 修改SYS、system用户密码
  8. SQL Cookbook—数字、日期
  9. 无法安装 计算机缺失,还原安装程序Windows缺失的文件 - Windows Client | Microsoft Docs...
  10. 老码农:我为什么建议程序员尽早进入大厂?
  11. DrawIndexedPrimitiveUP这个函数
  12. JavaScript的eval()函数(1)
  13. 广东理工学院计算机考试大纲,2020年广东理工学院专插本专业课考试大纲汇总...
  14. 动态分配算法_【原创连载】算法素颜(第4篇):空间复杂度你真的懂了吗?
  15. 互联网寒冬下,为什么就你被裁了?
  16. 【51单片机】 蜂鸣器发声程序
  17. 苹果wifi网速慢怎么办_无线WiFi满格网速却很慢怎么办 如何提升网速【详解】
  18. python3 append的用法_python中append的用法
  19. 【去广告插件推荐】AdBlock让浏览器清净
  20. 利用Visual Studio(C++)实现简易计算器(二)

热门文章

  1. ajax——请求消息(request)和响应消息(response)
  2. python电影系统管理-Python 爬取电影网站的信息【如有重复请管理删帖】
  3. css设定元素左对齐,左对齐标签 - 右对齐选择元素(CSS)
  4. python怎么左对齐_python中如何用ljust()实现字符串左对齐?
  5. r语言中残差与回归值的残差图_R语言基础-数据分析及常见数据分析方法
  6. MAYA简单操作讲解1--入门干货
  7. 耳鸣头晕是怎么回事?
  8. 手淘抓包、 x-sign的签名算法和api接口
  9. 职场社交赛道上,脉脉靠什么弯道超车
  10. 企业微信登录二维码样式修改