请问各位老师
楼梯在做动态旋转的过程中 为何在illustration状态下不能实现动态显示?在线框模式下却可以?
ice_video_20191107-145930.rar
请提供一下您的测试代码及测试文件。
: DgnPrimitiveTool
能否把相关的代码都发上来我帮您分析一下,只有这一个函数看不出有什么问题
不好意思 前段时间 公司在忙没有及时回您消息 这是旋转的代码,请您指正
class DynamicRotate : DgnPrimitiveTool // DgnPrimitiveTool, DgnElementSetTool { static double UorPerMas = Session.Instance.GetActiveDgnModel().GetModelInfo().UorPerMaster; Bentley.Interop.MicroStationDGN.Application app = Bentley.MstnPlatformNET.InteropServices.Utilities.ComApp; public DynamicRotate() : base(0, 0) { } static BIM.Element oldElement = null; static DPoint3d dPoint3d = new DPoint3d(); public static void InstallNewTool(BIM.Element _oldElement,DPoint3d _dPoint3d) { dPoint3d = _dPoint3d; oldElement = _oldElement; DynamicRotate dynamicRotate = new DynamicRotate(); dynamicRotate.InstallTool(); } protected override void OnPostInstall() { AccuSnap.SnapEnabled = true; BeginDynamics(); AccuDraw.Origin = dPoint3d; base.OnPostInstall(); } BIM.Element newElement = null; protected override bool OnDataButton(DgnButtonEvent ev) { app.ActiveModelReference.ReplaceElement(oldElement, newElement); EndDynamics(); ExitTool(); return true; } protected override void OnDynamicFrame(DgnButtonEvent ev) { AccuDraw.Active = true; double angleZ; newElement = app.ActiveModelReference.GetLastValidGraphicalElement(); newElement.RotateAboutZ(app.Point3dFromXYZ(dPoint3d.X / UorPerMas, dPoint3d.Y / UorPerMas, dPoint3d.Z / UorPerMas), -angleZ); newElement.Redraw(MsdDrawingMode.Temporary); //��̬��ʾ out angleX, out angleY, } protected override void OnCleanup() { } protected override bool OnResetButton(DgnButtonEvent ev) { OnRestartTool(); return true; } protected override void OnRestartTool() { EndDynamics(); ExitTool(); } protected override void ExitTool() { base.ExitTool(); } }
OnDynamicFrame函数里边不要用文件里边的元素去重绘,新建一个元素,如果想对dgn文件里边已经存在的元素重绘,就拷贝出来一份重绘。
郭工 除了DgnPrimitiveTool 接口 还有其他的接口方法可以实现这样动态吗?