平面曲线偏移(如下图)的mdl函数我知道的有mdlElmdscr_copyParallel
我想请教的是,平面曲线的偏移,在CE版里有没只涉及到几何的方法吗? 比如只用CurveVector实现,而不用涉及到element
1.如果在XY平面,CurveVector提供了CloneOffsetCurvesXY方法;
2.建议目前还是使用mdlElmdscr_copyParallel,获取结果后再转换成CurveVector.
---------------------------------------------------------------
中国市政工程西北设计研究院有限公司武汉分院
Answer Verified By: 湖北-阿崇
谢谢,现在确实 也是这么搞的,测试CloneOffsetCurvesXY有问题
我写代码测试了一下,还是可以的呀。请参考如下代码:
void createOffset(WCharCP unparsed) { ElementHandle eh(2662L, ACTIVEMODEL); CurveVectorPtr pCurve1 = ICurvePathQuery::ElementToCurveVector(eh); CurveOffsetOptions offsetOption(10000); CurveVectorPtr pCurve2 = pCurve1->CloneOffsetCurvesXY(offsetOption); EditElementHandle eeh; DraftingElementSchema::ToElement(eeh, *pCurve2, nullptr, true, *ACTIVEMODEL); eeh.AddToModel(); }
曲线偏移.dgn
我测试的意思是可以运行,但是偏移的结果,曲线稍微复杂 点的就有问题的,如文件中"曲线偏移"的mdel所示,可能SDK函数存在小BUG
我看您的这个图是三维的模型,而且视图的方向也不平行于顶视图,这个CloneOffsetCurvesXY我的理解应该是仅对平行于顶视图的曲线起作用(XY表示只能处理XY不考虑Z)。您测试一下是否属于这种情况?