就是下图这种:
搜一下以前的帖子看看,以前帖子有讨论过。
我搜过了,最接近的只有下面这些帖子:communities.bentley.com/.../c-ord(这是问螺旋体如何拐角的,没有贴任何代码)communities.bentley.com/.../thread(这帖子提到了mdlKISolid_sweepBodyWire函数,但它是C++的,我没找到C#的函数)communities.bentley.com/.../msce-c-mdlbspline_helix-axis1-axis2(这篇帖子也提到一个C++函数:mdlBspline_helix,但是我也没找到对应的C#的函数)
我用helix关键字在对象浏览器里只有搜到一个Bentley.Interop.MicroStationDGN.BsplineCurve.Helix()的函数,这个是Interop的,本身是个接口,本身不能实例化,也没找到实现它的类,所以不知道怎么用。
巴燕 史 said:Bentley.Interop.MicroStationDGN.BsplineCurve.Helix()
用下图所示的这个Class:
MS学习资源:
MicroStation Wednesday视频分享
深入探讨MicroStation DGN基本概念系列
一步步学习MicroStation CE Addin开发
一步步学习MicroStation CE MDL开发
我用如下代码创建了一个Helix类型的BsplineCurve:
public static void TestHelix() { Bentley.Interop.MicroStationDGN.Point3d startPt = new Bentley.Interop.MicroStationDGN.Point3d(); startPt.X = 0; startPt.Y = 0; startPt.Z = 0; Bentley.Interop.MicroStationDGN.Point3d endPt = new Bentley.Interop.MicroStationDGN.Point3d(); endPt.X = 0; endPt.Y = 0; endPt.Z = 20000; Bentley.Interop.MicroStationDGN.Segment3d axis = new Bentley.Interop.MicroStationDGN.Segment3d(); axis.StartPoint = startPt; axis.EndPoint = endPt; Bentley.Interop.MicroStationDGN.BsplineCurve bsplineCurve = new Bentley.Interop.MicroStationDGN.BsplineCurveClass(); bsplineCurve.Helix(5000, 5000, startPt, axis, 1000); }
我怎么把它添加到模型空间中呢?这里面涉及的类都是interop空间下的,跟net是两个系统啊
Bentley.Interop.MicroStationDGN.Application.CreateBsplineCurveElement1