您好,我在ABD V8i版本中,使用C#创建了BsplineCurveElement曲线,但是在二维图纸中使用.length方法和三维图纸中取到的值不一样,在二维图纸中取到的长度比三维图纸中会小,这个应该怎么解决?谢谢!
二维的话没有高程信息,确实会比三维下边长度短一些。请确认您创建的曲线在z坐标上是否有变化。
z值是有变化的,如果z值发生变化,但是又不得不在2D中去取长度,有什么办法吗?
在MDL中有一个函数mdlElmdscr_convertTo2D可将三维元素转换为二维元素,但在VBA/COM中好像没有找到对应的(也是我找的方法不对),所以你在V8i C#中也没有对应的方法,可以考虑通过PInvoke调用MDL这个函数。
付工,这个方法我试了下,不是我想要我效果。是这样的,我在2维图纸里面创建了一个b样条曲线,取出来的长度是1000,然后我在3维图纸里面创建一个一摸一样b样条曲线,取出来的长度是1100,那么我有什么方法能让2维图纸里面创建的这个b样条曲线,取出来的长度变成1100呢?因为在2维图纸创建的b样条曲线属于平面图形,所以我使用mdlElmdscr_convertTo3D后,元素还是平面图形,取出来的长度还是1000。
您应该知道您的2D元素对应哪个3D元素吧,在2D Model下获取长度时,找到3D Model下对应的那个元素去获取长度。