|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Регистрация: 11.10.2010
Сообщений: 979
|
Радости - не будет. А вот точность вычислений может пострадать запросто.
Потому что надо полностью и сразу ставить задачу. Потому что слова "все посчитать на чертеже" после разбора запросто могут стать 20-страничным описанием задачи. Потому что просьба "сделать перенумерацию" может потребовать около 2 недель работы.
__________________
(/= RegDate StartReadDate) |
|||
![]() |
|
||||
Регистрация: 25.02.2009
Сообщений: 82
|
![]() я вижу вы уже пороху то понюхали ![]() И все же аналог граблей мона сотворить? Последний раз редактировалось evg76, 20.12.2010 в 14:55. |
|||
![]() |
|
||||
Регистрация: 11.10.2010
Сообщений: 979
|
Наверное, можно. Если задание будет, к примеру, таким: "Все дуговые сегменты аппроксимируются не менее чем 2 дополнительными вершинами с шагом центрального угла не более 10°. В прямолинейном сегменте вершина удаляется, если площадь треугольника, образованного ею и двумя соседними, менее 20 ед.чертежа либо угол между двумя соседними сегментами более 170°".
Фантазии место есть. Правда, меня на подобную математику вряд ли хватит...
__________________
(/= RegDate StartReadDate) |
|||
![]() |
|
||||
Регистрация: 26.06.2007
Воронеж
Сообщений: 151
|
VVA, есть ли возможность объединения в полилинию группы последовательных отрезков, у части из которых перепутаны местами начало и конец? Без изменения их начала/конца.
То есть, имеется несимметричный тип линии __*__*__*__, но при построении отрезка справа налево линия "переворачивается", и чтобы этого не произошло, приходится для некоторых углов (типа pi) менять направление построения (т.е. менять конец и начало). И в результате получается группа последовательных отрезков вида: (Начало-Конец)-(Начало-Конец)-(Конец-Начало)-(Начало-Конец)-(Конец-Начало). PEDIT у меня почему-то то объединяет эти отрезки, меняя им направления, то нормально объединяет, но очень редко. Закономерности не увидел. Так вот, Вы как эксперт по полилиниям ![]() |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Tonic, У меня глубоко внутри так же используется pedit. Здесь дело, скорее всего, в порядке следования. Когда выбираешь рамкой или секрамкой, то первый выбранный (т.е последний отрисованный) и задает тон полилинии. Никаких проблем не вижу реверсировать полилинии (см команды ENTREV или ENTREVS). Или непосредственным указанием выбери нужный отрезок, а затем остальные рамкой/секрамкой.
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 26.06.2007
Воронеж
Сообщений: 151
|
VVA, их как раз не нужно реверсировать! Приведу пример для наглядности.
![]() На картинке слева нарисованы 4 последовательных сегмента линии нестандартного типа (с кружком), построенные по часовой стрелке. Но так как чертёж читается не вверх ногами, я программно меняю направления некоторых отрезков (как на рисунке справа). И вот теперь нужно правый рисунок в неизменном виде преобразовать в полилинию. В этом проблема. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Делай 2 полилинии. Так в одной полилинии быть не может.
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Шаражпроектхалтурмонтаж Регистрация: 29.10.2004
Талды-Париж
Сообщений: 6,010
|
Уважаемые знатоки полилиний и гуру программирования на 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! ![]() |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Пробуй команды CF2 и CF3. CF1 похожа на CF2, только на 1 запрос больше
Код:
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Шаражпроектхалтурмонтаж Регистрация: 29.10.2004
Талды-Париж
Сообщений: 6,010
|
VVA, Большое спасибо!!
CF1 и CF2 работают, но если я имею несколько наложенных друг на друга полилиний (это у меня "кабельные трассы"), то операция выполняется только с той что наверху, на нижележащие команда уже не действует. Это поправимо? CF3 работатет как-то не устойчиво - иногда выполняется, иногда нет, возвращая то Т, то nil и периодически запрашивает второй отрезок. Кажется это как-то может зависит от зума в окне - приблизишь, не выполняется, отдалишь - работает ![]() |
|||
![]() |
|
||||
Изыскания и САПР Регистрация: 05.07.2008
Ижевск
Сообщений: 297
|
Цитата:
![]() Можно ли эту последовательность команд сделать макросом на кнопку? Как он должен выглядеть? Добавлю В _pedit (Bricscad) есть опция объединить, через нее тоже можно объединить скопом (видно опция _multiple заработала), но сначала надо запустить команду _pedit, затем _join и тогда полилинии объединяться. Может подскажете макрос на кнопку? Последний раз редактировалось MeshIN, 16.03.2011 в 16:36. |
|||
![]() |
|
||||
Инжиниринг Регистрация: 16.09.2011
Тюмень
Сообщений: 235
|
Пытаюсь воспользоваться командами ConvTo2d и ConvTo3d. Объект - прямоугольник из 4-х 3d-полилиний. Когда запускаю, происходит объединений, но одна сторона прямоугольника пропадает. Почему это может происходить? Заранее спасибо за ответ..
|
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
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
![]() ![]() ![]() |
|||
![]() |
|
||||
О ConvTo2d. Использую ее для преобразовании сплайнов - иногда преобразует только поштучно. Т.е. если выделено несколько, то не преобразует.
Пишет: Команда: ConvTo2d найдено: 356 ; ошибка: функция для аргумента не задана: -4.44089e-016 Автокад 2012 рус. В чем может быть дело? Или я совсем был неправ? Преобразование сплайнов в полилинии делает PL-JOIN? Но PL-JOIN ведь может посшивать при этом ненужное? Последний раз редактировалось АлексЮстасу, 19.01.2012 в 23:45. |
||||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
АлексЮстасу, Сплайны вообще вещь не благодарная. Выложи или пришли по почте файл. Гляну. Но с большой уверенностью могу сказать, что ошибку вызывает попытка через 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. |
||||
![]() |