BRep:将EllipticalArc3d转换为Ellipse在2018年无效,但在2016年有效
大家好。所以我在一个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。该几何中还有其他椭圆曲线,它们都在做类似的事情。
**** Hidden Message ***** 知道了...
Dim ellArc3d As EllipticalArc3d = nativeCurve
Dim c2 As Curve = Curve.CreateFromGeCurve(ellArc3d)
Dim ellActual As Ellipse = TryCast(c2, Ellipse)
很高兴我能帮忙,欢迎来到沼泽地! 嗨,这是由于EllipticalArc3d StartAngle和EnAngle属性对应于Ellipse StartParam和EndParam。这不是AutoCAD 2018特有的,它在以前的版本中是相同的。我们可以从它的StartParam和EndParam计算Ellipse StartAngle和EnAngle,Tan(Angle)/Tan(Parameter)=MinorRadius/MajorRadiusEllipticalArc3d ea=(EllipticalArc3d)curve.NativeCurve;。
双比例=ea.MinorRadius/ea.MajorRadius;。
双start Angle=Math.Atan2(Math.Sin(ea.StartAngle)*比率,Math.Cos(ea.StartAngle));。
双endAngle=Math.Atan2(Math.Sin(ea.EndAngle)*比率,Math.Cos(ea.EndAngle));。
椭圆el=新的椭圆(ea.Center,ea.Normal,ea.MajorAxis*ea.MajorRadius,比率, start Angle, endAngle));。
这就是你!...
我一直认为ActivistInvestor是Tony T的克隆人。 谢谢杰夫和吉尔!
Gile,永远记住答案背后的信息!非常感谢!
原来是你!...
我一直认为ActivistInvestor是Tony T的克隆。
我也这么认为。深度克隆。
原来是你!...
我一直认为ActivistInvestor是Tony T的克隆...就像托尼经历了一次濒死体验,变成了一个好人
页:
[1]