三维复杂线串Complex Chain前进方向向左偏移5m,得到偏移曲线起终点有Z坐标,其余点Z为0,偏移错误,请问什么原因?
如果向右偏移没有此问题。
代码:
LinearElement edgeLineEle = LinearElement.CreateFromCurveVector(cv, true); edgeLineEle = edgeLineEle.GetOffsetElement(-5* mUor, 0.01); Element pathEle = DraftingElementSchema.ToElement(Session.Instance.GetActiveDgnModel(), edgeLineEle.GetCurveVector(), null);
您这是ORD API吧?如果是的话,请在帖子标题前加注[ORD C#]。注意发帖前仔细阅读我们的置顶的【发帖指南】,因为有多位不同专业的工程师在为大家提供服务。我们会按帖子标志找自己负责的问题类别。
【另外】请提供含有这条复杂链的DGN文件。
好的,谢谢符老师建议。是ORD API。
请提供您的DGN文件,发我邮箱xiaoqi.zhang@bentley.com
long myid = 810; ElementId elId = new ElementId(ref myid); Bentley.DgnPlatformNET.Elements.Element myel = Session.Instance.GetActiveDgnModel().FindElementById(elId); double mUor = UorPerMeter(); CurvePathQuery cpq = CurvePathQuery.GetAsCurvePathQuery(myel); CurveVector cv = cpq.GetCurveVector(); LinearElement edgeLineEle1 = LinearElement.CreateFromCurveVector(cv, true); edgeLineEle1 = edgeLineEle1.GetOffsetElement(-20 * mUor, 0.01); LinearElement edgeLineEle2 = LinearElement.CreateFromCurveVector(cv, true); edgeLineEle2 = edgeLineEle2.GetOffsetElement(20 * mUor, 0.01); Bentley.DgnPlatformNET.Elements.Element pathEle = DraftingElementSchema.ToElement(Session.Instance.GetActiveDgnModel(), edgeLineEle1.GetCurveVector(), null); Bentley.DgnPlatformNET.Elements.Element pathEle2 = DraftingElementSchema.ToElement(Session.Instance.GetActiveDgnModel(), edgeLineEle2.GetCurveVector(), null); pathEle.AddToModel(); pathEle2.AddToModel();
另外,您用界面上的去偏移,右边正常,左边也是跟代码情况一样的。复合线偏移是这样的,等比缩放,这个是正常的。
补充一下:
弧线偏移的时候圆心是固定的,当然弧长会变化,导致前后的缓和曲线也会变化。