标签: stl-format

在Three.js中加载STL文件的首选方法是什么

我正在编写一个旨在用作机械设计和仿真工作流程一部分的应用程序,我们希望能够使用Three.js来加载和可视化Solidworks中设计的部件,这些部件可以作为STL导出(文字或二进制).

**我完全认识到可以使用类似Meshlab的东西转换为OBJ或其他格式,但这似乎是一个不必要的额外步骤,会阻碍工作流程.**

看起来Three.js有很好的Collada,OBJ,UTF-8,VTK和JSON加载解决方案,但是没有干净的STL支持示例.我看到过去曾经使用过的东西,例如 https://github.com/tbuser/thingiview.js/blob/master/javascripts/thingiloader.js ,由于许可证我想避免,和 https://github.com/tbuser/three.js/blob/master/utils/stl_geometry.js 似乎没有完全集成.

我错过了什么吗?

javascript loader three.js stl-format

8
推荐指数
1
解决办法
2万
查看次数

在threejs中将对象加载为Geometry而不是BufferGeometry

我正在尝试将.stl文件加载到three.js中.一切正常,我使用此代码将模型作为BufferGeometry:

    var loader = new THREE.STLLoader();
    loader.addEventListener( 'load', function ( event )
    {

        var material = new THREE.MeshLambertMaterial({
            color: 0x888888,
            side: THREE.DoubleSide
        });

        var bufferGeometry = event.content;
        var mesh = new THREE.Mesh(geometry, material);
        scene.add( mesh );
    });
    loader.load( 'model.stl' );
Run Code Online (Sandbox Code Playgroud)

为了更容易进一步操作模型,我希望将几何图形设置为常规THREE.Geometry而不是THREE.BufferGeometry.是否有可能以.stl某种方式加载,因此我可以将其作为a THREE.Geometry或者是否可以转换THREE.BufferGeometryTHREE.Geometry?或者这可能是使用.obj文件还是其他?

javascript 3d three.js stl-format

8
推荐指数
1
解决办法
7616
查看次数

STL 文件转换为可读文本文件

我现在正在研究 3D 模型(stl 文件等)以及它是如何从头开始制作的。我需要使用什么软件才能查看 stl 文件中的内容,如下所示:

solid dart
    facet normal 0.00000E+000 0.00000E+000 -1.00000E+000
        outer loop
            vertex 3.10000E+001 4.15500E+001 1.00000E+000
            vertex 3.10000E+001 1.00000E+001 1.00000E+000
            vertex 1.00000E+000 2.50000E-001 1.00000E+000
        endloop
    endfacet
endsolid dart
Run Code Online (Sandbox Code Playgroud)

我一直在寻找这类软件,但到目前为止,还没有找到。

3d stl-format

8
推荐指数
1
解决办法
1万
查看次数

THREE.js中的BufferGeometry的STL导出器

我有许多BufferGeometries,它们包含一个场景,并且它们的网格已经被转移到不同的位置.我想知道是否有一种方法可以从包含BufferGeometries的网格导出这个场景到STL文件.非常感谢你.

javascript three.js stl-format stl-fileformat buffer-geometry

6
推荐指数
1
解决办法
644
查看次数

通过血管树的STL模型进行Python-VTK 3D样条回归

我需要创建维管树模型的样条线或折线表示(请参见下文)。

整个血管树

该模型采用STL格式,因此我具有所有顶点的xyz坐标。这些线应该穿过血管网格的中心,因此我认为最好的方法是通过顶点云进行样条回归另外,如果我可以在给定的点(例如,折线的坐标)上获得容器的半径,那将是很好的。

显示为网格的树的一部分

我浏览了这个论坛和VTK网站(假设他们对这种事情有一个简单的实现),但是到目前为止,我还没有找到可以使用的东西。有谁知道可以做到这一点的Python模块或VTK类(我会从Python调用它)?我在此找到的python模块全部用于2D数据。

非常感谢!

