- public class ClassAdı
-
{
- [CommandMethod("DOOR")]
- public static void Door()
-
{
- double bölge = 0, derece = 0; string block_name = "DOOR";
- var doc = Application.DocumentManager.MdiActiveDocument;
- var db = doc.Database;
- var ed = doc.Editor;
- var ppo = new PromptPointOptions("\nKonum seç: ");
- var ppr = ed.GetPoint(ppo);
- if (ppr.Status == PromptStatus.OK)
-
{
- Point3d pt_start = ppr.Value;
- ppo.Message = "\nEnd Point: ";
- ppo.BasePoint = pt_start;
- ppo.UseBasePoint = true;
- ppr = ed.GetPoint(ppo);
- Point3d pt_end = ppr.Value;
- derece = Vector3d.XAxis.GetAngleTo(pt_start.GetVectorTo(pt_end), Vector3d.ZAxis) *
- 180 / Math.PI;
- bölge = (derece / 45); bölge = bölge - (bölge % 1);
- if (ppr.Status == PromptStatus.OK)
-
{
- using (var tr = db.TransactionManager.StartTransaction())
-
{
- var cSp = (BlockTableRecord)tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite);
- var bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead);
- var br = new BlockReference(pt_start, bt[block_name]);
- Bölgeler >>> 0 dan baslıyor. Blogun kendisi 0 bölgesinde oldugu için 0. kosulu yazmadık.
- if (bölge == 1)
-
{
- Point3d pt_m1 = new Point3d(pt_start.X - 1, pt_start.Y - 1, 0);
- Point3d pt_m2 = new Point3d(pt_start.X + 1, pt_start.Y + 1, 0);
- Line3d acLine3d = new Line3d(pt_m1, pt_m2);
- br.TransformBy(Matrix3d.Mirroring(acLine3d));
-
}
- if (bölge == 2)
- br.Rotation = (Math.PI / 2); }
- if (bölge == 3)
-
{
- br.Rotation = (Math.PI / 2);
- Point3d pt_m1 = new Point3d(pt_start.X + 1, pt_start.Y - 1, 0);
- Point3d pt_m2 = new Point3d(pt_start.X - 1, pt_start.Y + 1, 0);
- Line3d acLine3d = new Line3d(pt_m1, pt_m2);
- br.TransformBy(Matrix3d.Mirroring(acLine3d));
-
}
- if (bölge == 4)tag-name
- br.Rotation = (Math.PI); Application.SetSystemVariable("MIRRTEXT",1); }
- if (bölge == 5)
-
{
- br.Rotation = (Math.PI);
- Point3d pt_m1 = new Point3d(pt_start.X - 1, pt_start.Y - 1, 0);
- Point3d pt_m2 = new Point3d(pt_start.X + 1, pt_start.Y + 1, 0);
- Line3d acLine3d = new Line3d(pt_m1, pt_m2);
- br.TransformBy(Matrix3d.Mirroring(acLine3d));
-
}
- if (bölge == 6)
- br.Rotation = (Math.PI * 3 / 2); }
- if (bölge == 7)
-
{
- br.Rotation = (Math.PI * 3 / 2);
- Point3d pt_m1 = new Point3d(pt_start.X + 1, pt_start.Y - 1, 0);
- Point3d pt_m2 = new Point3d(pt_start.X - 1, pt_start.Y + 1, 0);
- Line3d acLine3d = new Line3d(pt_m1, pt_m2);
- br.TransformBy(Matrix3d.Mirroring(acLine3d));
-
}
- cSp.AppendEntity(br);
- tr.AddNewlyCreatedDBObject(br, true);
- tr.Commit();
-
}
-
}
-
}
-
}
Asked
Active
Viewed 63 times
0

user20668900
- 1
- 1
-
Welcome to StackOverflow! Your question needs some work so the community can better help you. Take a look at [how to ask a good question](https://stackoverflow.com/help/how-to-ask) and give it another try. – Chris Albert Dec 03 '22 at 02:00