stl文件怎么用Java读取_将STEP文件转换为STL
我正在寻找有关如何解决以下问题的建议:
将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相关推荐
- Java读取Level-1行情dbf文件极致优化(2)
最近架构一个项目,实现行情的接入和分发,需要达到极致的低时延特性,这对于证券系统是非常重要的.接入的行情源是可以配置,既可以是Level-1,也可以是Level-2或其他第三方的源.虽然Level-1 ...
- java读取各类型的文件
java读取各类型的文件 用到的几个包 bcmail-jdk14-132.jar/bcprov-jdk14-132.jar/checkstyle-all-4.2.jar/FontBox-0.1.0-d ...
- Java读取UTF-8格式txt文件第一行出现乱码及解决;Java读带有BOM的UTF-8文件乱码原因及解决方法(转载)...
原文地址:http://blog.csdn.net/jackpk/article/details/5702964/ Java读取UTF-8的txt文件第一行出现乱码"?"及解决 t ...
- java读取并修改xml文件
java读取并修改xml文件 java如何读取xml并且修改xml文件呢?代码如下: //复制模板xnl File file = new File(xmlSavePath + "/mb.xm ...
- 读取gps观测数据o文件的matlab编程,读取GPS观测数据O文件的matlab编程.doc
读取GPS观测数据O文件的matlab编程 读取GPS观测数据O文件的matlab编程 function HeadO=ReadObsHead [fname,fpath]=uigetfile('*.*O ...
- java逐行读取文件内容执行sql语句_[11/100] 文件和异常
最近学习效率很低,居然还开始熬夜玩耍了.好好干啊,技术差就要多付出啊. 操作模式 选择操作模式 读写文本文件 1.读取 import timedef main():f = Nonetry:# 一次性读 ...
- java读取resouces目录下文件
resources中存放一些个资源文件,比如properties文件等,编译好会自动将这里边的文件复制到target/classes里去.获取资源文件的方法说明: XXX.class.getResou ...
- char 转换 二进制 java_使用Java读取二进制文件并将其转换为char文件 - java
我正在尝试读取可以在here中找到的shortcod文件二进制文件. 我用来打印此文件内容的方法: public void read3RegularGraphs( String pathFile ) ...
- java 读取hdfs上的文件内容
用java读取hdfs的文件 直接撸代码: package com.nature.base.util;import com.nature.component.process.vo.DebugDataR ...
最新文章
- 读史以明志,把握好自己的明天
- 屏幕滚动控件ScrollView的使用
- python filter
- java it_Java中的Iterator的用法
- tomcat下运行cxf异常 java.lang.ClassCastException
- 这些21个不太好搜索其含义的特殊符号你都知道吗?
- nginx和tomcat整合
- nested exception is java.lang.UnsatisfiedLinkError: no jacob-1.19-x64 in java.library.path
- IBM\浪潮\Dell\HP服务器raid(磁盘阵列)配置
- delphi接口带上请求头是什么意思_Gin框架中使用JWT进行接口验证
- R语言安装包的几种方法
- 关于 jspx 文件的一些说明
- 51单片机入门-1-最小系统基础概念
- android 动态表情包,动态表情包下载免费
- html5 地图插件,推荐:7款个性化jQuery/HTML5地图插件
- python 微信群发_用python写一个微信群发工具(基于itchat库)
- 【angular】@Directive
- 面试指南-----项目自我介绍
- matplotlib 合并cmap,创建cmap,创建listedcolormap
- 如何阅读Smalltalk程序