public static void TestCommand() { var acDoc = App.DocumentManager.MdiActiveDocument; var acCurDb = acDoc.Database; var acEd = acDoc.Editor; var sset = Input.Objects("Выберите объекты для копирования"); if(Input.StatusBad) return; var basept = Input.Point("Базовая точка"); if(Input.StatusBad) return; var pt1 = Input.Point("Первая точка"); if(Input.StatusBad) return; var pt2 = Input.Point("Вторая точка"); if(Input.StatusBad) return; var str = Input.Text("Строка"); if(Input.StatusBad) return; try { var sp = new StepsParser(str); Point3d offset; Matrix3d M; foreach(var pt in sp.Points(pt1,pt2)) { using(var th = new TransactionHelper()) { var to_clone = th.ReadObjects(sset); offset = pt.Subtract(basept.GetAsVector()); if (offset == Point3d.Origin) continue;//исключаем копирование в ту же точку M = Matrix3d.Displacement(offset.GetAsVector()); foreach (Entity ent in to_clone) { Entity ent_clone = ent.GetTransformedCopy(M); th.WriteObject(ent_clone); } } } } catch(Exception ex) { Messaging.Tweet(ex); } }
public void ParseSteps() { StepsParser.TestCommand(); }