编辑:我遇到了一个名为VMTK的库,该库几乎专门处理血管分割,并具有所谓的“ 中心线计算 ”功能。但是,它们通常要求在其末端“切割”船只并定义“源点”。但是,在我的模型中,可以看到端点被“封顶”,这使事情变得更加复杂。如果找到解决方案,请在此处发布

python graphics regression vtk stl-format

5
推荐指数
1
解决办法
1230
查看次数

Meshlab:如何关闭“统一重复顶点”提示?

每次我用 Meshlab 打开一个 STL 文件时,都会弹出一个窗口并询问我是否要“统一重复顶点”。我总是必须按“确定”按钮,这有点烦人。我怎么能告诉 Meshlab 它应该总是在不问的情况下统一它们?

谢谢!

meshlab stl-format

5
推荐指数
1
解决办法
871
查看次数

了解 Qt3D 创建的网格

我创建了一个像这样的 Qt3D 网格:

Qt3DCore::QEntity *newEntity = new Qt3DCore::QEntity();
Qt3DExtras::QConeMesh *mesh =new Qt3DExtras::QConeMesh();
mesh->setTopRadius(0.2);
mesh->setBottomRadius(1.0);
mesh->setLength(2.0);
for(int i = 0; i < mesh->geometry()->attributes().size(); ++i) {
    mesh->geometry()->attributes().at(i)->buffer()->setSyncData(true); // To have access to data
}
newEntity->addComponent(mesh);
Run Code Online (Sandbox Code Playgroud)

创建的网格如下所示:

锥网 锥形网格,另一种观点


在代码的后面,我尝试以STL 二进制格式导出上述网。为此,我提取了实体的几何变换组件:

