выбор сегмента полилиниии

Автор Тема: выбор сегмента полилиниии  (Прочитано 28950 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн simson43Автор темы

  • ADN OPEN
  • ****
  • Сообщений: 411
  • Карма: 9
Re: выбор сегмента полилиниии
« Ответ #15 : 15-10-2018, 20:50:04 »
Жуть и полный бред.
так подскажете что значит этот параметр?
и вот этот метод: GetParameterAtPoint
что за магический параметр он возвращает?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: выбор сегмента полилиниии
« Ответ #16 : 15-10-2018, 21:00:42 »
и вот этот метод: GetParameterAtPoint
что за магический параметр он возвращает?
Если ты не знаком с параметрическими кривыми (вообще, а не только в AutoCAD), то в двух словах я тебе это не объясню - ищи в интернете. В данном случае для полилиний параметр является целым числом в каждой из вершин полилиний. Например, параметр 1.0 - это вторая вершина, а 1.5 это середина третьего сегмента.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн simson43Автор темы

  • ADN OPEN
  • ****
  • Сообщений: 411
  • Карма: 9
Re: выбор сегмента полилиниии
« Ответ #17 : 15-10-2018, 21:03:53 »
Понял спасибо.
По поводу подсветки: я так понял она подсветится при нажатии лишь. а при наведении? чтоб как при зажатом ctrl можно так?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: выбор сегмента полилиниии
« Ответ #18 : 15-10-2018, 21:11:08 »
По поводу подсветки: я так понял она подсветится при нажатии лишь. а при наведении? чтоб как при зажатом ctrl можно так?
Ну так просто это сделать у тебя не получится. Тебе еще очень долго придётся изучать PointMonitor и Overruling.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн simson43Автор темы

  • ADN OPEN
  • ****
  • Сообщений: 411
  • Карма: 9
Re: выбор сегмента полилиниии
« Ответ #19 : 15-10-2018, 21:21:32 »
так я ж не против)
хотите сказать пока проще зажать ctrl?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: выбор сегмента полилиниии
« Ответ #20 : 15-10-2018, 21:24:15 »
так я ж не против)
хотите сказать пока проще зажать ctrl?
Ты до сих пор не объяснил что тебе нужно. Как же я могу тебе сказать, что тебе делать? В названии темы стоит - "как выбрать сегмент полилинии". На этот вопрос ответ уже давно дан.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн simson43Автор темы

  • ADN OPEN
  • ****
  • Сообщений: 411
  • Карма: 9
Re: выбор сегмента полилиниии
« Ответ #21 : 15-10-2018, 21:31:00 »
вот такой скромный код рабочий

Код - C# [Выбрать]
  1.             Document doc = App.DocumentManager.MdiActiveDocument;
  2.             Database db = doc.Database;
  3.             Editor ed = doc.Editor;
  4.  
  5.             PromptEntityOptions peo = new PromptEntityOptions("\nВыберите сегменты полилинии");
  6.             peo.SetRejectMessage("\nДолжна быть выбрана полилиния");
  7.             peo.AddAllowedClass(typeof(Polyline), true);
  8.  
  9.             using (Transaction tr = doc.TransactionManager.StartTransaction())
  10.             {
  11.                 while (true)
  12.                 {
  13.                     PromptEntityResult sel = ed.GetEntity(peo);
  14.                     if (sel.Status == PromptStatus.OK)
  15.                     {
  16.                         if (tr.GetObject(sel.ObjectId, OpenMode.ForWrite) is Polyline pl)
  17.                         {
  18.                             Point3d c = pl.GetClosestPointTo(sel.PickedPoint, false);
  19.                             Point2d p = new Point2d(c[0], c[1]);
  20.                            
  21.                             int n = pl.NumberOfVertices;
  22.                             if (!pl.Closed) n--;
  23.  
  24.                             for (int i = 0; i < n; i++)
  25.                             {
  26.                                 if (pl.OnSegmentAt(i, p, 0))
  27.                                 {
  28.                                     MessageBox.Show((i+1).ToString());
  29.                                 }
  30.                             }
  31.                         }
  32.                     }
  33.                     else break;
  34.                 }
  35.                 tr.Commit();
  36.             }

Так вот вопрос: зачем вот здесь так усложнено получение координаты? или я чего то опять не понимаю?
http://www.acadnetwork.com/index.php?topic=203.0

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: выбор сегмента полилиниии
« Ответ #22 : 15-10-2018, 21:35:39 »
Так вот вопрос: зачем вот здесь так усложнено получение координаты? или я чего то опять не понимаю?
http://www.acadnetwork.com/index.php?topic=203.0
Видимо ты совершенно не понимаешь что такое ПСК (UCS). Кроме того ты видимо ничего не знаешь о внутренней системе координат ОСК (ECS) полилинии, в которой нужно передавать точку в метод OnSegmentAt. Изучай.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн simson43Автор темы

  • ADN OPEN
  • ****
  • Сообщений: 411
  • Карма: 9
Re: выбор сегмента полилиниии
« Ответ #23 : 15-10-2018, 21:39:43 »
наверное.. но ведь работает..
пошел изучать.
спасибо за наводки

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: выбор сегмента полилиниии
« Ответ #24 : 15-10-2018, 21:45:35 »
наверное.. но ведь работает..
Работает если выполняются два условия:
1. ПСК == МСК
2. Полилиния находится в плоскости X0Y или параллельна ей (т.е. её свойство Normal ==Vector3d.ZAxis)
В любом другом случае работать не будет.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн simson43Автор темы

  • ADN OPEN
  • ****
  • Сообщений: 411
  • Карма: 9
Re: выбор сегмента полилиниии
« Ответ #25 : 15-10-2018, 21:49:10 »
ну я могу сказать что не припомню случаев когда они у меня не выполняются)
ps: дада я пошел изучать)

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: выбор сегмента полилиниии
« Ответ #26 : 15-10-2018, 21:51:11 »
ну я могу сказать что не припомню случаев когда они у меня не выполняются)
Ты программы пишешь только для себя?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн simson43Автор темы

  • ADN OPEN
  • ****
  • Сообщений: 411
  • Карма: 9
Re: выбор сегмента полилиниии
« Ответ #27 : 15-10-2018, 21:56:43 »
стесняюсь сказать что нет)

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: выбор сегмента полилиниии
« Ответ #28 : 15-10-2018, 22:06:30 »
стесняюсь сказать что нет)
А я вот не стесняюсь сказать, что нужно учитывать все возможные варианты. Даже если пишешь для себя, то и в этом случае тебе может достаться чужой чертеж, в котором ПСК != МСК.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн simson43Автор темы

  • ADN OPEN
  • ****
  • Сообщений: 411
  • Карма: 9
Re: выбор сегмента полилиниии
« Ответ #29 : 15-10-2018, 22:22:13 »
я ж не отказываюсь
ps: дада я пошел изучать)