我正在寻找有关如何解决以下问题的建议:

将STEP(ISO 10303,AP 203/214)转换为三角形网格,即转换为STL

显然,STEP支持一些平滑曲线的各种精确表示,例如NURBS,因此两者不是同构的,因此没有“平移”到另一个 .

到目前为止我所做的研究表明,要走的路是使用某种CAD软件,我做了 - 我用 PythonOCC 编写了以下简单的脚本:

def read_step(filename):

from OCC.STEPControl import STEPControl_Reader

from OCC.IFSelect import IFSelect_RetDone, IFSelect_ItemsByEntity

step_reader = STEPControl_Reader()

status = step_reader.ReadFile(filename)

if status == IFSelect_RetDone:

failsonly = False

step_reader.PrintCheckLoad(failsonly, IFSelect_ItemsByEntity)

step_reader.PrintCheckTransfer(failsonly, IFSelect_ItemsByEntity)

ok = step_reader.TransferRoot(1)

_nbs = step_reader.NbShapes()

return step_reader.Shape(1)

else:

raise ValueError('Cannot read the file')

def write_stl(shape, filename, def=0.1):

from OCC.StlAPI import StlAPI_Writer

import os

directory = os.path.split(__name__)[0]

stl_output_dir = os.path.abspath(directory)

assert os.path.isdir(stl_output_dir)

stl_file = os.path.join(stl_output_dir, filename)

stl_writer = StlAPI_Writer()

stl_writer.SetASCIIMode(False)

from OCC.BRepMesh import BRepMesh_IncrementalMesh

mesh = BRepMesh_IncrementalMesh(shape, def)

mesh.Perform()

assert mesh.IsDone()

stl_writer.Write(shape, stl_file)

assert os.path.isfile(stl_file)

...

这些功能能够完成这项工作 . 但是,结果并不总是非常令人满意,例如:

原始STEP文件 - 76K

结果STL文件,def = 0.9 - 16K

结果STL文件,def = 0.1 - 116K

显然,没有理由相信通用转换器是可以实现的,但我在这里要求更多的洞察力 . 我希望有关资源的提示可能有助于我解决这个问题 .

我想尝试实现以下结果:

希望它能够为尽可能多的模型工作

文件上没有太大的重量

我将不胜感激任何关于在哪里寻找的提示和建议!

stl文件怎么用Java读取_将STEP文件转换为STL相关推荐

  1. Java读取Level-1行情dbf文件极致优化(2)

    最近架构一个项目,实现行情的接入和分发,需要达到极致的低时延特性,这对于证券系统是非常重要的.接入的行情源是可以配置,既可以是Level-1,也可以是Level-2或其他第三方的源.虽然Level-1 ...

  2. java读取各类型的文件

    java读取各类型的文件 用到的几个包 bcmail-jdk14-132.jar/bcprov-jdk14-132.jar/checkstyle-all-4.2.jar/FontBox-0.1.0-d ...

  3. Java读取UTF-8格式txt文件第一行出现乱码及解决;Java读带有BOM的UTF-8文件乱码原因及解决方法(转载)...

    原文地址:http://blog.csdn.net/jackpk/article/details/5702964/ Java读取UTF-8的txt文件第一行出现乱码"?"及解决 t ...

  4. java读取并修改xml文件

    java读取并修改xml文件 java如何读取xml并且修改xml文件呢?代码如下: //复制模板xnl File file = new File(xmlSavePath + "/mb.xm ...

  5. 读取gps观测数据o文件的matlab编程,读取GPS观测数据O文件的matlab编程.doc

    读取GPS观测数据O文件的matlab编程 读取GPS观测数据O文件的matlab编程 function HeadO=ReadObsHead [fname,fpath]=uigetfile('*.*O ...

  6. java逐行读取文件内容执行sql语句_[11/100] 文件和异常

    最近学习效率很低,居然还开始熬夜玩耍了.好好干啊,技术差就要多付出啊. 操作模式 选择操作模式 读写文本文件 1.读取 import timedef main():f = Nonetry:# 一次性读 ...

  7. java读取resouces目录下文件

    resources中存放一些个资源文件,比如properties文件等,编译好会自动将这里边的文件复制到target/classes里去.获取资源文件的方法说明: XXX.class.getResou ...

  8. char 转换 二进制 java_使用Java读取二进制文件并将其转换为char文件 - java

    我正在尝试读取可以在here中找到的shortcod文件二进制文件. 我用来打印此文件内容的方法: public void read3RegularGraphs( String pathFile ) ...

  9. java 读取hdfs上的文件内容

    用java读取hdfs的文件 直接撸代码: package com.nature.base.util;import com.nature.component.process.vo.DebugDataR ...

最新文章

  1. 读史以明志,把握好自己的明天
  2. 屏幕滚动控件ScrollView的使用
  3. python filter
  4. java it_Java中的Iterator的用法
  5. tomcat下运行cxf异常 java.lang.ClassCastException
  6. 这些21个不太好搜索其含义的特殊符号你都知道吗?
  7. nginx和tomcat整合
  8. nested exception is java.lang.UnsatisfiedLinkError: no jacob-1.19-x64 in java.library.path
  9. IBM\浪潮\Dell\HP服务器raid(磁盘阵列)配置
  10. delphi接口带上请求头是什么意思_Gin框架中使用JWT进行接口验证
  11. R语言安装包的几种方法
  12. 关于 jspx 文件的一些说明
  13. 51单片机入门-1-最小系统基础概念
  14. android 动态表情包,动态表情包下载免费
  15. html5 地图插件,推荐:7款个性化jQuery/HTML5地图插件
  16. python 微信群发_用python写一个微信群发工具(基于itchat库)
  17. 【angular】@Directive
  18. 面试指南-----项目自我介绍
  19. matplotlib 合并cmap,创建cmap,创建listedcolormap
  20. 如何阅读Smalltalk程序

热门文章

  1. 安卓开发之样式和主题的使用与夜间/白天模式的动态转换
  2. matlab回车键,在Matlab中启动.exe文件后,以编程方式按一下回车键
  3. [数据可视化] 图表设计原则
  4. 自己总结的wireshark抓包技巧
  5. Chrome打开浏览器弹出网页、浏览器被劫持解决方法
  6. 如何计算每月还多少房贷
  7. echart 水滴图水波颜色设置
  8. mysql中一次字符集和排序规则引起的sql查询报错
  9. Android:从assets资源目录下安装apk
  10. 您需要Administrators提供的权限才能对此文件进行更改