Qt3DCore::QComponent *compoMesh = nullptr; // place holder for mesh geometry of entity
Qt3DCore::QComponent *compoTran = nullptr; // place holder for mesh transformation of entity
QVector<Qt3DCore::QComponent *> compos = newEntity->components();
for(int i = 0; i < compos.size(); …
Run Code Online (Sandbox Code Playgroud)

qt mesh qt3d stl-format

5
推荐指数
1
解决办法
1564
查看次数

为什么 STL 文件需要法向量?

STL 是最流行的 3D 打印 3D 模型文件格式。它记录构成 3D 形状的三角形表面。

我阅读了 STL 文件格式的规范。这是一种相当简单的格式。每个三角形由12个浮点数表示。前 3 个定义法向量,接下来的 9 个定义三个顶点。但这里有一个问题。三个顶点足以定义一个三角形。法向量可以通过两个向量(每个向量从一个顶点指向另一个顶点)的叉积来计算。

我知道法线向量在渲染中很有用,并且通过包含法线向量,程序不必在每次加载相同模型时都计算法线向量。但我想知道如果创建软件故意包含错误的法向量会发生什么?渲染软件会产生错误的结果吗?

另一方面,三个顶点说明了三角形的一切。包含法线向量将导致信息中存在逻辑冲突,并使文件大小增加 33%。如果需要,可以通过渲染软件在合理的时间内计算法向量。那么为什么格式应该包含它呢?该格式于 1987 年创建,用于立体光刻 3D 打印。当时计算法向量对于计算机来说成本很高吗?

我在一个帖子中读到,Autodesk Meshmixer 会根据顶点忽略法线向量和图形三角形。提供错误的法线向量似乎不会改变结果。 为什么立体光刻 (.STL) 文件要求每个三角形都有一个法向量?

stl-format

5
推荐指数
1
解决办法
4392
查看次数

写入二进制文件

我正在尝试在 Fortran 90 中编写 STL 二进制文件。该文件具有以下格式

HEADER:80 字节 ASCII 标头 - TITLE

4 字节无符号长整型,NO。刻面数量

每个方面的格式:

法向量,3 个浮点值,每个值 4 字节;

顶点 1 XYZ 坐标,3 个浮点值,每个值 4 字节;

顶点 2 XYZ 坐标,3 个浮点值,每个值 4 字节;

顶点 3 个 XYZ 坐标,3 个浮点值,每个值 4 字节;

2 个字节的无符号整数,应该为零;

我正在尝试创建一个未格式化的文件来写入相关信息,但在定义正确的记录长度时遇到问题。假设我有N个facet,我使用以下命令打开并写入信息

open(unit = 1, status = 'replace', iostat = ioerror, format = 'unformatted', access = 'direct', recl = 84 + N * 50, file = 'c:\temp\test.stl')
Run Code Online (Sandbox Code Playgroud)

我可以发出第一个写入语句来写出标头信息,然后发出第二个写入语句(在 do 循环内)来写出方面信息吗?

如果是这样,由于我有不同记录长度的标头和方面信息,因此每个写入语句需要的记录号是多少。

write(1,rec=?), *header information*
do,i=1,N,1
   write(1,rec=?), *facet information* …
Run Code Online (Sandbox Code Playgroud)

fortran binaryfiles stl-format

4
推荐指数
1
解决办法
4541
查看次数

pcl :: io没有成员savePolygonFile

我不知道pcl 1.6中的函数savePolygonFileSTL在哪里.我必须包含哪个文件?

这里说它是它的一部分

#include <pcl/pcl_config.h>
#include <boost/cstdint.hpp>
#include <cstdlib>
#include <iostream>
#include <stdarg.h>
#include <stdio.h>
#include <math.h>
Run Code Online (Sandbox Code Playgroud)

无论如何VS2010没有找到它,并且还有手动搜索我没有在所有pcl 1.6文件夹中找到该功能的定义.savePolygonFile既不存在也不相似.这怎么可能?还有一些我不知道的事情?请帮我.

非常感谢

visual-studio-2010 polygons point-clouds point-cloud-library stl-format

2
推荐指数
1
解决办法
1146
查看次数

导入 stl 脚本搅拌器

我想要做的是使用脚本(在 python 中)将 .stl 模型导入到搅拌机中。我尝试使用下面的命令,但似乎无法让它工作。问题是我不知道命令的“文件路径”、“文件”和“目录”部分的格式。

bpy.ops.import_mesh.stl(filepath="", filter_glob="*.stl", files=None, directory="")
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我如何让这个工作; 这就是我要问的。

bpy.ops.import_mesh.stl(filepath="C://Users//Dom//Documents//DomCorp.//mymodel.stl", filter_glob="*.stl", files=None, directory="")
Run Code Online (Sandbox Code Playgroud)

当我写这篇文章时,我得到了这个错误:

TypeError: Converting py args to operator properties:  IMPORT_MESH_OT_stl.files expected a each sequence member to be a dict for an RNA collection, not str
Run Code Online (Sandbox Code Playgroud)

由于我对编程相当陌生,我不知道这意味着什么,所以有人可以帮助和解释它并可能提出解决方案吗?:)

python import blender stl-format

2
推荐指数
1
解决办法
5940
查看次数

将 STEP 文件类型转换为 STL

我想使用 Python 将 STEP 文件转换为 STL 文件格式。我在网上看过,看起来最好的选择是使用 FreeCAD 或 OpenCascade (OCC)。但是,我是初学者,不知道从哪里开始。我在网上做了一些搜索,发现了这一点(将 STEP 转换为 OBJ 文件的代码)。

是否有来自 FreeCAD(基于 OCC)的 Python 示例将 STEP 文件转换为 STL?我应该从哪里开始?

step freecad stl-format

2
推荐指数
1
解决办法
4176
查看次数

三个js平滑着色显得平坦

我正在加载.stl文件,应用MeshStandardMaterial而不触及flatShading属性,因为默认情况下它是false

在此输入图像描述

结果对我来说看起来很平淡。如果我尝试设置flatShading: true结果是相同的。

我已经尝试了我能想到的一切,但已经没有想法了 - 欢迎任何建议,谢谢。

geometry.computeVertexNormals();
geometry.computeBoundingBox();
geometry.computeBoundingSphere();
geometry.normalizeNormals();
Run Code Online (Sandbox Code Playgroud)

javascript three.js stl-format

2
推荐指数
1
解决办法
1104
查看次数