平台:Windows11
库:Open CASCADE Technology 7.5.0
语言:C++
问题描述:我现在有2组TopoDS_Face,现在假设其中一组是A,作为被剪裁那一组面片,另外一组B,是作为剪裁的工具面片。现在要用B去剪裁A。A的特点在于A中所有的面片是可以拼接成一个完整的TopoDS_Face的,或者说A最初是从一个TopoDS_Face经过切割得到的碎片。B组中的各个面片可以分成若干组,每一组面片最初是从一个完整的TopoDS_Face经过切割而来的,因此有多少组面片,就是从多少个不同的TopoDS_Face切割而来的。现在的做法是用B中的每一组面片去切割A,切割完以后就会得到更多的碎片,再次用B中的另外一组面片在这些碎片的基础上切割,依次类推,直到B每组面片都被使用完毕,就得到到了A被完全切割的碎片。但是我发现在A被B切割的过程的中间结果有可能是错误的,而一旦发生错误,此后就再也不可能是正确的了。所谓的错误就是某一次切割的碎片无法拼接成原来的TopoDS_Face,剪裁的工具使用的是BOPAlgo_Builder。
所以请问你遇到过吗?知道这是为什么吗?你是怎么解决的?
相似问题