沿B样条曲线放置共享单元时,想要设置横向偏移,应该如何设置变换矩阵呢,试了好多都是按照全局坐标系去偏移的,并没有沿着曲线法线方向偏移;我已经通过EvaluatePointTangent方法得到了曲线在某点处的切矢量,但是不知道如何与Transform3d结合使用,得到法向量并设置偏移值。
For i = 0 To 10 oBCurve.EvaluatePointTangent tangent, u(i) matrix = Matrix3dFromRotationBetweenVectors(Point3dFromXYZ(0, 1, 0), tangent) Set oCell = CreateSharedCellElement2(CellName, pts(i), Point3dFromXYZ(1, 1, 1), True, matrix) ' 创建用于移动元素的变换 trnsMove = Transform3dFromXYZ(-5, 0, 0) oCell.Transform trnsMove ActiveModelReference.AddElement oCell Next
下图所示的这个接口函数可以获取到您想要的偏移向量,可以结合这个帖子中的解释去理解:https://communities.bentley.com/communities/other_communities/chinafirst/f/microstation-projectwise/170688/msce-c/490887#490887
MS学习资源:
MicroStation Wednesday视频分享
深入探讨MicroStation DGN基本概念系列
一步步学习MicroStation CE Addin开发
一步步学习MicroStation CE MDL开发
好的,谢谢郭老师,我试试看
郭老师,我看了您说的这个函数,它是C#里头的,VBA中有什么函数可以实现这个功能呢
截图中的接口就是COM那套接口,VBA中可以调用的。
好的,谢谢郭老师