|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Регистрация: 11.10.2010
Сообщений: 980
|
Радости - не будет. А вот точность вычислений может пострадать запросто.
Потому что надо полностью и сразу ставить задачу. Потому что слова "все посчитать на чертеже" после разбора запросто могут стать 20-страничным описанием задачи. Потому что просьба "сделать перенумерацию" может потребовать около 2 недель работы.
__________________
(/= RegDate StartReadDate) |
|||
|
||||
Регистрация: 25.02.2009
Сообщений: 82
|
полностью согласен,
я вижу вы уже пороху то понюхали , между прочим "PL-VxRdc -Удаление вершин полилиний, которые лежат на одной прямой" даная команда почти этим же занимается, и никто о точности не заикается здесь только критерии другие. И все же аналог граблей мона сотворить? Последний раз редактировалось evg76, 20.12.2010 в 14:55. |
|||
|
||||
Регистрация: 11.10.2010
Сообщений: 980
|
Наверное, можно. Если задание будет, к примеру, таким: "Все дуговые сегменты аппроксимируются не менее чем 2 дополнительными вершинами с шагом центрального угла не более 10°. В прямолинейном сегменте вершина удаляется, если площадь треугольника, образованного ею и двумя соседними, менее 20 ед.чертежа либо угол между двумя соседними сегментами более 170°".
Фантазии место есть. Правда, меня на подобную математику вряд ли хватит...
__________________
(/= RegDate StartReadDate) |
|||
|
||||
Регистрация: 26.06.2007
Воронеж
Сообщений: 151
|
VVA, есть ли возможность объединения в полилинию группы последовательных отрезков, у части из которых перепутаны местами начало и конец? Без изменения их начала/конца.
То есть, имеется несимметричный тип линии __*__*__*__, но при построении отрезка справа налево линия "переворачивается", и чтобы этого не произошло, приходится для некоторых углов (типа pi) менять направление построения (т.е. менять конец и начало). И в результате получается группа последовательных отрезков вида: (Начало-Конец)-(Начало-Конец)-(Конец-Начало)-(Начало-Конец)-(Конец-Начало). PEDIT у меня почему-то то объединяет эти отрезки, меняя им направления, то нормально объединяет, но очень редко. Закономерности не увидел. Так вот, Вы как эксперт по полилиниям можете подсказать, что делать для правильного объединения таких отрезков в полилинию? Может, одна из Ваших программ для работы с полилиниями это делает хорошо? |
|||
|
||||
Tonic, У меня глубоко внутри так же используется pedit. Здесь дело, скорее всего, в порядке следования. Когда выбираешь рамкой или секрамкой, то первый выбранный (т.е последний отрисованный) и задает тон полилинии. Никаких проблем не вижу реверсировать полилинии (см команды ENTREV или ENTREVS). Или непосредственным указанием выбери нужный отрезок, а затем остальные рамкой/секрамкой.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 26.06.2007
Воронеж
Сообщений: 151
|
VVA, их как раз не нужно реверсировать! Приведу пример для наглядности.
На картинке слева нарисованы 4 последовательных сегмента линии нестандартного типа (с кружком), построенные по часовой стрелке. Но так как чертёж читается не вверх ногами, я программно меняю направления некоторых отрезков (как на рисунке справа). И вот теперь нужно правый рисунок в неизменном виде преобразовать в полилинию. В этом проблема. |
|||
|
||||
Делай 2 полилинии. Так в одной полилинии быть не может.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Шаражпроектхалтурмонтаж Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,989
|
Уважаемые знатоки полилиний и гуру программирования на LISP!
Помогите реализовать пару функций для работы с полилиниями: 1) Часто при работе с полилинией приходится делать фаску (_chamfer) с заранее заданными параметрами. Для этого, как известно, нужно последовательно двумя кликами указать смежные сегменты полилинии. А можно ли программно свести эту операцию до одного клика у вершины смежных сегментов? [IMG]http://s45.***********/i108/1103/b1/d42f3db0bbe7.jpg[/IMG] 2) Немного обратная операция - удаление сегмента-фаски полилинии, как это происходит при той же команде "фаска" с нулевыми параметрами, то есть удаление сегмента-фаски кликом по этому сегменту. [IMG]http://s39.***********/i084/1103/00/e94f78f38944.jpg[/IMG] Возможно ли реализовать эти функции? VVA, спасибо за PL-Tools! |
|||
|
||||
Пробуй команды CF2 и CF3. CF1 похожа на CF2, только на 1 запрос больше
Код:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Шаражпроектхалтурмонтаж Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,989
|
VVA, Большое спасибо!!
CF1 и CF2 работают, но если я имею несколько наложенных друг на друга полилиний (это у меня "кабельные трассы"), то операция выполняется только с той что наверху, на нижележащие команда уже не действует. Это поправимо? CF3 работатет как-то не устойчиво - иногда выполняется, иногда нет, возвращая то Т, то nil и периодически запрашивает второй отрезок. Кажется это как-то может зависит от зума в окне - приблизишь, не выполняется, отдалишь - работает |
|||
|
||||
Изыскания и САПР Регистрация: 05.07.2008
Ижевск
Сообщений: 297
|
Цитата:
Можно ли эту последовательность команд сделать макросом на кнопку? Как он должен выглядеть? Добавлю В _pedit (Bricscad) есть опция объединить, через нее тоже можно объединить скопом (видно опция _multiple заработала), но сначала надо запустить команду _pedit, затем _join и тогда полилинии объединяться. Может подскажете макрос на кнопку? Последний раз редактировалось MeshIN, 16.03.2011 в 16:36. |
|||
|
||||
Инжиниринг Регистрация: 16.09.2011
Тюмень
Сообщений: 224
|
Пытаюсь воспользоваться командами ConvTo2d и ConvTo3d. Объект - прямоугольник из 4-х 3d-полилиний. Когда запускаю, происходит объединений, но одна сторона прямоугольника пропадает. Почему это может происходить? Заранее спасибо за ответ..
|
|||
|
||||
wepp, Выложи файлик посмотреть
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Пара противоречий в работе PL-JOIN.
См. пример в приложенном файлике. 1. При сшивании двух полилиний, образующих замкнутый контур (белая и синяя), у сшитой будет признак Closed==Yes. Если сшивать и эти две полилинии, и полилинию желтую, то у синей будет признак Closed==Yes, а у желтой Closed==No. Если же сшивать желтую и белую полилинию сверху, то у желтой возникнет Closed==Yes. Если сшивать две желтые, то у первой останется Closed==No, а у второй возникнет Closed==Yes. И т.п. Т.е. непредсказуемо. Лучше бы что-то одно всегда у всех полилиний, образующих замкнутые контуры. В данный момент логичным кажется Closed==Yes 2. Если установить допуск на сшивание, то зеленая линия не сошьется (не замкнется) даже при достаточном допуске. |
||||
|
||||
техник-геолог Регистрация: 26.12.2009
Kenigsberg
Сообщений: 79
|
Всем здоровья! Вот уже четыре года с большим воодушевлением пользуюсь Вашим приложением, но вот сейчас столкнулся с проблемкой...На моей нынешней работе стоит ZW 2008 и ничего толком туда не пихнуть, разве что GeoBL (и то, только потому что прописан был специально). Сам в lispе не силен...Уважаемый VVA, если есть такая возможность, помогите пожалуйста! У меня уже полгода проблема с утиллитами, программками, приложениями, со всем к чему так привык! надоело уже брать работу на дом. Заранее благодарен, всего доброго!!!
|
|||
|
||||
О ConvTo2d. Использую ее для преобразовании сплайнов - иногда преобразует только поштучно. Т.е. если выделено несколько, то не преобразует.
Пишет: Команда: ConvTo2d найдено: 356 ; ошибка: функция для аргумента не задана: -4.44089e-016 Автокад 2012 рус. В чем может быть дело? Или я совсем был неправ? Преобразование сплайнов в полилинии делает PL-JOIN? Но PL-JOIN ведь может посшивать при этом ненужное? Последний раз редактировалось АлексЮстасу, 19.01.2012 в 23:45. |
||||
|
||||
АлексЮстасу, Сплайны вообще вещь не благодарная. Выложи или пришли по почте файл. Гляну. Но с большой уверенностью могу сказать, что ошибку вызывает попытка через vlax-curve-* получить точку на сплайне. С 2010 Автокада в команде _splineedit появилась опция _polyline. Для внутренних нужд у меня есть еще и такой лисп (Преобразовать СПЛАЙНЫ в ПОЛИЛИНИИ)
Код:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 22.10.2017 в 08:17. Причина: добавил command-s |
||||
|
||||
Цитата:
Дело, похоже, не в самих сплайнах, а в версиях Автокада. Сейчас я начал все делать в 2012 - и налетел... Т.е. в 2006-2008 именно ConvTo2d нормально преобразовывала сплайны в полилинии. И поштучно, и большие выборки. А в 2012 ConvTo2d преобразует только поштучно. А PL-JOIN преобразует, но с большими потерями геометрии. Файл с реальными линиями-сплайнами прикладываю. Но ConvTo2d преобразует в любой версии тоже не все сплайны почему-то. А программа SC преобразует сплайны вполне хорошо. Последний раз редактировалось АлексЮстасу, 22.01.2012 в 02:20. |
||||