public void Move(LArrow la, Vector3d vec) { la.Position += vec; la.SaveExtendedData(); }
public static void DoIt() { Document doc = Application.DocumentManager.MdiActiveDocument; Editor ed = doc.Editor; PromptDoubleOptions optDouble = new PromptDoubleOptions("\n请输入箭头长度:"); optDouble.AllowNone = true; optDouble.AllowZero = false; optDouble.DefaultValue = CurrArrowLength; optDouble.UseDefaultValue = true; PromptDoubleResult resDouble = ed.GetDouble(optDouble); if (resDouble.Status == PromptStatus.OK) { //改变箭头长度设定值 CurrArrowLength = resDouble.Value; PromptPointResult resStartPoint = ed.GetPoint("\n请输入起点:"); if (resStartPoint.Status == PromptStatus.OK) { PromptPointOptions optEndPoint = new PromptPointOptions("\n请输入终点:"); optEndPoint.BasePoint = resStartPoint.Value; optEndPoint.UseBasePoint = true; PromptPointResult resEndPoint = ed.GetPoint(optEndPoint); if (resEndPoint.Status == PromptStatus.OK) { Point3d startpnt = resStartPoint.Value; Point3d endpnt = resEndPoint.Value; Database db = doc.Database; using (Transaction tr = db.TransactionManager.StartTransaction()) { BlockTableRecord btr = (BlockTableRecord)tr.GetObject( db.CurrentSpaceId, OpenMode.ForWrite, false); Line line = new Line(startpnt, endpnt); btr.AppendEntity(line); tr.AddNewlyCreatedDBObject(line, true); RegAppTable rat = (RegAppTable)tr.GetObject( db.RegAppTableId, OpenMode.ForRead, false); if (!rat.Has(RegAppName)) { rat.UpgradeOpen(); RegAppTableRecord regapp = new RegAppTableRecord(); regapp.Name = RegAppName; rat.Add(regapp); tr.AddNewlyCreatedDBObject(regapp, true); } Point3d midpnt = (startpnt + endpnt.GetAsVector()) / 2; LArrow la = new LArrow(line); //附着当前设定的箭头长度 la.ArrowLength = CurrArrowLength; la.Scale = 0.5; la.SaveExtendedData(); tr.Commit(); } } } } }