旋转多重引线文字以匹配UCS
我有一个例行程序,用文本插入多媒体阅读器我希望能够旋转mleader上的文本以匹配UCS
到目前为止,我已尝试设置多行文字对象、.TransformBy和.SetDogLeg的旋转,但没有结果
MLeader标签=新的MLeader()
MText:MText=new-MText()
/..
标签。多行文字=多行文字
/..
//将多行文字旋转到UCS
Vector3d xdir=(Point3d)应用程序。GetSystemVariable(“UCSXDIR”)-Point3d.Origin
双ucsRotation=Vector3d.XAxis。GetAngleTo(xdir,Vector3d.ZAxis);//这似乎返回了正确的角度。
//这些都不起作用:(
多行文字。旋转=UCS旋转;//没有
mText.TransformBy(矩阵3d.Rotation(ucsRotation,Vector3d.ZAxis,textPoint));//娜达
int-idx=label.AddLeaderLine(leaderPoint)
标签。SetDogleg(idx,xdir);//没有
实现这一点的最佳方法是什么
**** Hidden Message ***** 只是在这里猜测,但也许你需要旋转MLeader实体而不仅仅是MText?
我以为.SetDogLeg方法可能会做到这一点。
mleader的领导部分像我想要的那样对齐,我只需要旋转文本,以便在旋转视图中可读(UCS设置为视图)
手动完成时,我在属性对话框中设置了引线文本部分的旋转,所以我的猜测是多文本是需要调整的。因此,.旋转和 .转换方法。 创建后在特性中更改它是有意义的,但在创建时,“实体”本身(多重引线)将放置在当前ucs中,因此它的所有几何图形也将放置在该ucs中,包括多行文字。因此,如果您在创建MLeader对象时设置了它的UCS,那么它所拥有的所有内容都应该遵循。
另一个选项可能是通过例程中的sysvars设置/返回UCS。 设置标签。多行文字=多行文字之后的多行文字。rotation = UCS rotation
So
MLeader label = new MLeader()
MText MText = new MText()
MText。Rotation = ucsRotation标签。多行文字=多行文字标签。多行文字旋转不按预期工作
@SamR你是Autodesk论坛的SRSDS吗? 那是我。我以为我是在帮你把我的解决方法发布到这个话题上
吉尔在AutoDesk论坛上给了我正确的解决方案:
打开Mleader实例
获取Mleader。多行文字实例
根据需要设置此多行文字旋转属性
重置多行文字阅读器。多行文字到更新多行文字
MText:yourMText=yourMLeader.MText
页:
[1]