0
  1. public class ClassAdı
  2. {
    
  3. [CommandMethod("DOOR")]
  4. public static void Door()
  5.     {
    
  6. double bölge = 0, derece = 0; string block_name = "DOOR";
  7. var doc = Application.DocumentManager.MdiActiveDocument;
  8. var db = doc.Database;
  9. var ed = doc.Editor;
  10. var ppo = new PromptPointOptions("\nKonum seç: ");
  11. var ppr = ed.GetPoint(ppo);
  12. if (ppr.Status == PromptStatus.OK)
  13.         {
    
  14. Point3d pt_start = ppr.Value;
  15. ppo.Message = "\nEnd Point: ";
  16. ppo.BasePoint = pt_start;
  17. ppo.UseBasePoint = true;
  18. ppr = ed.GetPoint(ppo);
  19. Point3d pt_end = ppr.Value;
  20. derece = Vector3d.XAxis.GetAngleTo(pt_start.GetVectorTo(pt_end), Vector3d.ZAxis) *
  21. 180 / Math.PI;
  22. bölge = (derece / 45); bölge = bölge - (bölge % 1);
  23. if (ppr.Status == PromptStatus.OK)
  24.             {
    
  25. using (var tr = db.TransactionManager.StartTransaction())
  26.                 {
    
  27. var cSp = (BlockTableRecord)tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite);
  28. var bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead);
  29. var br = new BlockReference(pt_start, bt[block_name]);
  30. Bölgeler >>> 0 dan baslıyor. Blogun kendisi 0 bölgesinde oldugu için 0. kosulu yazmadık.
  31. if (bölge == 1)
  32.                     {
    
  33. Point3d pt_m1 = new Point3d(pt_start.X - 1, pt_start.Y - 1, 0);
  34. Point3d pt_m2 = new Point3d(pt_start.X + 1, pt_start.Y + 1, 0);
  35. Line3d acLine3d = new Line3d(pt_m1, pt_m2);
  36. br.TransformBy(Matrix3d.Mirroring(acLine3d));
  37.                     }
    
  38. if (bölge == 2)
  39. br.Rotation = (Math.PI / 2); }
  40. if (bölge == 3)
  41.                     {
    
  42. br.Rotation = (Math.PI / 2);
  43. Point3d pt_m1 = new Point3d(pt_start.X + 1, pt_start.Y - 1, 0);
  44. Point3d pt_m2 = new Point3d(pt_start.X - 1, pt_start.Y + 1, 0);
  45. Line3d acLine3d = new Line3d(pt_m1, pt_m2);
  46. br.TransformBy(Matrix3d.Mirroring(acLine3d));
  47.                     }
    
  48. if (bölge == 4)
  49. br.Rotation = (Math.PI); Application.SetSystemVariable("MIRRTEXT",1); }
  50. if (bölge == 5)
  51.                     {
    
  52. br.Rotation = (Math.PI);
  53. Point3d pt_m1 = new Point3d(pt_start.X - 1, pt_start.Y - 1, 0);
  54. Point3d pt_m2 = new Point3d(pt_start.X + 1, pt_start.Y + 1, 0);
  55. Line3d acLine3d = new Line3d(pt_m1, pt_m2);
  56. br.TransformBy(Matrix3d.Mirroring(acLine3d));
  57.                     }
    
  58. if (bölge == 6)
  59. br.Rotation = (Math.PI * 3 / 2); }
  60. if (bölge == 7)
  61.                     {
    
  62. br.Rotation = (Math.PI * 3 / 2);
  63. Point3d pt_m1 = new Point3d(pt_start.X + 1, pt_start.Y - 1, 0);
  64. Point3d pt_m2 = new Point3d(pt_start.X - 1, pt_start.Y + 1, 0);
  65. Line3d acLine3d = new Line3d(pt_m1, pt_m2);
  66. br.TransformBy(Matrix3d.Mirroring(acLine3d));
  67.                     }
    
  68. cSp.AppendEntity(br);
  69. tr.AddNewlyCreatedDBObject(br, true);
  70. tr.Commit();
  71.                 }
    
  72.             }
    
  73.         }
    
  74.     }
    
  • 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

0 Answers0