Exemple #1
0
		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);
			}
		}
Exemple #2
0
 public void ParseSteps()
 {
     StepsParser.TestCommand();
 }