/// <summary> /// Aula 10 /// </summary> private void RotateElements() { var acd = NavisworksApp.ActiveDocument; double a = 0; double inc = 3; if (LbTurnRigth.BackColor.Equals(FocusedColor)) { a = inc * (Math.PI / 180.0); } if (LbTurnLeft.BackColor.Equals(FocusedColor)) { a = -inc * (Math.PI / 180.0); } if (a == 0) { return; } try { var se = acd.CurrentSelection.SelectedItems; foreach (var item in se) { var loc = item.BoundingBox().Center; var mb = new Vector3D(loc.X, loc.Y, loc.Z); var mo = new Vector3D(-loc.X, -loc.Y, -loc.Z); var transVec = Transform3D.CreateTranslation(mo); acd.Models.OverridePermanentTransform(new List <ModelItem> { item }, transVec, true); //Rotate var rt = new Rotation3D(new UnitVector3D(0, 0, 1), a); var transRotate = new Transform3D(rt, mb); acd.Models.OverridePermanentTransform(new List <ModelItem> { item }, transRotate, true); this.lbCenterLogEixos.Text = string.Format("X = {0}\n Y = {1}\n Z = {2}", item.BoundingBox().Center.X.ToString(), item.BoundingBox().Center.Y.ToString(), item.BoundingBox().Center.Z.ToString()); } } catch (Exception) { // } }
/// <summary> /// Aula 10 /// </summary> private void MoveElements() { var acd = NavisworksApp.ActiveDocument; var x = 0; var y = 0; var z = 0; var inc = 100; if (LbEixoXPlus.BackColor.Equals(FocusedColor)) { x = inc; } if (LbEixoXLess.BackColor.Equals(FocusedColor)) { x = -inc; } if (LbEixoYPlus.BackColor.Equals(FocusedColor)) { y = inc; } if (LbEixoYLess.BackColor.Equals(FocusedColor)) { y = -inc; } if (LbEixoZPlus.BackColor.Equals(FocusedColor)) { z = inc; } if (LbEixoZLess.BackColor.Equals(FocusedColor)) { z = -inc; } if (x == 0 && y == 0 && z == 0) { return; } try { var se = acd.CurrentSelection.SelectedItems; foreach (var item in se) { var im = item.AncestorsAndSelf.First(i => i.Model != null); var sc = UnitConversion.ScaleFactor(Units.Millimeters, im.Model.Units); var mv = new Vector3D(x * sc, y * sc, z * sc); var transVec = Transform3D.CreateTranslation(mv); acd.Models.OverridePermanentTransform(new List <ModelItem> { item }, transVec, true); this.lbCenterLogEixos.Text = string.Format("X = {0}\n Y = {1}\n Z = {2}", item.BoundingBox().Center.X.ToString(), item.BoundingBox().Center.Y.ToString(), item.BoundingBox().Center.Z.ToString()); } } catch (Exception) { // } }