STL文件如何进行分割处理

STL文件如何进行分割处理,第1张

VTK即可....

VTK有函数 如vtkClipPolyData()

一个实例:

代码如下

[cpp]view plaincopyprint?

vtkClipPolyData* clipper = vtkClipPolyData::New()

clipper-<SetInput(src) //src为被切割物体的 vtkPolyData* 类型

clipper-<SetClipFunction(plane) //族皮plane为切割面,为vtkPlane* 类型

clipper-<Update() //更新生成切割物体。

//复肢吵制切割后物体的vtkPolyData*

vtkPolyData* result = vtkPolyData::New()

result-<DeepCopy(clipper-<GetOutput())

[cpp]view plaincopyprint?

vtkClipPolyData* clipper = vtkClipPolyData::New()

clipper-<SetInput(src) //src为被切割物体的 vtkPolyData* 类型

clipper-<SetClipFunction(plane) //plane为切割面,为vtkPlane* 类型

clipper-<Update() //更新生成切割物体。

//复制切割后物体的vtkPolyData*

vtkPolyData* result = vtkPolyData::New()

result-<DeepCopy(clipper-<GetOutput())

</p>

3、简单记录

主要介绍VTK中的类 vtkClipPolyData的功能。其父类为vtkPolyDataAlgorithm类。

类 vtkClipPolyData的功能是裁剪模型

(1)被裁剪模型通过SetInput()函数设置。

(2)裁剪的方法有2中。SetClipFunction()设置裁剪的方法,或者通过SetValue (double)函数设置裁剪值。(这里我只应用了第一种SetClipFunction()设置裁剪的方法)

(3)SetClipFunction()设置裁剪的方法,需要设置vtkImplicitFunction类的子类。在上面的代码中我设置兆饥差了vtkPlane类。用一个平面裁剪。

(4)VTK中已有的vtkImplicitFunction类的子类,如下图:

这些类都可以用来做裁剪的输入。

利用vtkBox做剪切的代码:

[cpp]view plaincopyprint?

double bounds[6], center[3]

src-<GetCenter(center)

src-<GetBounds(bounds)

vtkBox* box = vtkBox::New()

box-<SetBounds(center[0],bounds[1],center[1]-20,bounds[3],center[2],bounds[5])

vtkClipPolyData* clipper = vtkClipPolyData::New()

clipper-<SetInput(src)

clipper-<SetClipFunction(box)

//clipper-<SetInsideOut(-1)

clipper-<Update()

vtkPolyData* res = vtkPolyData::New()

res-<DeepCopy(clipper-<GetOutput())

[cpp]view plaincopyprint?

double bounds[6], center[3]

src-<GetCenter(center)

src-<GetBounds(bounds)

vtkBox* box = vtkBox::New()

box-<SetBounds(center[0],bounds[1],center[1]-20,bounds[3],center[2],bounds[5])

vtkClipPolyData* clipper = vtkClipPolyData::New()

clipper-<SetInput(src)

clipper-<SetClipFunction(box)

//clipper-<SetInsideOut(-1)

clipper-<Update()

vtkPolyData* res = vtkPolyData::New()

res-<DeepCopy(clipper-<GetOutput())

</p>

(6)注意:

特殊情况是裁剪完的模型就原模型的全部,或者裁剪完的模型里面没有任何点、线、面。

后一种情况下,clipper-<GetOutput()-<GetNumberOfCells()==0,需要特殊处理。

参考:

http://blog.csdn.net/jean7155/article/details/7556260

stl图档不能分割,stl图档看着是零件,其实不是3D零件,它只是抄出来的一个三铅颤维图片而已,你还需要使用逆向造型设计一步步地绘制其3D才行。ug是一个交互式CAD/CAM系统。ug是Siemensplms软件公司生产坦激羡的产品工让拍程解决方案,为用户提供产品设计的数字建模。

c4d导出stl缩放意思是文件中定义的物体可以自由缩放。STL文件通过将物体表面分割成小的三角形来描述物体,每个小的三角形都由三个顶点坐标以及一个名为法线用来表示方向的数量定义,顶点坐标与法线各包含三个数字,因此每个三角形由12个数字组成。

c4d导出stl缩放特点

将每个三搜稿角形的12个数字衡漏配以文本格式保存便构成了文本格式的STL文件,其中的粗体字是STL的关键字他们必须是小写的,和绝大多数我们熟悉的文本文件不同,STL文件中的缩进必须用空格定义而不能使用Tab。

启动软件添加一个基础物体,比如一个圆柱假设咐指现在需要把圆柱放大,当前圆柱是在选中的状态下,按住T键在英文状态下或是在大写的状态下,鼠标在空白位置按住再拖拽,在拖的时候一边看物体的放大效果,物体是等比放大的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12287465.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存