大家好。
所以我在一个Face's Loops中循环,然后在它的边缘中循环。一切都很好,直到我得到一个用于nativecurve的EllipticalArc。
我基本上是在跟踪边缘以将其转换为PolyLine。我知道Gile已经编写了一些将区域转换为PolyLines的类,但在我发现之前就已经存在这段代码了。我希望我可以修复(我认为是)一行代码,然后我就可以重新启动并运行,而不是重写我的东西来使用Gile的代码。
正如我所说,这在Acad2016中存在并有效,但在2018年不起作用。
这是一个快速片段...我怀疑错误的代码是“新椭圆”行,我希望有人能指出我做错了什么。
Dim F As BRep.Face = --some face--
For Each L As BRep.BoundaryLoop In F.Loops
Dim bClosed As Boolean = False
Dim bErr As Boolean = False
Dim iEdgeCount As Integer = 0
Do Until bClosed Or bErr
Dim E As BRep.Edge = L.Edges(iEdgeCount)
Dim C As Curve3d = E.Curve
Dim extC As ExternalCurve3d = C
Dim nativeCurve As Curve3d = extC.NativeCurve
If extC.IsEllipticalArc Then
Dim ellArc3d As EllipticalArc3d = nativeCurve
Dim VecToUse As Vector3d = ellArc3d.Normal
Dim ellActual As New Ellipse(ellArc3d.Center, VecToUse, ellArc3d.MajorAxis * ellArc3d.MajorRadius, ellArc3d.MinorRadius / ellArc3d.MajorRadius, ellArc3d.StartAngle, ellArc3d.EndAngle)
End If
iEdgeCount += 1
Loop
Next
EllArc3d看起来和我预期的一样,这意味着StartPoint和EndPoint在它们应该在的地方:请参阅EllArc3d.jpg.
但是当我使用相同的“New Ellipse”命令时,StartPoint和EndPoint是不同的:请参阅ellActual.jpg.
完整的面部显示在AntiSwirlFace.jpg.我已经对我特别有问题的椭圆曲线进行了BOLDED。该几何中还有其他椭圆曲线,它们都在做类似的事情。
0ynkjybnkp2.JPG
akasonhs5dl.JPG
rskgixik40j.JPG
本帖以下内容被隐藏保护;需要你回复后,才能看到!
游客,如果您要查看本帖隐藏内容请
回复