@j@y123 Ответов: 1

Как получить координаты от пользователя с помощью курсора


[CommandMethod("ha")]
       public static void FindAllHatches()
       {
           float x = 25, y = 15, z;
           Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
           Document acDoc = Application.DocumentManager.MdiActiveDocument;
 
           var db = acDoc.Database;
           using (Transaction transaction = db.TransactionManager.StartTransaction())
           {
               ObjectId idModelSpace = SymbolUtilityServices.GetBlockModelSpaceId(db);
 
               BlockTableRecord modelSpace = transaction.GetObject(idModelSpace, OpenMode.ForWrite) as
                   BlockTableRecord;
 
               foreach (var objId in modelSpace)
               {
                   MText mtext = new MText();
                   mtext.Width = 6;
                   mtext.Location = new Point3d(x, y, z = 0);
                   ////acpt = new Point3d(acpt.X, acpt.Y + 2, acpt.Z);

                   var entity = transaction.GetObject(objId, OpenMode.ForRead);
                   Hatch hatch = entity as Hatch;
                   if (hatch == null)
                       continue; //not hatch

                   mtext.Contents = ("\n" + "\n The area of hatch is: " + hatch.Area + hatch.PatternName + hatch.Color);
 
                   acDoc.Editor.WriteMessage("\n" + "\n The area of hatch is:" + hatch.Area + hatch.PatternName + hatch.Color);
 
                   modelSpace.AppendEntity(mtext);
                   transaction.AddNewlyCreatedDBObject(mtext, true);
                   y--;
               }
               transaction.Commit();
           }
       }


Что я уже пробовал:

Выход вышеприведенного кода - это область штриховок на чертеже, и я хочу отобразить вывод на указанные пользователем точки bt, которые я хочу получить с помощью курсора, то есть введенного щелчком мыши.

lukeer

Я не совсем понимаю ваш вопрос. Вы хотите напечатать текст в определенном пользователем месте?
Вы хотите нарисовать что-то в трехмерном пространстве?

@j@y123

да. Мой код вычисляет площадь люков, и я хочу распечатать его в определенное пользователем местоположение, но меня смущает, что как я могу получить определенное пользователем местоположение?

1 Ответов

Рейтинг:
8

lukeer

То MousePosition свойство вашей формы, панели, на чем бы вы ни рисовали свои вещи, подскажет вам, где находится указатель мыши.
Имейте в виду, что вы получаете координаты экрана, даже если вы вызываете метод элемента управления. Чтобы что-то напечатать, вам обычно нужны координаты управления. Контроль.PointToClient буду переводить для вас.