|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
14.09.2006, 13:30 | 4 | | #1 |
Новые команды для работы с полилинией
Инженер LISP
Минск
Регистрация: 11.05.2005
Сообщений: 6,990
|
||
Просмотров: 367723
|
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Замечания к программам (командам).
"Добавить новую вершину в полилинию." Не обрабатывается нажатие правой кнопки мыши. В программе предполагается, что новую вершину мы куда-то переместим мышью. но если нам не надо перемещать вершину, а подтвердить уже указанную точку, то напрашивается нажатие правой кнопки мыши и вот тут программа срывается. По-моему, kpblc дорабатывал эту программу. "Удалить вершину полилинии". Результат может оказаться непредсказуемым, если удаляется вершина между линейным и дуговым сегментами. В зависимости от направления полилинии вместе с вершиной удаляется или дуговой или линейный сегмент. "Аппроксимация дуговых сегментов линейными". В русской версии не работает контекстное меню. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Дорабатывал, но не добил. Stretch все равно слетает черт-те куда. Там на оригинальном адресе, по-моему, Евгений Елпанов показывал обработку. Его вариант, насколько мне помнится, работал более устойчиво.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Цитата:
Цитата:
Другое дело, что тот кто удаляет вершину должен отдавать себе отчет как направлена полилиния. Но как помочь ему в этом [sm2100] >kpblc В результате плотного общения с Лентяем, доработавшего код Евгения Елпанова, удалось добиться главного: избавиться от _break (полилинии не теряют ассоциативность). В этой версии вершины добавляются без _strech (там основная сложность была в пересчете bulge), что на мой взгляд более корректно. Последний раз редактировалось VVA, 19.09.2015 в 20:42. |
||||
|
||||
Гидрорезка Регистрация: 18.09.2006
г Владимир
Сообщений: 2
|
"Аппроксимация дуговых сегментов линейными".
Как сделать следующее: Есть полилиния состоящая из нескольких прямых и дуг с разными радиусами до 500 мм и более 500 мм. Надо аппроксимировать дуги с радиусом более 500 мм с отклонением 0.1 мм.
__________________
Гидро абразивная резка waterjet 4000 Атм |
|||
|
||||
Я бы сделал так:
1. _break в точке ->Выделить дуговые сегменты с радиусом более 500 мм в отдельные полилинии (вариант: скопировать полилинию и обрезать) 2. Аппроксимировать их с отклонением 0.1 (имеется ввиду предельное отклонение хорды, т.е. высота стрелки дуги) 3. PL-JOIN собрать все обратно в полилинию 4. При необходимости ENTREVS задать нужный порядок обхода |
||||
|
||||
Гидрорезка Регистрация: 18.09.2006
г Владимир
Сообщений: 2
|
Так и делаю, но это очень долго. Уходят часы и дни на обработку нескольких полилиний.
Хотелось бы автоматически. Задать радиус дуги болше которого полилиния должна обрабатываться и отклонение.
__________________
Гидро абразивная резка waterjet 4000 Атм |
|||
|
||||
Решил тоже добавить код в копилку...
Программа аппроксимирует дуговые сегменты полилинии по заданной высоте, т.е я использую подобный код для генерации векторной картинки полилинии в диалоговых окнах, задавая максимальную высоту в один пиксел. Предложенная программа только пример, никакой оптимизации... Я ее наспех выдернул из другого кода и слегка адаптировал для форума... Код:
|
||||
|
||||
Регистрация: 20.01.2004
Москва
Сообщений: 154
|
посмотрел понравилось, но я думаю что стоит добавит еще 1 команду
или чуть-чуть изменить существующую- PL-DIV -Разбивает выбранный сегмент полилинии на указанное количество сегментов или через указанное расстояние что бы можно было делить не только один сегмент но и всу полилинию вместе, с сохранением текущих вершин А програмка супер молодцы |
|||
|
||||
Инженер-конструктор, магистр СПбГПУ. Регистрация: 27.11.2005
Санкт-Петербург
Сообщений: 78
|
Цитата:
__________________
Начинаю писать магистерскую диссертацию на тему нелинейных методов совместных расчетов оснований и фундаментов. Буду рад любой помощи со стороны профессионалов. |
|||
|
||||
Шаражпроектхалтурмонтаж Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,985
|
Спасибо за замечательный набор программ!
Может быть уважаемым авторам не составит труда добавить программку, которая бы по одиночному клику на полилинии строила бы фаску и скругление смежных сегментов, ближайших к точке выбора. |
|||
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Это не сделать, наколько я помню, вообще никак. Только если изготовить новый тип линии и его назначать на полилинию
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
>Krieger №18 Версия Автокада тут ни при чем. Отрисуй две зеркальные дуги и увидишь, что типом линии они покрываются одинаково. Такое ощущение, что при встрече дуги (дугового сегмента) по алгоритму заново рассчитываются начало/конец дуги, причем справа-налево и против часовой. Мы у себя для этих целей имеем типы линий - перевертыши.
>AleXПочему именно в 2D_POLYLINE? Управляющие точки могум иметь различные координаты Z. Тут наверное только 3d polyline. >Sleekka Ассоциативновть полилинии, это когда она задает контур каким-либо другим примитивам. Я знаю два: штриховка и видовой экран. Причем ассоциативность штриховки иногда слетает. Т.к. в своей работе часто пользуюсь подрезанными видовыми экранами, то особо хочу подчеркнуть, что если в PL-VxAdd будет указан видовой экран, то он подрежется полилинией. Получается 2 в 1: подрезаем В.Э. и указываем новую конфигурацию, чем я особо доволен. [ATTACH]1159164515.jpg[/ATTACH] |
||||
|
||||
CNC Регистрация: 28.08.2003
Belarus
Сообщений: 47
|
>VVA
"Почему именно в 2D_POLYLINE? Управляющие точки могум иметь различные координаты Z. Тут наверное только 3d polyline." По двум причинам: 1. в 2D_POLYLINE конечно же 2-х мерный SPLINE. Задачка уж больно интересная. Преобразование в 2D_POLYLINE позволяет уменьшить количество точек ее определяющих, что может быть полезным, например при написании управляющих программ станков с ЧПУ. Что-то вроде имеющейся возможности определить элипс участками полилинии. 2. В 3d polyline полилинию через точки наверно банально и просто. Поискав по форумам можно найти почти готовые решения. |
|||
|
||||
Регистрация: 20.04.2006
Сообщений: 67
|
vva.
спасибо огромное за ваш труд, очень облгечает рутинные операции. пожелание можна ли дополнить функциями копирования сегментов, т.е по указанным пользователем сегментам pline создавался новый объект-копия включающий в себя только указанные сегменты. еще раз спасибо. |
|||
|
||||
>AleX
Цитата:
Цитата:
Цитата:
>luser Сейсас готовится обновление с найденными багами KAI, попробую учесть и твое предложение. |
||||
|
||||
Выложены новые обновления от 29.09.2006
1. Добавлена новая команда PL-CLONE - Из указанных пользователем сегментов полилинии создавается новая полилиния 2.В замене линейного сегмента в полилинии дуговым сегментом предусмотрена опция задания радиуса радиус может быть положительным и отрицательным (влияет на направление дуги) 3. PL-A2L и PL-L2A подружились с UCS 4. Удаление совпадающих вершин полилинии (PL-VxOpt) работает с группой объектов, а не по одной |
||||
|
||||
Регистрация: 09.10.2006
Санкт-Петербург
Сообщений: 99
|
Поскольку я только начинаю разбираться с LISPом и с программированием вообще, хочется что-то представить на суд знатоков и услышать критику, что так, что не так, и как можно лучше.
Прилагаю программку для редактирования положения вершин полилинии без того, чтобы таскать ручки. (defun C:con_ed (/ object object2) (defun obrabotka () (if (> vert_no1 vert_no2) (while do_next (if (setq new_pt (getpoint (vlax-safearray->list (vlax-variant-value (vlax-get-property vname 'Coordinate (if (= begin_vert 0) 0 (- begin_vert 1) ) ) ) ) "\nСледующая вершина" ) ) (progn (setq new_pos (vlax-safearray-fill (vlax-make-safearray vlax-vbDouble '(0 . 1)) (vl-remove (last new_pt) new_pt) ) ) (vla-put-Coordinate vname begin_vert new_pos) (if (<= (+ 1 begin_vert) (vlax-curve-getEndParam vname)) (setq begin_vert (+ 1 begin_vert)) (progn (exit) (princ) ) ) ) (setq do_next nil) ) ) (while do_next (if (setq new_pt (getpoint (vlax-safearray->list (vlax-variant-value (vlax-get-property vname 'Coordinate begin_vert ) ) ) "\nСледующая вершина" ) ) (progn (setq new_pos (vlax-safearray-fill (vlax-make-safearray vlax-vbDouble '(0 . 1)) (vl-remove (last new_pt) new_pt) ) ) (vla-put-Coordinate vname (- begin_vert 1) new_pos) (if (> begin_vert 1) (setq begin_vert (- begin_vert 1)) (progn (exit) (princ) ) ) ) (setq do_next nil) ) ) ) (princ) ) ;;Main function;; (setq object (entsel "\nЩелкните по той части полилинии, которую собираетесь редактировать" ) name (car object) place (cadr object) prlst (entget name) ) (if (equal (cdr (assoc 0 prlst)) "LWPOLYLINE") (progn (setq vname (vlax-ename->vla-object (car object)) dist1 (vlax-curve-getDistAtPoint vname (vlax-curve-getClosestPointTo vname (cadr object) ) ) object2 (entsel "\nА теперь щелкните вблизи от той вершины, с которой собираетесь начать" ) name2 (car object2) place2 (cadr object2) vname2 (vlax-ename->vla-object (car object2)) dist2 (vlax-curve-getDistAtPoint vname2 (vlax-curve-getClosestPointTo vname2 (cadr object2) ) ) vert_no1 (vlax-curve-getParamAtDist vname dist1) vert_no2 (vlax-curve-getParamAtDist vname dist2) begin_vert (if (< (fix vert_no2) 0.5) (fix vert_no2) (+ (fix vert_no2) 1) ) do_next T ) (if (eq name name2) (obrabotka) (progn (alert "Очень странно!\nСначала был указан другой объект.\nНе желаете ли подумать,\nчто же вы хотите делать?" ) (princ) ) ) ) (progn (alert "С выбранным объектом\nв такие игры не играют") (princ) ) ) ) |
|||
|
||||
PL-VxMove - программа для редактирования вершин без таскания за ручки. Дополнительные ф-ции по ссылке с поста №1.
Будет включена в новое обновление. Интересуют замечания по интерфейсу. Код:
Цитата:
Последний раз редактировалось VVA, 19.09.2015 в 20:46. |
||||
|
||||
геологоразведка, строительство Регистрация: 14.10.2003
Магадан
Сообщений: 311
|
По интерфейсу:
не мешало бы добавить опции "вперед" и "назад" (или как в Pedit, Prev/Next), а уж если и Undo на неверно введенную точку! Кстати, после выхода из программы по Esc надо жать 3 раза на U, чтобы отменить действие команда (при нормальном выходе все OK), далее листинг действий: Command: PL-VXMOVE Укажите изменяемую вершину полилинии <выход>: Новое положение вершины 2[выход(X)] <оставить>: Новое положение вершины 3[выход(X)] <оставить>: Новое положение вершины 4[выход(X)] <оставить>:*Cancel* Команда прервана пользователем Command: u PL-VXMOVE Command: u GROUP Command: u GROUP Command: |
|||
|
||||
Прекрасный набор команд. Удобно оформлен. Хотя это не ново. В ToolPac это уже есть, да и не мешало бы посмотреть создателю, как реализовано это все в GeoniCS. Намного удобней.
Если возможно, то добавьте, пожалуйста, в функцию "добавления вершин в полилинию" возможность редактирования при включенных ручках, или подсвеченных вершин. А то добавляешь вершину, а рядом уже есть. Приходится корректировать. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Насчет Toolpac'a я не знаю, может, он и стал бесплатным, но за GeoniCS (при условии всех его плюсов и минусов) платить приличные суммы лично я не согласный.
И потом, как-то нелогично получается - Toolpac удобнее, Geonics вообще заоблачные высоты, и тут же "добавьте то-то и то-то"... --- P.S. Обязательно прочтите мою подпись! --- Добавлено: В GeoniCS масса вещей (если вообще не все) сделаны на ObjARX, а там ничего не посмотришь, кроме как на междумордие да результаты работы. И потом пытаться сделать на лиспе то же самое. у меня лично подобные трюки прокатывают далеко не всегда
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Я совсем не хочу уменьшить значение твоей программы, но, некоторые моменты в Геониксе реализованы гораздо удобней. И если бы была возможность вытащить в Автокад из Геоникса набор команд по редактированию полилинии, то меня бы все устроило. Имелась в виду концепция решения.
|
||||
|
||||
инженер Регистрация: 13.12.2004
Минск
Сообщений: 496
|
>>Игорь Богаченко
Цитата:
Поэтому пользуемся тем что есть! И низкий поклон VVA за собраную до кучки информацию и всем авторам любезно предоставленных программ. |
|||
|
||||
Новый АВТОНОМНЫЙ вариант PL-VxMove с учетом замечаний KAI и Игорь Богаченко
Код:
Добавлено Команда сделана автономной |
||||
|
||||
Регистрация: 09.10.2006
Санкт-Петербург
Сообщений: 99
|
VVA
Цитата:
Какие были мысли относительно этой команды: указывается направление редактирования, и резиновая нить цепляется за предыдущую вершину, обозначая положение линейного сегмента полилинии после изменения положения вершины. Таким образом, для пользователя процесс схож с вычерчиванием заново участка полилинии. |
|||
|
||||
Этот код не вставляет вершину, а смещает. Это не подходит.
Если применять резинувую нить, то для двух смежных вершин, а не для одной с направлением. И, желательна свобода перемещения по редактируемой полилинии, а не быть привязаным к определенному участку, и двигаться по линии к следующему участку редактирования. Лучше просто подсветить редактируемую линию, и вставлять вершины в нужных местах. |
||||
|
||||
>Игорь Богаченко В № 38 писал
Цитата:
Цитата:
Я тоже сомневаюсь в практической ценности PL-VxMove и согласен с Profan №43 Хотел написать на Profan №45 Цитата:
|
||||
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Еще про ручки (такие, знаете ли, миленькие нежные ручки).
Подумавши, свою фразу построил бы по другому: Выделил полилинию и выбирай любую ручку, если нет ножки, или выбирай с Shift'ом несколько ручек, если тебя привлекает групповуха. :twisted: |
|||
|
||||
Пользуясь случаем обновил программы. Исправленные ошибки:
- PL-CLONE, PL-VxRdc Неточночть работы в UCS - Добавлена команда PL-VX1 - Изменение начала полилинии - В команду PL-VxMove добавлена опция: Для 3d полилиний добавляется запрос сохранения Z узла полилинии - CVPOLY переведена в режим командной строки. - Вместо нее добавлена PL-3d2d (проецирование 3d на текущую ПСК) - Entrevs - для замкнутых полилиний вершина остается на месте - Корректная обработка кривизны и ширины замыкающего сенмента полилинии в ENTREVS Особо хочу поблагодарить KAI за дельные замечания и советы. > Neznayka Все добавляется. Просто размер прицела выбора (PICKBOX) должен быть больше текущей толщины полилинии на экране. Варианта 2: 1. Либо зумом отъедь от полилинии 2. Либо в командной строке PICKBOX и увеличь значение. Только что проверил: работает в 2007 RUS. Там чистый Лисп. От версии не должно зависеть. |
||||
|
||||
Регистрация: 24.03.2005
Сообщений: 320
|
> Neznayka Все добавляется. Просто размер прицела выбора (PICKBOX) должен быть больше текущей толщины полилинии на экране.
Варианта 2: 1. Либо зумом отъедь от полилинии 2. Либо в командной строке PICKBOX и увеличь значение. Только что проверил: работает в 2007 RUS. Там чистый Лисп. От версии не должно зависеть.[/quote] Все понял , спасибо, поставил новую версию и в 2007 заработало почему-то :roll: еще нашёл замечательное применение : все время мучился с отрисовкой забора на своих схемах, теперь полилинию можно разбить на нужной длины сегмент, назначить глобальную ширину, и переменную FILLMODE обнулить - все. а то я раньше всякие (мультилинии), выдумывал вот только акад при разбивки секунд на 15 призадумывается, и это при том , что комп далеко не слабый у меня [ATTACH]1164096458.GIF[/ATTACH] а может еще такую фишку с геоникса добавить, типа есть замкнутый контур (здание обведено с растра, например) внутренние углы стремятся к 90 градусам, но у них это не получается из-за того не пользовались ф8 . Так вот щелкнул по линии и она трансформировалась в фигуру с углами в 90 гр. , за основу берется самая длиная сторона возможно ли такое ? |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Совет программистам:
Для того, чтобы предотвратить ситуацию с неправильным указанием широкой (c физической шириной) полилинии, надо в функцию выбора примитива включать наподобие Код:
|
|||
|
||||
>ShaggyDoc Спасибо, использовал.
>Neznayka Цитата:
Код:
Последний раз редактировалось VVA, 19.09.2015 в 20:52. |
||||
|
||||
архитектор Регистрация: 14.01.2006
Portugal, Sintra
Сообщений: 119
|
Извините, что вклиниваюсь в столь умную беседу со своей проблемой, в лиспах ничего не смыслю. Но вопрос касается свойств полилинии.
В одном файле после использования команды flatten objekts изменилось отбражение вновь проводимых полилиний. Толщина их стало отбражаться в абсолютных величинах, а не относительно экрана. мне удалось только выяснить, что это зависит от величин global width. Где можно это значение "обнулить"? Пока приходится делать это вручную в свойствах... :?:
__________________
жизнь-занятная штука... |
|||
|
||||
Регистрация: 24.03.2005
Сообщений: 320
|
Вы кудесник, это так "окрасивит" мои чертежи,!!! прям сказка,
немогли бы вы на словах рассазать про алгоритм работы, это сравни уравновешивания теодолитного хода? если Вас интересуют пожелания, то они такие: некорректно работает с не замкнутой плинией (появляется короткий апендикс который совсем в другую сторону смотрит), и если можно ограничить выпрямляймые углы , скажем от 85 до 95 градусов, а то в зданиях бывают не только прямые углы, и еще чтоб скапом можно было контура обрабатывать, а не по одному. ОГРОМНОЕ СПАСИБО |
|||
|
||||
>Lizzy Вручную в свойствах, только для всех полилиний сразу.
Выдели объекты, в окне свойств (там где Все) раскрой список, выбери полилинии. в поле Глобальная ширина вбей 0. >Neznayka Пробуй. Про алгоритм чуть позже Код:
Цитата:
Последний раз редактировалось VVA, 19.09.2015 в 20:55. |
||||
|
||||
>Кочетков Андрей Исправил. Выложил в download
|
||||
|
||||
>Profan Спасибо, Владимир. Как-то пропустил твой пост, только сейчас заметил. Заменил. Исправления от 14.03.2007
Помимо этого добавлено: ConvTo2d -Преобразование линейных объектов в 2D полилинии ConvTo3d -Преобразование линейных объектов в 3D полилинии MPL -Построение средней линии R3P -Прямоугольгик по 3-м точкам PL-JOIN -Объединение полилиний чохом (если есть 3d полилинии, то объединяет и их тоже, но не с 2d, а между собой) PL-JOIN3D -Объединение 3D полилиний (Отрезки + 3d полилинии) Исправлены мелкие и не очень (спасибо KAI) глюки. |
||||
|
||||
геологоразведка, строительство Регистрация: 14.10.2003
Магадан
Сообщений: 311
|
Цитата:
Даже мне, зунуде, кажется, что уже все в норме. Есть конечно мелкие огрехи, кое в чем с автором я не согласен, но на то и АВТОР! Ему видней. А в целом комплекс ОЧЕНЬ хороший! Рекомендую! Огромное спасибо VVA!
__________________
Лень - великий двигатель прогресса! |
|||
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Для VVA.
Вот ЗДЕСЬ есть еще программа Евгения Елпанова "Изменение начальной и конечной ширины произвольного сегмента полилинии". Вы не хотите включить ее или ваш аналог в пакет PLTOOLS? Правильно вы сделали, что сгруппировали кнопки. |
|||
|
||||
Поступают просьбы добавить команду, чтоб выбирать надо было бы только один объект, а команда объединяла все примыкающие объекты (линии, полилинии, дуги...) в полилинию.
Выкладываю на тестирование и для предложений/замечаний. Алгорити взят у ChainSelect Fatty Код:
CSS - объединение путем выбора притива CSP - объединение путем указания точки |
||||
|
||||
геологоразведка, строительство Регистрация: 14.10.2003
Магадан
Сообщений: 311
|
>> VVA
Очень интересно! Но: 0. Мур-мур от команд надо-бы отключить. 1. CSS. В одном из моих отладочных чертежей вылезла следующая ошибка (правда там объекты отрисованы в разных UCS и ужасная мешанина из объектов): Command: CSS Выбрать первую или последнюю линию в цепи : Значение допуска < 0.01 >: ; error: bad argument value: AcDbCurve 2130505112 2. CSS. 3DPoly следует исключать из набора, иначе получается следующая картина: ---3DPoly в конце цепочки------------ Command: css Выбрать первую или последнюю линию в цепи : Значение допуска < 0.01 >: _.redraw Command: _pedit Select polyline or [Multiple]: _M Select objects: 9 found Select objects: Enter an option [Close/Open/Join/Width/Fit/Spline/Decurve/Ltype gen/Undo]: _j Join Type = Both (Extend or Add) Enter fuzz distance or [Jointype] <0.010>: _j Enter join type [Extend/Add/Both] <Both>: _b Join Type = Both (Extend or Add) Enter fuzz distance or [Jointype] <0.010>: 0.010000000000000 8 segments added to polyline Enter an option [Close/Open/Join/Width/Fit/Spline/Decurve/Ltype gen/Undo]: Command: ._select Select objects: 0 found Select objects: ---3DPoly в начале---------------------- Command: CSS Выбрать первую или последнюю линию в цепи : Значение допуска < 0.01 >: _.redraw Command: _pedit Select polyline or [Multiple]: _M Select objects: 10 found Select objects: Enter an option [Close/Open/Spline curve/Decurve/Undo]: _j Invalid option keyword. Enter an option [Close/Open/Spline curve/Decurve/Undo]: ._select Invalid option keyword. ; error: Function cancelled Enter an option [Close/Open/Spline curve/Decurve/Undo]: 3. CSP. Похоже точку надо указывать точно на узле объекта? 4. Для PEDITACCEPT лучше применять конструкцию: (if (getvar "PEDITACCEPT");для 2006>> (progn (setq pda (getvar "PEDITACCEPT")) (setvar "PEDITACCEPT" 1) ) ) Вдруг прогу запустят в acad 2005? 5. CSS. Кроме 3DPoly, думаю следует проверять еще и линии (они должны лежать в одной плоскости), а то получается, что грипсы загораются на всей цепочке, но это только видимость! Если последняя линия не в плоскости полилинии. 6. На мой взгляд, fuzz по умолчанию лучше бы сделать 0.0, будем приучать пользователей к точности.
__________________
Лень - великий двигатель прогресса! |
|||
|
||||
> 0. Мур-мур от команд надо-бы отключить
Извини, не понял о чем речь >1. CSS. В одном из моих отладочных чертежей вылезла следующая >ошибка (правда там объекты отрисованы в разных UCS и ужасная >мешанина из объектов): Попробуй проверить этот чертеж _audit или _recover. Это помогло на том глючном файле, который ты присылал раньше. >2. CSS. 3DPoly следует исключать из набора, иначе получается >следующая картина: Пришли файл, т.к. 3dpoly исключаю Код:
Да >4. Для PEDITACCEPT лучше применять конструкцию: PEDITACCEPT появилась с 2004 Автокада. Не знаю, есть ли смысл ввводить проверку? >5. CSS. Кроме 3DPoly, думаю следует проверять еще и линии (они >должны лежать в одной плоскости), а то получается, что грипсы >загораются на всей цепочке, но это только видимость! Если >последняя линия не в плоскости полилинии. Здесь принцип такой: строится список объектов с совпадающими началом/концом и отдается на откуп _PEDIT _M. А уж сколь там контуров построит PEDIT одному Autodesk'у известно. Грипсами подсвечивается все, что получилось (или осталось). Это могут быть и несколько контуров, или (и) не объединенные LINE. Почему проскальзывают 3dpoly пока не понятно? >6. На мой взгляд, fuzz по умолчанию лучше бы сделать 0.0, будем >приучать пользователей к точности. Это правильно. Еще терзают смутные сомнения в необходимости CSP. |
||||
|
||||
геологоразведка, строительство Регистрация: 14.10.2003
Магадан
Сообщений: 311
|
>> VVA
>0. Именно CMDECHO. >1. CSS. В одном из моих отладочных чертежей вылезла ошибка... Audit and Recover не помогло. >2. CSS. 3DPoly следует исключать из набора... Если 3DPoly в конце - все OK. А вот если в начале, то .... >4. Для PEDITACCEPT Отнюдь не все перешли еще на 2004>> >5. CSS. Линии не в плоскости. Может лучше подсветить грипсы для итоговой полилинии, а не для набора, передаваемого в PEdit? > Еще терзают смутные сомнения в необходимости CSP. Наверное, это не нужно, что-то никак не могу придумать в каких ситуациях это будет полезно. И еще заметил. Если выбирать дугу, расположенную в середине цепочки, то CSS вроде логично объединяет дугу с последующими объектами (предыдущие не объединяются, предыдущий объект линия). Но если выбрать линию (дугу) в середине цепочки, то объединяются выбранный объект и последующие и почему-то один предыдущий линия (или дуга при выборе дуги).
__________________
Лень - великий двигатель прогресса! |
|||
|
||||
геологоразведка, строительство Регистрация: 14.10.2003
Магадан
Сообщений: 311
|
>> VVA
Может это старческое брюзжание, но: 1. Болезнь отмены работы программы так и не преодолена, для отмены нужно 2 раза посылать команду U (это касается и программ комплекса pltools). 2. Все-таки логичнее будет, если пользователь выбирает объект вблизи будущего начала полилинии и к нему добавляются только объекты, примыкающие к концу этого объекта! Сейчас же, похоже, объединение выполняется в зависимости от направления исходных объектов, причем объединение происходит в режиме: все в одном направлении + один объект в противоположном. 3. Перед началом работы программы следует сбросить грипсы. Если после CSS снова ее запускаем (грипсы на предыдущей не сброшены), то после указания нового объекта для объединения получаем ошибку: Command: CSS Выбрать первую или последнюю линию в цепи : Значение допуска < 0 >: Invalid option keyword. Invalid option keyword. ; error: Function cancelled Enter an option [Close/Join/Width/Edit vertex/Fit/Spline/Decurve/Ltype gen/Undo]: А в целом, можно уже помещать ее в PLTolls.
__________________
Лень - великий двигатель прогресса! |
|||
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Да вот, например. Архитекторы чертят план в масштабе 1:1, а выводить на печать будут из модели в масштабе 1:100. Все размерные величины (и тексты) соответственно увеличены в 100 раз. Для этого задается переменная "DIMSCALE" равная 100. В этих условиях ширина полилинии должна быть, для примера, не 0.5, а 50. Поэтому я и предположил, что, если "DIMSCALE" > 1, то и ширину полилинии надо устанавливать равной, скажем, 0.5 x (getvar "DIMSCALE"). Возможно, это спорный момент.
|
|||
|
||||
> Krieger №18
Цитата:
Цитата:
На дуговых сегментах полилинии тип линий может быть "вверх тормашками", причем реверс не помогает. Этот артефакт можно побороть, если в полилинии включить "генерацию типа линий". Последний раз редактировалось VVA, 19.09.2015 в 22:56. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Вах-вах-вах! Позор на мою дурную голову! Я этого не знал! Вай-вай-вай!
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
>Profan # 76,78
По поводу учета толщины полилинии и DIMSCALE все решается через меню. Добавил панель "Ширина полилинии*Dimscale". Выложил в download. Обновление от 12.12.2007. Ссылка в 1 посте
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 13.11.2009 в 20:23. Причина: орфография |
||||
|
||||
Регистрация: 27.12.2007
Сообщений: 2
|
В файле новом файле dnl607.rar загружаемом со страницы http://dwg.ru/dnl/607 обновлены только history.txt, pltools.mnu и pltools.mns.
Все остальные файлы к сожалению от 13,03,2007 |
|||
|
||||
Да, пока так и есть. См. #83. Планирую обновления выложить после праздников. Основные отличия - переработаны алгоритмы оптимизации (прополки) полилинии + прополка (PL-VxRdc) восстанавливает дуговые сегменты. В данный момент переписываю алгоритм PL-DIV. Если успею, добавлю новую команду переноса сегмента полилинии по вертикали (а может и по горизонтали) с учем разных вертикальных и горизонтальных масштабов. Написал по заказу дорожников, для работы с профилями
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 27.12.2007
Сообщений: 2
|
Спасибо Вам огромное. Ваши программы увеличивают возможности автокада в несколько раз. Раньше пользовался ToolPack, теперь уже почти год Вашим пакетом. Работает отлично, без каких либо глюков и ошибок. Единственно где были проблемы, так это в программе VxRdc (с дугами, а также очень медленно работает при количестве точек порядка 7000). Проблему с дугами решил для себя заменив фрагмент:
if (or (and (vlax-method-applicable-p pl 'Getbulge) (zerop (vla-GetBulge pl (1- n)))) (not (vlax-method-applicable-p pl 'Getbulge)) (and (vlax-method-applicable-p pl 'Getbulge) (not (zerop (vla-GetBulge pl (1- n)))) pang )) На if (zerop (vla-GetBulge pl (1- n))) Очень рад что после праздников может быть будет оптимизация. Последний раз редактировалось plugins, 28.12.2007 в 15:43. |
|||
|
||||
Ну вот, свершилось. Выложил новую версию (обновление от 24.01.2008).
Кратко что нового: Новые команды PL-CSE -Объединение 2d полилиний по примитиву PL-SgWidth -Изменить ширину сегмента полилинии Переписан алгоритм PL-DIV и PL-DIVALL (теперь все делается геометрически) Переписана и оптимизирована PL-VxRdc (теперь восстанавливает и дуговые сегменты)
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Спасибо Владимир, Александр (KAI) мне уже сообщил. Обновил сборку (от 25.01.2008). Найденные Александром отсальные глюки (в основном при работе с тяжелыми [2d] полилиниями) устраню на досуге. Постараюсь не добавить новых.
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 25.01.2008 в 14:38. Причина: Склероз и невнимательность |
||||
|
||||
Регистрация: 30.07.2007
Беларусь
Сообщений: 101
|
(Продублировал с доунлоада)
А есть ли там функция объеденить в полилинию все отрезки на прямой? Или надо добавить? Например делаем сечение втулки, кольца, итд, чтобы сделать разрез нужно линии объеденить, joynt конечно помогает но было бы проще одним щелчком или с промежуточным подтверждением, чтобы убедиться что не захвачены линии не входящие в этот объект Загрузил прогу подключил, а то о чем писал один пост назад (объединение нескольких отрезков на одной прямой в одну сплошную полилинию у меня не получилось, команда (привожу дословно) ОБЪЕДИНИТЬ ВЫБРАННОЕ В 2d ПОЛИЛИНИИ , всего лишь ПРЕОБРАЗОВЫВАЕТ их, но НЕОБЪЕДИНЯЕТ! Никаких ошибок не сообщает. АКАД2007русифицированный(неРУС) |
|||
|
||||
Выложи сюда фрагмент чертежа.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Инженер дорожник Регистрация: 22.10.2007
Израиль
Сообщений: 1,859
|
Для объединения в полилинию пользуюсь макросом. Данный макрос позволяет не вязку линий, в данном случае 10 в плане. Само собой, что линии на разных уровнях и с разными координатами по Z начала и конца линии, а также 3D линии.
^C^C(progn(setq ssnab (ssget "_I"))(while (not ssnab)(setq ssnab (ssget)))(command "_pedit" "_Multiple" ssnab "" "_Y" "_Join" 10.00 "")); |
|||
|
||||
Инженер дорожник Регистрация: 22.10.2007
Израиль
Сообщений: 1,859
|
Посмотрел и ваш пример. Если речь идёт о трёх отрезках так между концами отрезков почти 500 мм. Концы отрезков должны совпадать тогда они объедятся через редактирование полилилнии объединить. Команда _join она продлевает и объединяет если отрезки лежат на одной прямой.
|
|||
|
||||
>rus22 Можешь воспользаваться макросом #94. В pltools есть справке, а в енй написано
Цитата:
Кстати твой отрезки прекрасно объединила новая команда PL-CSE с значением допуска 500
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 30.07.2007
Беларусь
Сообщений: 101
|
Блин сообщение с благодарностью куда-то делось
Спасибо за разъяснение ещё раз эти функции казались очевидными (объединение строк) в необходимости однако с наскоку не получилось, поэтому может в хелп стоит добавить пару строк, да и вообще комментировать в каких случаях большинство участвовавших каким-либо образом в разработке этого хорошего набора его применяют |
|||
|
||||
VVA, Только что узнал что PLtools это твоих рук творение. Я без нее давно AutoCAD не представляю. Спасибо большое.
Есть кое что в PLtools, что мне хотелось бы слегка подкорректировать. Когда добавляешь вершину в полилинию почему-то работает только привязка nearest, тогда как очень бывает нужно чтобы работали и другие привязки. Извиняюсь если этот вопрос уже обсуждали. Форум весь я не читал. |
||||
|
||||
Это связано с тем, что за один раз указывается точка и по этой точке выбирается полилиния. Привязки действуют, но только временные. Нажми Shift+ правый клик и выбери нужную.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
_.break, что ли?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
>Red Nova И что остается потом?
Если 2 полилинии, то _.break
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Цитата:
|
||||
|
||||
Остекляем!!! Алюминим!!! Регистрация: 21.02.2005
Москва
Сообщений: 3,824
|
Угу, вот только еще удаляет то что не надо удалять, да и 2 клика нужно
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search: |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Ну если сильно хочется одним кликом, попробуйте:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Когда kpblc вылезает с entsel'ом с последующим vl-ename->vla-jbject'ом, у меня начинается изжога с скердцебиением. А потому - мои бесценные два цента.
Код:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Лентяй, ну побереги уж себя, нам и так без тебя скучно
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Profan, я по скудости личного кошелька пользуюсь все еще AutoCAD-2005, поскольку на работе мне АвтоКад не положен. А посему. активно пользуюсь удобства ради одним собственноручно открытым багом - заменой имени функции именем переменной. В данном случае, например,
Код:
Код:
Код:
Последний раз редактировалось Лентяй, 16.03.2008 в 04:37. |
|||
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Лентяй, мой личный кошелек тоже скуден, поэтому дома я работаю на чем попало, хоть на 2009. На работе мне продукт положен, однако, из-за скудости кошелька руководителя конторы приходится тоже работать на чем попало, хоть на 2009. Но это временное явление. Стремясь стать независимым служащим, я уже приобрел две коробки с Windows XP HE.
Последний раз редактировалось Profan, 16.03.2008 в 04:56. |
|||
|
||||
Приветствую вас, а можно сделать так чтоб после запуска команда PL-CSE с допуском например 3.5, при повторном запуске сохраняла ранее введенное значение допуска <3.5>, а не сбрасывала его на <0>?
И незнаю, насколько это возможно, сделать алгоритм соединения зависимым не только от "допуска", но и от min величины "угла" примыкания соединительного отрезка. [IMG]http://img522.**********.us/img522/6158/sdgn4.th.jpg[/IMG] |
||||
|
||||
Про запоминание значения не проблема, а про "угол" надо подумать. Вся проблема в алгоритме.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 26.06.2007
Воронеж
Сообщений: 151
|
У меня в AutoCAD 2005 (и в 2008) всё равно не хочет объединять все сегменты, даже если первый или последний выбрать! То часть сегментов определит, то только слева направо от выделенного. Ну а Bricscad вообще отказался работать =)
Последний раз редактировалось Tonic, 28.03.2008 в 12:31. |
|||
|
||||
Изменил код в #121 Пробуй снова. BricsCad не поддерживает Visual LISP
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Не совсем так. 8-ка ActiveX уже поддерживает. Правда, не в полном объеме, там надо практически построчно проходить выполнение.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
геологоразведка, строительство Регистрация: 14.10.2003
Магадан
Сообщений: 311
|
Запускаем:
Command: css Выбрать линию в цепи : Значение допуска < 0.01 >: _.redraw Command: _pedit Select polyline or [Multiple]: _M Select objects: 10 found Select objects: Enter an option [Close/Open/Join/Width/Fit/Spline/Decurve/Ltype gen/Undo]: _j Join Type = Both (Extend or Add) Enter fuzz distance or [Jointype] <0.010>: _j Enter join type [Extend/Add/Both] <Both>: _b Join Type = Both (Extend or Add) Enter fuzz distance or [Jointype] <0.010>: 0.010000000000000 9 segments added to polyline Enter an option [Close/Open/Join/Width/Fit/Spline/Decurve/Ltype gen/Undo]: Command: ._select Select objects: 1 found Select objects: Command: Мур-мур бы убрать... И в добавок. Гораздо интереснее было бы соединять в полилинию только те объекты, которые ближе к выбранному концу объекта, а с другого конца объекта их игнорировать. Или может быть оформить это опциями (All по умолчанию, Next - только ближайшие к концу). И по окончанию работы программы - статистику (сколько объединено объектов). p.s. В PL-CSE (pltools) то же было бы неплохо "загрипсовать объект".
__________________
Лень - великий двигатель прогресса! |
|||
|
||||
Регистрация: 21.03.2008
Сообщений: 1
|
Спасибо авторам за ОЧЕНЬ нужные программы!
А возможно ли такое? Сгруппировать полилинию с пересекающими ее объектами (отрезками, блоками). при этом разворачивая углы полилинии на 180 (очень бы помогло для построения развернутого плана трубопроводов). |
|||
|
||||
В №121 обновил команду CSS. По моему получилось неплохо. Можно рассатривать как кандидат на замену PL-CSE.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
>Tonic см. #124. Я пока ориетнируюсь на Автокад.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
геологоразведка, строительство Регистрация: 14.10.2003
Магадан
Сообщений: 311
|
>>VVA
А где _VXGRDRAW? Выбрать линию в цепи :; error: no function definition: _VXGRDRAW Добавьте, пожалуйста! p.s. Опции устраивают. p.p.s. А когда будет обновление сборки pltools. Народ любит обновления любимых программ.
__________________
Лень - великий двигатель прогресса! |
|||
|
||||
_vxgrdraw mip_grdraw добавил в #121. Если устраивают опции, их содержание и вид, то обновлю функционал PL-CSE.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Лично меня PL-CSE устраивает больше.
1. CSS прекращает соединять элементы в цепочку после соединения "разрыва". 2. В CSS очень муторно высматривать куда ткнуть мышой чтоб угадать ближайшую вершину в отрезке, в PL-CSE просто указываешь первый и все. |
||||
|
||||
геологоразведка, строительство Регистрация: 14.10.2003
Магадан
Сообщений: 311
|
>> VVA (не сочтите занудой, но...)
Теперь потерялась функция pl(двоеточие)DTR (извини, вставил сам для просмотра) 1. По умолчанию лучше дать опцию "Обе" 2. Строить цепочку от ближайшей точки [Ближайшая/Противоположная/Обе] <Ближайшая>: - здесь чуть-чуть не по русски. Может так: Соединять от ближайшей точки [Ближайшей/Противоположной/Все] 3. Застарелая проблема. Пока 2 раза не нажмешь U - действие команды не отменится. 4. Строить цепочку от ближайшей точки [Ближайшая/Противоположная/Обе] <Ближайшая>: Нажимае Esc, далее: *Cancel* ; error: Function cancelled Это уже лишнее, пользователь и так ее явно прервал. 5. Выбрать линию в цепи : Строить цепочку от ближайшей точки [Ближайшая/Противоположная/Обе] <Ближайшая>: G Invalid option keyword. (Но тем не менее все идет далее...) Значение допуска < 0.01 >: 6. Значение допуска лучше задать 0.0 (будем приучать пользователей к точности). 7. Рисуем несколько линий, у одних задаем в общем узле отметку Z отличную от 0. Запускаем программу по опции "Обе". Грипсы по всей цепочке линий (пользователь думает, что соединено!), но соединяет, естественно только линии с Z=0. 8. И наконец, было бы неплохо, если последняя опция, выбранная пользователем, сохраналась, например, он выбрал "Ближайшая", вот и пусть при повторном запуске программы ему и была предложена эта опция.
__________________
Лень - великий двигатель прогресса! |
|||
|
||||
VVA, По поводу #121. У меня не работает.
Запускаю команду CSS Цитата:
Я путаю что должна делать CSS, а что DTR. При команде DTR Цитата:
Как я понял основная задумка в том, чтобы нажав скажем на линию, все объекты которые концами образуют с ней цепочку соединялись. Я правильно понял? У меня так не выходит. |
||||
|
||||
> Red Nova Я добавил эти ф-ции в #121. А вообще они все есть в pltools, поэтому достаточно вызвать любую команду pltools, а затем CSS. У меня все грузится автоматом, поэтому кое-какие библиотечные ф-ции вечно забываю.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
VVA, Ты меня только запутал.
Цитата:
Что должна делать команда CSS? У меня pltools есть, вызываю любую команду потом CSS, и нечего Цитата:
|
||||
|
||||
Новая версия CSS. С учетом замечаний KAI кроме №7 и Red NOva #145
Код:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 09.04.2008 в 13:48. Причина: Новая версия |
||||
|
||||
инженер Регистрация: 03.04.2008
СПб
Сообщений: 45
|
Мне нужно преобразовать полилинию в дуговой сегмент. ПРоги я отсюда скачала, сделала, как написано в сопроводиловке txt, но что значит "активировать панель" я не поняла. Раньше я программированием и 3D не занималась, но теперь диплом делаю, так что приходится осваивать.. |
|||
|
||||
>nastasja "активировать панель" - значит сделать панельку с кнопками видимой.
Цитата:
>Cfytrr Кинь примерчик на почту.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
VVA, Есть пожелание по поводу CSS. Обычно когда соединяют объект к другому, то свойства первого передаются второму. Только что пробовал соединить дугу к полилиние (первый объект - дуга). Так в этом случае соединенная полилиния принимает свойства второго объекта. Лучше бы было если бы тут все было как в обычном join.
|
||||
|
||||
Здесь обсуждаются предложения. Это не значит что я немедленно брошусь все исправлять/дописывать. У меня тоже есть работа. Предложения берутся на заметку и исправляются/доделываются в следующей версии. Если это действительно очень важно, то обновил код в #140 с учетом твоих пожеланий и замечаний KAI #135, кроме №7
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Не стреляй, здаюсь. Просто думал ты не счел это важным, раз не ответил.
Удалил постыдное сообщение, раз оно тебя так разозлило. Лисп опробовал, все работает. Большое спасибо. Последний раз редактировалось Red Nova, 10.04.2008 в 12:34. |
||||
|
||||
Nikolays,
1. Что выдает при попытке вызвать команду? 2. Попробуй в командной строке набрать _appload и загрузить pltools.fas из папки PLTOOLS, потом вызвать какую-либо команду 3. Тоже самое по п.2, только загрузи файл pltools.lsp из подпапки LISP папки PLTOOLS
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
INJENER Регистрация: 03.05.2007
Kazakhstan
Сообщений: 161
|
это всё я сделал,но при выполнении команд выдаёт сообщение:ERRNO # 0: no function definition: nil,Выберите Полилинию, Сплайн или Отрезок для реверса <хватит>:ERRNO # 2: no
function definition: VLAX-ENAME->VLA-OBJECT,*error* functionAutoCAD variable setting rejected: "CMDECHO" nil |
|||
|
||||
В PLTOOLS (vl-load-com) грузится автоматом при загрузке файла.
Nikolays, 1. Скопируй или набери в командной строке (vl-load-com) 2. Затем (vlax-get-acad-object) Должно возвращать что-то типа #<VLA-OBJECT IAcadApplication 00c2eb8c> А у тебя что пишет?
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
INJENER Регистрация: 03.05.2007
Kazakhstan
Сообщений: 161
|
при запуске команды"vl-load-com"выдаёт сообщение:Команда: vl-load-com
Unknown command "VL-LOAD-COM". Press F1 for help при запуске команды"vlax-get-acad-object":выдаёт сообщение:Unknown command "VLAX-GET-ACAD-OBJECT". Press F1 for help. |
|||
|
||||
Что еще могу посоветовать:
1. Попробуй скачай последнюю версию 2. Создай новую учетную запись и попробуй в ней 3. попробуй pltools на другой машине
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
геологоразведка, строительство Регистрация: 14.10.2003
Магадан
Сообщений: 311
|
Мистика, однако!
__________________
Лень - великий двигатель прогресса! |
|||
|
||||
VVA,
Цитата:
__________________
Блог |
||||
|
||||
Red Nova, см. пост #1
Nikolays, Еще пара советов в порядке предпостения: 1. Попробуй на своей машине завести новую учетную запись и попробывать там pltools (рекомендация #154 №2) 2. Попробывать удалить Автокад и поставить снова.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Offtop: Теперь 1-й пост прикрепляется вверху каждой страницы. Удобно
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
А п.2 из #158 ?
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
джедай Регистрация: 31.01.2005
Магадан
Сообщений: 460
|
а такое добавить не хотите?
бывает нужно провести часть полилинии по уже существующему контуру/контурам хотелось бы нечто очень юзер-френдли - рисую полилинию стандартной командой, нужно провести по существующему контуру, запускаю команду, тыкаю начальную точку, тыкаю конечную, продолжаю рисовать полилинию. Будете такое добавлять?) |
|||
|
||||
геологоразведка, строительство Регистрация: 14.10.2003
Магадан
Сообщений: 311
|
Забыл ТУ:
Координаты начала новой полилинии по первой точке исходной полилинии (координаты в UCS). Далее точки новой полилинии должны идти в плоскости UCS, естественно, что если прежняя полилиния не находится в этой плоскости, то ее точки должны проецироваться на плоскость UCS. Для нас дуги на исходной полилинии можно игнорировать, но лучше их сохранять, мало-ли кому это важно. Начало не мешало-бы пометить крестиком. Привязка при указании 1-й и 2-й точки на исходноий полилинии по умолчанию - END, но возможны и другие, выбираемые пользователем (NEA, MID и др.)
__________________
Лень - великий двигатель прогресса! |
|||
|
||||
Димас, KAI, Вычлинить из готовой полилинии набор сегментов не проблема. По принципу PL-CLONE, только там выделяешь сегменты, а здесь начало и конец. Я пока не знаю как "скрестить" стандартную команду рисования полилинии, возможность добавления некоторого количеста вершин и затем опять продолжения рисования полилинии ?
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 22.06.2008 в 11:04. Причина: Орфография |
||||
|
||||
геологоразведка, строительство Регистрация: 14.10.2003
Магадан
Сообщений: 311
|
>>VVA
А если немного упростить вышесказанное (кстати, на это и указывал Димас): 1. Начинаем на исходной полилинии. 2. Задаем 2-ю точку на исходной полилинии. 3. Дальнейшее указание точек новой полилинии (опции команды PLINE не нужны, показ новой виртуальной полилинии весьма приветствуется), то есть только прямые сегменты для новой полилинии , + опция 'Замкнуть'. 4. При отказе от новой точки или по Close отрисовывается новая полилиния (сначала от 1-й до 2-й точки исходной, а затем, по заданным пользователем точкам). Можно по Esc (+ опция Exit) сделать так, чтобы новая полилиния не отрисовывалась.
__________________
Лень - великий двигатель прогресса! |
|||
|
||||
инженер Регистрация: 13.12.2004
Минск
Сообщений: 496
|
VVA сейчас в отпуске отвечу за него.
1. Мое мнение всунуть эту возможность в именно в стандартную команду отрисовки полилинии не получется, я видел как это работает в другой программе, там собственная команда создания полилиний (контуров) с возможностью трассировки по другому контуру. 2. Скорее всего прийдется писать заменитель стандартной команды. Выглядеть он будет примерно так: - Будут запрашиватся точки вершин будущей полилинии, с опциями полилинии, но в место полилинии создавть временную геометрию (отрезки, дуги) с включением их в набор - Будет опция трассировки по существующему контуру, т.е. от точки начала трассировки по контуру до точки конца трассировки по контуру - В случае замкнутого контура дополнительно прийдется задать сторону по которой пройдет трассировка, создается временное построение трассировки по контуру включаемое в набор - далее продолжаем ввод координат вершин полилинии с опциями полилинии или трассировку по другому контуру, опять же со временными построениями с включениями в набор. - по окончанию построений все объединяется в одну полилинию. В качетсве настроек цвет временных построений и толщина (вес) линий для визуального наблюдения. Сложности будут при переходе трассировки с одного контура на другой в точке их пересечения (может быть точкой пересечения множества контуров), возможно дополнительно прийдется указать тот контур по которому будет осуществлятся трассирование далее. Кроме того возможно понадобится трассировка по контуру блока, сплайна и т.п. Но в общем цель ясна, покожу VVA на примерах. Кто хочет или знает как лучше дополняйте. |
|||
|
||||
Do$, Спасибо, выйду из отпуска - исправлю. А пока можно делать так, как написано в readme.txt:
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Конструирование в области нефтеразведки Регистрация: 10.02.2006
Гомель
Сообщений: 321
|
Цитата:
Код:
Пример ниже показывает, что это возможно. Акцентирую внимание - это пример, а не готовая функция, т.к. в нем пока не решен вопрос, какую часть полилинии брать если точка выбрана в пересечении сегментов полилинии, ну и не стал заморачиваться с выбором первой точки - новая полилиния строиться от начала и до точки указанной пользователем с продолжением рисования... Код:
|
|||
|
||||
Конструирование в области нефтеразведки Регистрация: 10.02.2006
Гомель
Сообщений: 321
|
Решил внести в PLTOOLS и свой вклад...
Прошу потестировать программу, сделанную по мотивам #162 : Код:
Последний раз редактировалось CB, 01.09.2008 в 16:00. Причина: Теперь можно работать и в UCS, а не только в WCS... |
|||
|
||||
Это мой тестовый чертеж для pltools. Прислал в свое время KAI. Ругается на синюю полилинию, что точка не на ней.
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 01.09.2008 в 16:08. |
||||
|
||||
сегодня заметил что в 2009 Акаде x64 не работают команды:
PL-VxAdd, ConvTo3d, пишет: ; warning: unwind skipped on unknown exception. Остальные команды вроде работают... На 32 битной версии все работает нормально |
||||
|
||||
К сожалению пока не на чем проверить, но возьму на заметку.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
геологоразведка, строительство Регистрация: 14.10.2003
Магадан
Сообщений: 311
|
>> VVA
А помнится, кто-то обещал "намедни" выложить обновленный pltools с исправленными багами и дополнениями? Переписку напомнить? Народ ждет давно. Это семейство программ им очень нравится. p.s. А командировки только в Москву? А в Магадан? Готов поделиться комнатой и даже сдать в аренду Мурзика (для сугрева и сняния напряжения).
__________________
Лень - великий двигатель прогресса! |
|||
|
||||
Про PL-VxAdd
Единственное что мне в этой команде раньше казалось неправильным было то что привязка во время работы команды отключалась, по моему это создает лишнее неудобство, но со временем, освоив азы лиспа, я это у себя подправил, поменяв в коде строку с osmode на ("osmode" 16383), чего всем и рекомендую, в таком случае будут включены все привязки. Ну или можно вообще не трогать привязки, и удалить соответствующие строки из кода. Хотелось бы чтобы код изначально был таким.
__________________
Блог |
||||
|
||||
Sleekka, Ты файлик покажи (или пришли на почту) где эта ошибка появляется.
2. Помсмотрю
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
VVA, а вот скажи, 3D полилинию в сплайн переделывать надо? В смысле с радиусами в вершинах? Я тут сплайны расковырял и в принципе уже могу и дуги и прямолинейные участки делать через entmake сплайнами. Погрешность очень не велика и ее можно сокращать увеличением количества точек на дугах. Вот сижу и ломаю голову, надо это, или не надо.
|
||||
|
||||
- Регистрация: 24.07.2005
Москва
Сообщений: 1,335
|
Вообще-то конвертация полилинии в сплайн решает задачу сглаживания, но сколько я не глядел как отцы подходят к этой задаче, они получают точки как для сплайна а потом по ним все равно полилиния делается видимо обосновано простотой примитивов.
|
|||
|
||||
Supermax, Это у народа нужно спрашивать. Но раз ты расковырял сплайн, то может будет интересна еще и задача апроксимации сплайна полилинией с дуговыми сегментами.
Sleekka, Да, сплайн "тяжелый" для Автокада примитив.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Cfytrr, Скоро на работе поставят поставят Висту 64 для ананализа работоспособности наших программ по ней. Тогда посмотрю в чем там дело.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
VVA, перевести сплайн в 3D полилинию можно, поскольку имея представление как строится сплайн Автокадом, можно высчитать ряд точек и провести но ним 3D полилинию, но вот имея ряд точек, определить нужна ли там дуга или нет? - Так можно на каждые три точки, которые не лежат на одной прямой дуги лепить.
Короче, с дугами затык. Потом, сплайн очень коварная штука. В любой момент может выскочить "холмик", который можно описать только очень большим количеством точек, а все остальное может быть просто прямой. Но, мне кажеться, я где-то уже видел такую прогу. |
||||
|
||||
Денис Флюстиков, Спасибо, посмотрю.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 24.03.2005
Сообщений: 320
|
Сложный прямоугольник
Может это под автокад возможно заточить: « При создании объекта способом "Сложный прямоугольник" вначале вводятся две точки - самая длинная боковая сторона создаваемого объекта, а затем - остальные вершины прямоугольника (через одну). Точки указываются на экране курсором и вводятся нажатием левой кнопки мыши. Промежуточные точки создаются автоматически на пересечении прямой, параллельной первой линии (и проходящей через текущую точку) и перпендикуляра к первой линии, проходящего через предыдущую точку. Таким образом, перпендикулярность всех граней создаваемого объекта (в том числе и последней, замыкающей) отслеживается автоматически.» Я так и не понял, как замыкать этот прямоугольник, вероятно после клика №4 должен следовать правый клик, который задаёт удаление грани «А» от первоначальной грани |
|||
|
||||
Neznayka,
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 24.03.2005
Сообщений: 320
|
C точкой 5 имхо плохо, т.к точности не будет (ну если только объектное отслеживание включить).
По принципу "облака" то же хорошо, но будет лишний клик (по т.1) и точка 5 будет "плавать", т.е. её привязкой точно не посадишь, ведь точка 5 все равно будет на перпендикуляре к стороне 1-2. Я чётко излагаю или надо детальный чертеж в районе т.5. Надо реализовать вариант незамкнутости, и что делать с методом т.5 если надо чтоб продолжить полилинию за грань 1-5, т.е полигон будет с самопересечением (это для тех кто не только домики рисует) И самый главный вопрос: ВОЗЬМЁТЕСЬ за это? |
|||
|
||||
zamtmn, Уже исправил. Постараюсь на днях выложить новую версию.
Neznayka, Буду думать
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Neznayka, В качестве первого приближения
Код:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 24.03.2005
Сообщений: 320
|
Ура!!! Вот счастье-то какое.
Пока оттестировать досконально нечем, серьёзных замечаний я не вижу, так только по мелочи: 1. Нажатие на esc во время выполнения команды УДАЛЯЕТ ВСЕ ранее созданное. А не прерывает команду. 2. Очень желательно чтоб во время отрисовки перекрестье было временно повернуто согласно грани 1-2. 3. Не помешало бы видеть саму полилинию во время создания «колена», а не наблюдать её появления как свершившийся факт после клика. 4. Почему Вы решили, что замыкание по нажатию на пробел более удобно чем просто правый клик, если потому что реализовать программно правый клик труднее, то у меня вопросов нет. Впрочем правый клик это на любителя Последний раз редактировалось Neznayka, 02.04.2009 в 22:27. |
|||
|
||||
Цитата:
Кстати правый клик тоже обрабатыватся. И что делать тогда по нажатию на пробел.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Вариант 2
Код:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Neznayka, Тогда не будет опции Отмени.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Neznayka, Ctrl+Z будет. Не будет отмены, если не устраивает указанная вершина.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Еще один вариант: замкни пробелу или выбор опции по ПКМ, ESC - выход (на предыдущий уровень).
Код:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 06.04.2009 в 17:03. Причина: Изменено по предложению #206 |
||||
|
||||
Регистрация: 24.03.2005
Сообщений: 320
|
Все супер, но тут сейчас коллега вносит предложение…
(я конечно понимаю, что наглость второе счастье Короче коллега говорит, а нельзя ли сделать, чтоб можно было дуги рисовать и или произвольные (неортогональные линии) рисовать. Типа кликнул правой и выбрал в контекстном меню пункт «дуга», нарисовал её и дальше в прежнем режиме или нажал шифт и рисуй линии под любыми углами , а как отпустил снова автоматом включается нормальная работа лиспа. p/s по-русски drec это вкус СПАСИБО!!! |
|||
|
||||
Neznayka, Изменил #205
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 24.03.2005
Сообщений: 320
|
Все. У меня и придраться не к чему.
ОГРОМНОЕ ВАМ СПАСИБО! p/s помните, я просил лисп для отрисовки прямоугольника по 3 точкам. так этот новый лисп заменяет тот старый, только на пробел придется жать. добавлю после активного юзанья лиспа: во-первых (извиняюсь за фразу) я "кипяточком писаю" от drec, но вплыло пару мелких недочетов. 2. в лиспе нужно предусмотреть "реверс" иногда он "колено" не в ту сторону заворачивает, типа нажал клавишу и "колено" перевернулось. Если непонятно о чём я. то могу скриншот выложить. 3. лисп во время отрисовки любит прятать полилинию под растр, неудобно когда не контролируешь что чертишь. 4 иногда (когда еще не понял) создаются полилинии нулевой длинны еще раз спасибо. Последний раз редактировалось Neznayka, 08.04.2009 в 23:36. |
|||
|
||||
MeshIN, Все зависит, настколько полно BricsCad поддерживает vla-методы и объектную модель. Пока что я знаю, что именно при использовании VLA-* были проблемы. Хотя в BricsCad V9 заявляют
Быстрое ядро LISP с поддержкой более 450 VLAX функций Но все равно нужно пробовать
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Изыскания и САПР Регистрация: 05.07.2008
Ижевск
Сообщений: 297
|
Цитата:
|
|||
|
||||
Инженер Регистрация: 27.04.2009
Deutschland
Сообщений: 208
|
В 2010-м автокаде под вистой 64х проблема-не вставляются панели и кнопки, команды обрабатывается только при их тупом вводе в командной строке после тупой же загрузки исходного лиспа.
В 2009-м была проблема с установкой, но там надо было влоб ткнуть на фас-приложение при загрузке и потом выбрать уже в настройках меню и команд, и все встало на свои места кроме файла помощи. Кто-нибудь сталкивался с такой проблемой? И второе, в версии автокада Lite будут работать эти команды или там табу на лисп-приложения? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Первое. См. http://forum.dwg.ru/showthread.php?p=398240#post398240
Второе. Не будет. LISP в AutoCAD LT не поддерживается и поддерживаться не будет.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
VVA, привет! Официяльное обращение.
Нужна функция, которая делает обратное CVPOLY, превращает 2D полилинию в 3D полилинию. И еще нужна функция, добавляющая в 3D полилинию вертикальный участок. Вот есть на 3D полилинии узел, надо ткнув в него и определив знак "+" или "-" добавить либо со строны конца 3D полилинии, либо со стороны начала еще один узел. Его координаты по X и Y такие же как и у прежнего узла, а по Z строится отрезок заданной длинны. Если смотреть на план с геоподосновой, то ткнув в узел как-бы ничего не произойдет, просто в этом месте появится вертикальный участок, где два узла окажутся друг над другом. Данная функция нужна всем, кто прокладываетнаружные сети. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Supermax, ты только уточни - а какая-нибудь часть полилинии поднимается / опускается или нет? И если да, то как определять?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Цитата:
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Ну, дык, я ж написал про "+" и "-"
VVA, так не честно! С утра в первом посте совсем другой список был, а лезть в библиотеку функций мне было лень, понадеялся на соответствие. Кулик Алексей aka kpblc, Цитата:
Последний раз редактировалось Supermax, 20.05.2009 в 18:18. |
||||
|
||||
Давай так. Есть 3d полилиния с началом в т. 0,0,0 и координатами вершин: (0 0 0) (10 10 10) (30 20 0)
Я указал 2 вершину (10 10 10) и набрал +30. Получаем полилинию с координатами вершин (0 0 0) (10 10 10) (10 10 40) (30 20 0) Я указал 2 вершину (10 10 10) и набрал -30. Получаем полилинию с координатами вершин: ?
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
VVA, возможны варианты: при вводе хоть "+", хоть "-" можно получить разные значения:
'((0. 0. 0.) (10. 10. 10.) (10. 10. 40.) (30. 20. 0.)) '((0. 0. 0.) (10. 10. 10.) (10. 10. 40.) (30. 20. 30.)) Какой из них будет верным?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Цитата:
Все правильно. Добавляем точку только вперед по ходу полилинии. |
||||
|
||||
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 29.05.2009 в 10:28. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
ALEXGVOZ, я два твоих поста удалил как "не в тему", тебе мало?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
сп. САПР, архитектор Регистрация: 25.05.2008
Санкт-Петербург
Сообщений: 116
|
в приложенном файле протестировал команды entrev и entrevs
красным цветом выделено, то что этими командами не обрабатывается совсем или частично. Возможно ли подкорректировать команды, чтобы обрабатывались и объекты красного цвета? Обратите внимание на полилинию под зеленым текстом. Возможно ли чтобы программа делала стрелки одного направления? С полилиниями под зеленым текстом справился - если в свойствах поставить для linetype generation - enable то команды все обработали правильно Последний раз редактировалось Yuriy-I, 26.05.2009 в 00:27. |
|||
|
||||
Yuriy-I,
Цитата:
*** Добавлено *** Нужен совет. В принципе при реверсе можно проверить, что если есть дуговые сегменты и тип линии не continuous то включить программно генерацию типа линии. Но будет ли это корректно?
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 27.05.2009 в 09:23. Причина: орфоргафия |
||||
|
||||
сп. САПР, архитектор Регистрация: 25.05.2008
Санкт-Петербург
Сообщений: 116
|
VVA,
Цитата:
Если добавить эту возможность опционально, то все будет корректно варианты 1. первоначальный вопрос программы может быть Command: entrev Выберите Полилинии, Сплайны и Отрезки для реверса Ltgen=No <сменить режим> Select objects: ... Если нажать enter вместо выбора объектов то режим меняется Выберите Полилинии, Сплайны и Отрезки для реверса Ltgen=Yes <сменить режим> Select objects: ... 2. если присутствуют дуговые сегменты то появится дополнительный вопрос менять генерацию типа линии или нет 3. ... |
|||
|
||||
Disney, Можешь объяснить алгоритм получения средних точек?
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
VVA, алгоритма не нашёл, но суть такая:
Как-то надо разбить границу 1 на элементарные отрезки, и найти им пару(соответствие) на границе 2, и по каждой паре произвести MPL. И ещё, чтоб в независимости, от того какая из двух границ выбрана в качестве границы 1, результат был одинаков.
__________________
Почему все вдруг становятся умными, когда уже не надо? |
||||
|
||||
Да, я то сделал, и признаусь простые панели было проще создавать, а вот они как раз есть в данной сборке, но тогда можно было и их не делать, дали бы только список команд, а вы как хотите так сами адаптируйте.
__________________
Почему все вдруг становятся умными, когда уже не надо? Последний раз редактировалось Disney, 16.06.2009 в 05:35. Причина: файл забыл прикрепить |
||||
|
||||
Цитата:
Еще один вариант от LEE MAC'а Lisp to create polyline between polylines И графическая демонстрация
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 28.09.2016 в 14:43. |
||||
|
||||
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
kozko, Я проверил на 2010 RUS - работает. В чем выражается "неработа" этих кодов?
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 26.06.2007
Воронеж
Сообщений: 151
|
VVA, неплохо было бы ещё добавить функцию разбиения полилинии в указанных точках. Т.е. что-то вроде (PL-RAZ pline point_list) - в результате из одной полилинии получается 2 (или 3, если 2 точки, и т.д.). Возвращался бы список полилиний. Иногда бывает нужно.
|
|||
|
||||
Регистрация: 24.05.2009
Екатеринбург
Сообщений: 86
|
VVA,
может вы и видели этот набор команд PlineTools (DeliCAD) для работы с полилинией. Может вас заинтересуют ряд идей в этом пакете, чтобы дополнить свой набор, мне очень понравились операции с частью полилинии. Недостаток PlineTools, что он на 30 запусков. |
|||
|
||||
Регистрация: 31.07.2009
Минск
Сообщений: 40
|
Отличный набор функций. Полезный. Но...
В работе часто нужно присоединить какие-либо данные к только что созданной полилинии. Пока что приходится создавать полилинию стандартными командами AutoCAD'а и затем запускать самописную функцию для присоединения данных. Было бы очень удобно делать это заодно, из одной функции. Т.е. нужна функция, которая бы имитировала для пользователя стандартную команду _pline и возвращала указатель созданной полилинии или nil, если полилинию создать не удалось... PS: К сожалению сам временем не располагаю, посему подкидываю идею сообществу. PPS: очень вероятно, что эта задача уже реализована...
__________________
Там всё есть для счастья, меня там только нет, Так это значит, что я там - буду! Последний раз редактировалось Игорь Костюкович, 18.12.2009 в 09:39. |
|||
|
||||
Игорь Костюкович, Привет Игорь Могу предложить программу Алексея LISP. Расширенный вариант отрисовки Нужно только немного модифицировать функцию _kpblc-draw, чтобы возвращала результат или не модифицировать, а перед вызовом запомнить последний примитив и сравнить с последним примитивом после вызова.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 31.07.2009
Минск
Сообщений: 40
|
VVA, спасибо, но... Слишком "расширенный" вариант. Из-за нехватки времени даже свой код писать некогда, не то что разобирать чужой. Автору - kpblc - отдельное спасибо.
Neznayka, хотя бы потому, что я понятия не имею, что такое гиперссылка. С таблицами не работаю. Пользую AutoCAD Map, там есть готовые механизмы присоединения к примитиву данных и хранения их в dwg - объектные данные (данные объекта). Именно с ними и работаю...
__________________
Там всё есть для счастья, меня там только нет, Так это значит, что я там - буду! |
|||
|
||||
Цитата:
Код:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 31.07.2009
Минск
Сообщений: 40
|
VVA, спасибо, именно то, что нужно. Серьёзно не тестировал (снова ссылаюсь на недостаток времени), но основное своё назначение функция выполняет на 100%. С меня
Nikolay 2, присоединять данные к функции? У меня изначально стояла задача присоединения данных к примитиву. В данном случае примитиву, созданному приведенной выше функцией...
__________________
Там всё есть для счастья, меня там только нет, Так это значит, что я там - буду! |
|||
|
||||
Регистрация: 27.02.2008
Сообщений: 140
|
|
|||
|
||||
геологоразведка, строительство Регистрация: 14.10.2003
Магадан
Сообщений: 311
|
Володя, вылетела из головы эта ветка. Написал предложения в http://dwg.ru/dnl/607.
__________________
Лень - великий двигатель прогресса! |
|||
|
||||
Остекляем!!! Алюминим!!! Регистрация: 21.02.2005
Москва
Сообщений: 3,824
|
VVA, а можно ввести такую фичу, есть несколько отрезков которые разбросаны по чертежу, требуется объединить их в одну полилинию.
ps можно ввести запрос на создание нового объекта и поворачивать ли исходные объекты при построении нового объекта. Draw.dwg
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search: |
|||
|
||||
Регистрация: 26.12.2009
Сообщений: 8
|
Помогите пожалуйста!
Нужна команда на основе rectangle, которая бы рисовала прямоугольник, но не по крайним 2 точкам, а по 2 точкам соединиющим центры противоположных сторон прямоугольника, с возможностью задать ширину этого прямоугольника. Еще поясню: забиваю эту команду, ставлю точку по оси, задаю ширину прямоугольника, ставлю вторую точку по оси и бац готова стенка! Еще желательно, присоеденить функцию прорисовки линии по которой эти две точки соединяются. Примногоблагодарен за ранее! Спасибо, zenon'у. Со всем разобрался. Последний раз редактировалось KickeR, 28.04.2010 в 14:42. |
|||
|
||||
В добавок к mline можно лиспом OFF2 или MOFF2 из этой темы LISP. Подобие в обе стороны
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Дизайнер-конструктор Регистрация: 29.05.2004
Kiev
Сообщений: 1,187
|
Подскажите, как объединить в одно целое комманды:
PL-JOIN и PL-VxRdc Объединение полилиний чохом и Удаление вершин полилиний, которые лежат на одной прямой т.е. есть ,например, несколько половинок симметричной детали. я их mirror- ом каждую половинку. Затем PL-JOIN объединяет их в одно целое, а затем, чтобы не вызывать комманду PL-VxRdc и заново не указывать эти же объекты, хотелось бы автоматически "прополоть" эти линии
__________________
Kiev, Ukraine |
|||
|
||||
Комплексные системы безопасности Регистрация: 05.01.2010
Санкт-Петербург
Сообщений: 14
|
Здравствуйте!
Помогите,пожалуйста,решить задачу... Не осилил всей переписки данной темы, но думаю, что мой вопрос будет интересен и все еще актуален! В процессе рисования пожарного шлейфа полилиниями(кусками), в некоторых местах полилинии пересекаются , где-то не доходят друг до друга,где-то соединяются в вершинах(рисунок ниже) и т. п. ВОПРОС Как будет выглядеть код на ЛИСП, который помог бы реализовать следующее: чтобы при выделении левой кнопкой мышки всех кусков полилиний они объединялись в одну полилинию, отсекались все ненужные кусочки(на рисунке выделено красным цветом), происходило соединение полилиний в местах с зазорамим. На рисунке показан желаемый резельтат. Спасибо, жду скорейшего комментария. Рисунок:
__________________
Скупой платит дважды! Пойду работать к скупому! :D |
|||
|
||||
Комплексные системы безопасности Регистрация: 05.01.2010
Санкт-Петербург
Сообщений: 14
|
Да не скажи, не все так просто...
Привязки мешают так же очень хорошо , как и помогают Мне,например,приходится часто отключать некоторые привязки. После того как шлейф(полилиния)нарисован единым куском, регулярно вносятся изменения: где-то обрезается,добавляется и в спешке появляются вышеописанные косяки. ПОЭТОМУ необходимо одним махом все подправить
__________________
Скупой платит дважды! Пойду работать к скупому! :D |
|||
|
||||
Дизайнер-конструктор Регистрация: 29.05.2004
Kiev
Сообщений: 1,187
|
alex8888, в том то и дело, что выбереться только ОДНА ЛИНИЯ
А если я спаивал PL-JOIN нескеолько полилиний, то результат , как ты советуешь, не подходит Хотелось бы , чтобы "пропалывалось" PL-VxRdc все полилинии
__________________
Kiev, Ukraine |
|||
|
||||
Остекляем!!! Алюминим!!! Регистрация: 21.02.2005
Москва
Сообщений: 3,824
|
VVA, еще раз повторю свой вопрос
http://forum.dwg.ru/showpost.php?p=519747&postcount=256 много раз нужно было узнать общую длину разбросанных линий.
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search: |
|||
|
||||
SpillOver, используй команду PL-CSE с опцией "допуск"
[IMG]http://s60.***********/i170/1007/e8/b6b7ea3984db.gif[/IMG]
__________________
Почему все вдруг становятся умными, когда уже не надо? |
||||
|
||||
Цитата:
Код:
сначала вызвать PL-JOIN, объединить полилинии, затем вызвать PL-VxRdc и указать "_p" Disney, Симпатичная иконка для PL-CSE. Поделишься? Если узнать длину, то зачем объединять в полилиню? Я пользуюсь этими двумя замечатьльными программами Александра Ривилиса ObjectARX. GeomProps - площадь, длина, объем выбранных примитивов ObjectARX. SelSim - выбор по образцу
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Остекляем!!! Алюминим!!! Регистрация: 21.02.2005
Москва
Сообщений: 3,824
|
Ээ... это конечно хорошо вот только:
1 это дополнительная программа. (у меня и так перегружен CAD) 2 и результат нужно бывает сохранить в виде примитива.
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search: |
|||
|
||||
Регистрация: 27.07.2010
Сообщений: 1
|
Не имею опыта работы с лисп, приходится использовать программы SURPAC, MICROMINE и т.д., а исходнаЯ информация готовится часто в автокаде, поэтому возникает небходимость дополнительной обработки данных перед использованирем в вышеуказанных пакетах.
Вопрос первый:Посмотрела лисп ZTXT очень полезная штука, но как бы ее использовать не только для point но и для вершин 3d polyline, очень часто чертежи делались только для того чтобы напечатать, поэтому высотная отметка в подлилинии отсутствует, а может еще и по причине работы с двумерными полилиниями. Вопрос второй:присвоить обекту техт Z ,ближайшей Point Вопрос третий:Сохранить объекты MTEXT в файл EXCEL или таблицу автокад. Последний раз редактировалось ng-share, 27.07.2010 в 17:07. |
|||
|
||||
Дизайнер-конструктор Регистрация: 29.05.2004
Kiev
Сообщений: 1,187
|
VVA, присоединяюсь к вопросу №275, что дает ключ _p в комманде PL-VxRdc?
По идее он должен выбрать предыдущий набор. Но в Вашем случае, действительно происходит выделение всех полилиний на чертеже (Акад 2004). И все равно хотелось бы совместить работу комманд PL-JOIN и PL-VxRdc в один лисп.
__________________
Kiev, Ukraine |
|||
|
||||
Цитата:
Цитата:
Код:
Вариант 2 Код:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 27.07.2010 в 16:21. |
||||
|
||||
Дизайнер-конструктор Регистрация: 29.05.2004
Kiev
Сообщений: 1,187
|
VVA, на лисп из №273 выдает:
Цитата:
PL-ERROR-SAVE-SYSVAR но дальше все равно не работает test1: Цитата:
а иногда работает нормально: останов на допуске, жмешь ентер, и все пропалывает. Не уверен, но вроде работает если test идет на взорванные объекты (т.е. Line), а если объекты Pline- то не работает
__________________
Kiev, Ukraine Последний раз редактировалось sasha_lif, 27.07.2010 в 18:04. |
|||
|
||||
PL-JOIN эта немного измененная команда pltools. Она использует определенные там ф-ции, в том числе и PL-ERROR-SAVE-SYSVAR. Открой pltools.lsp и добавь или вместо PL-JOIN (найди поиском) или переименуй в PL-JOIN1 и добавь в конец. Если переименуешь в PL-JOIN1, то в команде TEST1 и ТЕST так же не забудь переименовать
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Дизайнер-конструктор Регистрация: 29.05.2004
Kiev
Сообщений: 1,187
|
сейчас попробую, а то я чуть не так делал..
проверил Сделал как Вы говорите: Вашу модифицированную комманду pl-join назвал pl-join1 и закинул в plttools.lsp параллельно исправив двоеточия на тире в двух строчах (pl-error-save-sysvar '(("PEDITACCEPT" 1)("CMDECHO" 0))) (pl-error-restore-sysvar) правильно? (defun C:PL-JOIN1 ( / ssnab count en *error* ss) (setq *error* pltool-err) (or *pl-activedoc* (setq *pl-activedoc* (vla-get-activedocument (vlax-get-acad-object)))) (vla-StartUndoMark *pl-activedoc*) (pl-error-save-sysvar '(("PEDITACCEPT" 1)("CMDECHO" 0))) (setq ssnab (ssget "_I")) (while (not ssnab)(setq ssnab (ssget))) ;;;И 3d полилинии ;(setq ssnab(3dpljn ssnab 1e-6 "AcDb3dPolyline")) (setq count 0) (while (setq en (ssname ssnab count)) (if (member '(100 . "AcDb3dPolyline")(entget en)) (ssdel en ssnab) (setq count (1+ count)) ) ) (setq en (entlast) count 0 ss (ssadd)) (if (> (sslength ssnab) 1) (if (and (getvar "PEDITACCEPT") (= (getvar "PEDITACCEPT") 1)) (vl-cmdf "_pedit" "_Multiple" ssnab "" "_Join" 0 "") (vl-cmdf "_pedit" "_Multiple" ssnab "" "_Y" "_Join" 0 "")) ) (while (and (setq en (entnext en)) (= (cdr(assoc 0 (entget en))) "LWPOLYLINE")) (setq count (1+ count))(ssadd en ss) ) (if (> count 0) (if (= (getvar "SysCodePage") "ANSI_1251") (princ (strcat "\nСоздано " (itoa count) " простых полилиний!!!")) (princ (strcat "\nСreated "(itoa count)" LW polylines")) )) (if (> (sslength ss) 0)(vl-cmdf "_.SELECT" ss "")) (setq ssnab nil ss nil) (pl-error-restore-sysvar) (vla-EndUndoMark *pl-activedoc*) (princ)) в test и test1 изменил Цитата:
Цитата:
для test1 ругается Цитата:
__________________
Kiev, Ukraine Последний раз редактировалось sasha_lif, 27.07.2010 в 18:38. |
|||
|
||||
Можно сделать так - как вариант, допустим pl-join - чтобы разом во всем файле сшивались линейные элементы только с одинаковыми свойствами (слой, цвет, вес, тип линии, высота-Elevation)?
Для упрощения и облегчения файлов, для удобства поиска элементов, описывающих один объект и т.п. Для сшивания файлов в один. И т.п. Иначе при сшивании можно потерять много нужного. |
||||
|
||||
АлексЮстасу посмотри TotalPurge
__________________
Почему все вдруг становятся умными, когда уже не надо? |
||||
|
||||
Цитата:
А ведь TotalPurge у меня стоит уже не меньше полугода! Спасибо. TotalPurge заодно и высоты (Elevation) учитывает. Не. Все-таки в очередной раз укрепляюсь в мысли, что универсальные, с большим числом действий программы не есть хорошо. Реальный файл эта TotalPurge обрабатывала минут пятнадцать минимум. А это был файл, собранный из трех файлов с одними горизонталями, которые, понятно, сшивать нужно однозначно - по границе слияния. На выходе я получил несшитые почему-то горизонтали, и почему-то все белого цвета (цвет их был другим). А пока это писал, Автокад вылетел с сообщением о фатальной ошибке. Так или иначе, но было бы здорово иметь утилиту сшивания линейных элементов с учетом их свойств, но которая делала бы только это, и делала бы это быстро. Для сравнения - pl-join сшила эти горизонтали за считанные секунды. (Хотя и выдала страшное сообщение, что сейчас будет очень-очено долго). Лучше бы был вариант pl-join или опция в pl-join, которая бы обеспечивала сшивание только соответственных линейных элементов. Последний раз редактировалось АлексЮстасу, 26.09.2010 в 23:29. |
||||
|
||||
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Цитата:
Select Similar - оч. удобный инструмент, но последовательно запускать pl-join по числу сочетаний цвета, слоя, веса, типа, высоты (??) и долго, и легко пропустить что-то, и легко что-то не учесть. Ну, да, выбрать все и все сшить, но с учетом свойств элементов. Одинаковые свойства - сшиваются. Разные - нет. Согласитесь, что задача сшивания в одно естественна именно для элементов с одинаковыми свойствами, чем всего огульно. Мы же все не случайно вычерчиваем в разных слоях, цветах, типах и т.п. |
||||
|
||||
Мозговой штурм Регистрация: 26.10.2008
Рідна ненька - Україна, Харків
Сообщений: 5,705
|
VVA, для 11 када годится http://dwg.ru/dnl/607? А то установил - появились проблемы с чертежом.
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Какие именно?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Мозговой штурм Регистрация: 26.10.2008
Рідна ненька - Україна, Харків
Сообщений: 5,705
|
После загрузки приложения копирование с базовой точкой вело себя странно: при вставке объекта было незначительное смещение (точка та же, а объект располагается левее). Сначала грешил на единицы. Выполнил очистку, очистил прокси, поставил значение demandload в 0 - не помогло. При чем интересный факт: после выполнения всех очисток в пространстве листа копирование выполняется нормально, а в модели - глючит. После очистки в модели копируется нормально, а в листе - глючит.
В какой-то момент заметил, что все отрезки стали полилиниями (хз какие я при этом команды тыкал - может из экспресов что-то). Бодался где-то час: создавал новые файлы, копировал содержимое и т.д. Был ли это глюк самого файла или приложения сказать не могу, потому что после удаления файла удалил и приложение. В новом файле глюков не наблюдал. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
А что с привязками и шагом?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Мозговой штурм Регистрация: 26.10.2008
Рідна ненька - Україна, Харків
Сообщений: 5,705
|
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Возможно, именно привязки и сработали... И потом, можно же выполнять не копирование с базовой точкой, а вставку с исходными координатами - тогда тоже смещение есть?
P.S. Интересно, как это смещение было определено?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Мозговой штурм Регистрация: 26.10.2008
Рідна ненька - Україна, Харків
Сообщений: 5,705
|
Копирую отрезок - базовая точка конец отрезка. Вставляю скопированный в ту же точку - между отрезками небольшое расстояние (в листе 3,741мм).
так не извращался - нервов не хватит. Я бы грешил на это, но |
|||
|
||||
А какие координаты базовой точки и вставки? Случайно не несколько парсеков?
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
|
||||
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Мозговой штурм Регистрация: 26.10.2008
Рідна ненька - Україна, Харків
Сообщений: 5,705
|
Цитата:
Offtop: У меня в технологии допуск меньший. Все качели в чертеже нечались после подгрузки этого приложения. Завтра поищу сейвы - проверю. |
|||
|
||||
Цитата:
Важно, где находится отрезок и каково смещение. При работе со слишком большими числами, автокад может не справиться.
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
|
||||
Мозговой штурм Регистрация: 26.10.2008
Рідна ненька - Україна, Харків
Сообщений: 5,705
|
Подгрузил на домашнем питомце - вроде все гуд. Сразу установаил мироую ПСК (кстати, может в ней были проблемы?).
Вопрос - в свойствах была панель сумма площадей полилиний - как подгрузить ее. На этот раз выполнял все указания readme файла. |
|||
|
||||
Мозговой штурм Регистрация: 26.10.2008
Рідна ненька - Україна, Харків
Сообщений: 5,705
|
VVA, сполз под стол - мой мир перевернулся))).
Я все напутал - именно эту штуку я и подгрузил (которая 2010х32)! Все это время я попросту пудрил мозги... Просто скачал все разом, а название архива дал "Новые команды для работы с полилинией_1". |
|||
|
||||
В команде pedit от BriCSCAD нет опции _m (multiple)
Но есть альтернатива: P_ed.lsp из CNC Tools Ссылка на поддержку BricsCAD
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Мозговой штурм Регистрация: 26.10.2008
Рідна ненька - Україна, Харків
Сообщений: 5,705
|
Цитата:
Разобрался я в чем проблема с этим копированием. Никак это не связано с приложениями, лиспами и т.п. Использую в работе аннотативность (только размерный стиль). При задании вьюпорта часто наблюдается, что аннотативные размеры в выставленном масштабе не строятся через ВЭ (проблема решается через перезадание масштаба). Так вот аналогичная проблема и с копированием, если разблокировать вьюпорт и задать масштаб ВЭ 1:1, а потом вернуть в старый масштаб, к примеру 1:50, то все глюки пропадают - объект вставляется в ту точку, которую выбрал (никаких смещений нет). Offtop: p.s. Вообще дастает, что список масштабов все время слетает на британские единицы и глюки с вьюпортами+аннотативность. Надеюсь ребята из автодеска прочтут сие... |
|||
|
||||
Можно добавить в объединение полилиний (PL-JOIN) допуск на расстояние между концами, чтобы сшивать при небольших разрывах? И добавить сшивание только однотипных элементов - с одинаковыми свойствами, включая высоту?
Ведь сшивать вообще все что ни попадя нужно гораздо реже, чем сшивать однородные элементы. Сшивать, используя отключения слоев и т.п. - долго и легко что-то пропустить, т.к. слоев бывает много. А высоты вообще никак не учтешь. В результате можно получить потери данных, ошибки. |
||||
|
||||
Цитата:
Если вводить допуски, то нужна соответствующая настройка или дополнительный запрос. Вообще посмотрю что можно сделать
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Цитата:
Вы представьте, какое число разнородных элементов может быть в файле. При ручном выборе все равно что-то да пропустишь. А высоты элементов вообще не учтешь. |
||||
|
||||
Изыскания и САПР Регистрация: 05.07.2008
Ижевск
Сообщений: 297
|
Цитата:
VVA, - это замена или надо дополнять код? |
|||
|
||||
MeshIN, Это замена. В команде _pedit BricsCAd нет опции _multiple
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 07.06.2008
ЗвезДонецк
Сообщений: 131
|
Доброго здравия Уважаемые!
Возможно ли сделать такое) - полилиния пересекает какой-то объект, например квадрат, при обрезании полилинии внутри квадрата она не разрывается, а замыкается повторяя контур квадрата по его граням. или я сильно много хочу?))) Благодарю с Уважением.
__________________
Любой ПУТЬ прост, если в согласии с Вселенскими законами :) Дукха Самудая Ниродха и Марга |
|||
|
||||
Опубликовываю сообщение, дабы никто более не наступал на подобные (описанные ниже) грабли.
Хороший набор команд. Добавил его в сеть, для использования юзерами. Всё работает, но со справкой возникли проблемы... Дело в том, что любой chm-файл корректно открывается только с локального диска. Если пытаться открывать его из сети - корректно будет отображаться только древовидная структура документа, а содержимое листов отображаться не будет: Т.о. в случае сетевой работы использование chm-файлов в качестве справки не годится. Поскольку исходников справки у меня нет, я конвертнул chm-файл в html-справку (с помощью этой программки), дабы можно было её открывать через браузер IE. Далее идёт любопытный момент... Интересующее меня содержимое справки лежит в сети по адресу: \\Hyprostroy\dfs\SystemFolder\tools\AutoCAD tools\AcadPlagins\LISP\Pltools\help\pltools.html Из консоли автокада открыть его можно так: (startapp "explorer" "\\\\Hyprostroy/dfs/SystemFolder/tools/AutoCAD tools/AcadPlagins/LISP/Pltools/help/pltools.html") Обращаю внимание на то, что путь начинается с \\\\. Если попытаться заменить их на // - ничего не получится. Далее начинается ещё интересней... Если выше приведённую строку, которая нормально работает в консоли автокада, засунуть в кнопку так: ^C^C(startapp "explorer" "\\\\Hyprostroy/dfs/SystemFolder/tools/AutoCAD tools/AcadPlagins/LISP/Pltools/help/pltools.html") то работать не будет... Не "ест" кнопка \\\\. Решение предложил Александр Ривилис (за что ему огромное спасибо): ^C^C(startapp "explorer" (strcat (chr 92) (chr 92) "Hyprostroy/dfs/SystemFolder/tools/AutoCAD tools/AcadPlagins/LISP/Pltools/help/pltools.html")) Теперь справка доступна из сети всем пользователям домена. _________________________________________________________ п.с. За софтину благодарю (от своего имени и имени пользователей домена) всех тех, кто отмечен разделе "Благодарности".
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
А если попробовать скормить
Код:
P.S. Проверить работу не могу
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Цитата:
Цитата:
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
|
||||
hwd,
Цитата:
Так должно сработать Код:
Цитата:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 06.05.2011 в 21:08. Причина: Ссылка на реестр |
||||
|
||||
Цитата:
В моём случае findfile не всегда подойдёт, поскольку имеется множество различных библиотек, запускаемых загрузчиком при старте (в опциях автокада пути к ним не прописаны). Применительно к данной ситуации для того, чтобы предложенное решение заработало, мне придётся добавить в опции акада новый путь: \\Hyprostroy\dfs\SystemFolder\tools\AutoCAD tools\AcadPlagins\LISP\Pltools\help, помимо того, что уже добавлен: \\Hyprostroy\dfs\SystemFolder\tools\AutoCAD tools\AcadPlagins\LISP\Pltools. Я стараюсь как можно меньше вносить дополнительных путей,только если это действительно неизбежно (например путь к шрифтам нужно указывать в любом случае...).
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
|
||||
hwd,
1. Можно указать полный путь. 2. Если часть пути прописана, то в к findfile можно добавить подпапку. Я этим пользуюсь для поиска библиотек блоков (findfile "help/pltools.html") должно вернуть полный пусть, если \\Hyprostroy\dfs\SystemFolder\tools\AutoCAD tools\AcadPlagins\LISP\Pltools в путях доступа.
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 24.11.2010 в 10:42. Причина: Исменена строка "help/pltools.html" |
||||
|
||||
Спасибо, это действительно удобная реализация.
Жаль, что в путях настроек нельзя хранить строки в таком виде: %AppData%\MyCAD Не распознаёт он системные переменные к сожалению.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
|
||||
Изыскания и САПР Регистрация: 05.07.2008
Ижевск
Сообщений: 297
|
|
|||
|
||||
геодезист Регистрация: 26.11.2010
Луцк
Сообщений: 33
|
VVA,
Набор команд класный. Но возможен ли вариант доработки MPL? Хотелось бы чтобы была возможность ввода количества построения полилиний между двумя полилиниями. И еще, если бы это произведение работало со сплайнами, цены бы ему небыло. Спросите для чего? Для использования геодезистами при прорисовке рельефа. Если вариант доработки будет реализован, буду очень благодарен. |
|||
|
||||
boretskiy.a, Со сплайнами работать не будет. Мой тебе совет: не рисуй горизонтали сплайнами, пожалей проектировщиков, которые будут работать на твоей съемке. Не далее как на прошлой неделе переводил горизонтали-сплайны в горизонтали-полилинии. По поводу первого вопроса в принципе реализовать можно, но мне пока не ясен алгоритм, и пока нет на это свободного времени. Почему бы не воспользоваться для построения горизонталей готовыми решениями: Credo, GeoniCS, Civil ...
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 25.02.2009
Сообщений: 82
|
Доброе время суток уважаемые, посмотрел вот команду "PL-VxRdc -Удаление вершин полилиний, которые лежат на одной прямой" не знаю обсуждалось ли у вас тут но есть такой вопрос,я так понял она убивает вершины с отклонением, а если 2 вершины лежат на одной прямой на расстоянии от 0.01 см. до 1 метра то кроме как ручками даную проблему не решить , так ли это? и можно ли решить как нибудь сей вопрос.
|
|||
|
||||
evg76, Она убивает вершины, если отклонение меньше указанного. Если вершины лежат на одной прямой, то у них отклонение 0 (т.е. меньше любого указанного). Если вершины не удаляются, значит дело в чем-то другом. Предметно разговор можно будет вести, еслибудет файл с примером.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 11.10.2010
Сообщений: 980
|
Что "взять"? Удаление вершин через какое-то количество ед.чертежа? Хорошо, сохрани код как lsp и загрузи его. А потом скажи, какие вершины надо удалить (при условии, что удалять надо вершины с расстоянием между ними менее 100 единиц чертежа).
Код:
__________________
(/= RegDate StartReadDate) |
|||
|
||||
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 25.02.2009
Сообщений: 82
|
получилось,
>А потом скажи, какие вершины надо удалить (при условии, что удалять >надо вершины с расстоянием между ними менее 100 единиц чертежа). а зачем говорить пусть прога сама ищет и удаляет. В моем понимании я считаю так ввел коммаду указал какой диапазон тебя интересует и все. прога сама убила лишние точки. В этом отношеннии была помоему под мапинфо прога грабли. |
|||
|
||||
Регистрация: 11.10.2010
Сообщений: 980
|
Прекрасно. Введен диапазон - 100. Перечисли вершины (по номерам), которые надо убирать. И объясни почему.
Пойми, помогать могут только программисты, которые физически неспособны знать тонкости всех вариантов применения AutoCAD.
__________________
(/= RegDate StartReadDate) |
|||
|
||||
Регистрация: 25.02.2009
Сообщений: 82
|
в данном примере можно убивать почти все точки после 7, объясняю зачем это надо. это относится больше всего к тем ситуациям когда проводишь сколку в с чертежа м 1 :10000 , т.е. в 1 мм - 10 м. и бывает что кликаешь мышкой...( повсякому) а теперь расскажите как на 1 мм увидеть расстояние в 1 метр, вот тогда и надо удалять те точки которые лежат в диапазоне который потом в масштабе карты не увидишь, а еще к точке условные обозначения, прикручиваются вот и получается загромождения ситуации бывает много обрисовал токо одну
|
|||
|
||||
Регистрация: 25.02.2009
Сообщений: 82
|
1. Дело не в погрешностях, дело в масштабе , если ты данный чертеж попробуешь распечатать в масшабе 1см -1000 метров и более , то тебе растояния в 50 метров особую радость на листе формата А4 не будет, сам подумай, а тем более 2 точки на рассотянии 20 см.
2. почему обязательно надо что то доказывать вот люди например под мапинфо такую фишку сотворили http://asgs.narod.ru/downloads/programs/Grab.rar, тяжело что ли сделать такую же под автокад???? |
|||
|
||||
Регистрация: 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,985
|
Уважаемые знатоки полилиний и гуру программирования на 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,985
|
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. |
||||
|
||||
Так это _splineedit в пакетном режиме.
В 2012 проверить не могу. В 2011 RUS SP2 ConvTo2d сконвертировало без проблем
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Цитата:
Здесь прикладываю сплайны упрямые из того же общего исходного файла. |
||||
|
||||
Регистрация: 25.01.2012
Сообщений: 4
|
Пожалуйста помогите при добовлении вершины в полилинию выводит ошибку. Как бороться?
Команда: PL-VxAdd Укажите точку разрыва [отмени U/выход X] <выход> : Укажите новую точку <прежняя>: ; ошибка: Возникло исключение: 0xC0000005 (Нарушение доступа) ; предупреждение: раскрутка пропущена для неверное исключение |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Версия AutoCAD? Разрядность? Наличие сервис-паков?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 31.05.2011
Сообщений: 4
|
C http://dwg.ru/dnl/607:
Цитата:
Последний раз редактировалось gala-kt, 26.01.2012 в 17:25. |
|||
|
||||
gala-kt, Подтверждаю, почему-то на dwg.ru множественный выбор отсутствует.
Цитата:
Твои сплайны так же будут обрабатываться
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
VVA, я позволил себе внести некоторые изменения в исходный код pltools (иначе они на 64-битных системах не работали). Проверь, плиз - все ли я там сделал, а то с меня станется
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 25.01.2012
Сообщений: 4
|
Команда: PL-VxAdd
Укажите точку разрыва [отмени U/выход X] <выход> : Укажите новую точку <прежняя>: ; ошибка: Возникло исключение: 0xC0000005 (Нарушение доступа) ; предупреждение: раскрутка пропущена для неверное исключение Большое спасибо ошибка пропала все заработало отлично!!!! |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Sanek72, когда пропало? Точнее, после чего?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Кулик Алексей aka kpblc, Алексей, спасибо. Изменения коснулись ф-ций _kpblc-get-objectid и _kpblc-objectidtoobject или было что-то еще?
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Не, только они, насколько я помню. Вроде больше ничего не менял - незачем
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
2012 LT Eng система 86 битная не работает((
__________________
Вся гениальность – в простоте |
||||
|
||||
Второе
Цитата из ссылки с моей подписи Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Cfytrr, Пока не знаю, нужно вспомнить геометрию
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Cfytrr, судя по скрину, у тебя 2012. Там же и так можно преобразовать прямой сегмент в дуговой.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Кулик Алексей aka kpblc,
Точно, Ваша правда. Просто я так привык к pltools, что встроенными функциями и не пользовался...
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам. |
||||
|
||||
Регистрация: 01.06.2010
Сообщений: 7
|
Вот если бы добавить две функции из этой утилиты (ломанной ее я не нашел) http://www.cad-organizer.com/product...duct=polytools ... Первая рисует по полилинии офсетом замкнутую полилинию (стену), а вторая делит эту полилинию на несколько замкнутых в один клик (вырезает оконные и дверные проемы)
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
spitfire1975, во-первых, прочитай правила форума. Во-вторых, посмотри в теме про динамические блоки - насколько я помню, подобные вопросы там поднимались. И если решение не подойдет, то переходи либо на вертикальные решения типа AutoCAD Architecture /MEP, либо вообще на Revit и Ко.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Пришел чужой файл, в котором попытался полилинии преобразовать в 3Д полилинии. Получил:
Команда: ConvTo3d найдено: 202 ; ошибка: Верхняя граница SAFEARRAYBOUND оказалась меньше нижней. или Command: ConvTo3d 202 found ; error: Upper bound in SAFEARRAYBOUND occurred to be less than lower. Что бы это значило? |
||||
|
||||
АлексЮстасу, Файлик покажи (можно по почте если секретный)
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
...в довершении препятствий вырубился сервер и инет
В файле осталась одна "кривая" полилиния - остальное преобразовать в 3Д удалось. Но только после того, как удалил элементы всех остальных типов. |
||||
|
||||
АлексЮстасу, "кривая" полилиния - полилиния 0 длины (совпадают начальные и конечные точки). Добавил соотвествующую проверку. Рекомендую всегда чужие чертежи проверять на
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Цитата:
Волшебная сила тире перед командой. Почему только в окне Purge этих опций нет? Мы же не телепаты. Да и девочкам лет 50-ти такие нюансы не под силу. |
||||
|
||||
Эти опции есть стандартно, по моему, уже с 2010. Для 2009 появятся, если поставить Bonus pack 1 и 2
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Вот мое окно Purge, 2012 рус. Да и в 2006 оно было, кажется, ровно таким же.
Никогда не замечал, и сейчас не вижу в нем опций удаления элементов нулевой длины и т.п. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Самая нижняя, недоступная опция - "Удалить геометрию нулевой длины"
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Цитата:
Спасибо!! Попробовал из окна - сильно не понравилось. Не вижу возможности удалить только линии нулевой длины и пустые тексты. Только вместе с чем-нибудь еще. (Не удивлюсь, если промажу и на этот раз) Последний раз редактировалось АлексЮстасу, 18.05.2012 в 01:19. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Опять морока со сплайнами. Не удается получить в меру похожие трехмерные полилинии - отклонения в пределах 2 см. PlTools слишком сильно изменяет их геометрию при преобразованиях
Пример приложен. Это начерчены тросы подвеса контактной сети. Они провисают под своей тяжестью, плюс на их положение влияют разные подвесы и оттяжки (здесь не показаны). |
||||
|
||||
АлексЮстасу, Попробуй _splinedit опция "Преобразовать в полилинию" Появилась, по моему, с 2010 када.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
|
||||
|
||||
АлексЮстасу, Тады ой. Вспомнил про программу TotalPurge
В описании сказано Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
WATRES, All в этом случае относится ко всем сегментам полилинии.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
olega70, Без файла трудно что-то сказать
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 27.12.2012
Сообщений: 6
|
VVA, спасибо за отклик, щас не могу, на работе все находится, 4 января скину всю папку, но мне кажется что дело в другом, так как свою папку удалял полностью и копировал с другого компа, на котором все работает. Ну вобщем выйду на работу скину всю папку.
Еще раз спасибо. Всех с наступающим Новым Годом!!! Всех благ, здоровья и вдохновения!!! Последний раз редактировалось olega70, 04.01.2013 в 15:51. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Я подозреваю, что запрашивался не код, а файл dwg...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 27.12.2012
Сообщений: 6
|
Вот и сам файл, изолинии выделенные красным цветом, которым нужно сделать прополку, хотя на соседнем компе в этом же файле прополка работает.
Блин, ребят простите за весь мой флуд, потрите плиз все мои посты. Дело действительно было в самом файле. Извините за отнятое время. Последний раз редактировалось olega70, 04.01.2013 в 15:53. Причина: Сам нашел проблему. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
А что именно было в файле?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 27.12.2012
Сообщений: 6
|
Да я, если честно, и не разбирался, просто скопировал все в новый файл и все заработало. Если интересно во вторник выложу его, если я его не удалил правда.
Так-с, файл не удалил, выкладываю. Последний раз редактировалось olega70, 08.01.2013 в 10:32. |
|||
|
||||
olega70, У меня в твоем файле PL-VxRdc отработала без ошибок. Автокад 2009 RUS SP3 + BonusPack, Windows 7 x32 4 Гб памяти
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
olega70, Спишем на последсвия празднования нового года
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Шаражпроектхалтурмонтаж Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,985
|
|
|||
|
||||
maratovich, Проверить пока не могу, а из редактора блока команда не запускается?
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Цитата:
Динамический блок, одна полилиния, 3 вершины, надо добавить 4-ю без редактора блока.
__________________
Вопрос : Где находится Тургай ? Ответ : Между Парагваем и Уругваем..... |
||||
|
||||
Регистрация: 22.05.2009
Москва
Сообщений: 210
|
Перестала работать команда "Добавить вершину в полилинию", пишет в командной строке -
Command: PL-VxAdd Укажите точку разрыва [отмени U/выход X] <выход> : Укажите новую точку <прежняя>: ; error: Exception occurred: 0xC0000005 (Access Violation) ; warning: unwind skipped on unknown exception еще изменяет перекрестие курсора AutoCAD 2008, Windows 7 x64 |
|||
|
||||
progettista, Файл приложи с полилинией на которой не работает.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
>ALL Выяснилась следующая картина. По роковой случайности в архиве оказалась одна из первых версий pltools с множеством багов. В свое время мы с KAI (царство ему небесное) основательно ее оттестировали. Я обновил архив по ссылке в #1. Правда пока что там висит картинка "Позиция недоступна". Думаю что это связано с предварительной модерацией. В download давненько ничего не заливал.
Новые команды Цитата:
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 18.06.2014 в 09:32. Причина: орфография |
||||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
VVA, бегло протестировал новинки, обнаружил, что в команде PL-P90 не восстанавливается полярное отслеживание. В догонку предложение: может, адаптировать эту команду под любой угол? По умолчанию 90, но с возможностью настройки.
И еще неясно, что значит в команде PL-CW реверс по часовой стрелке? Если полилиния не замкнута, результаты мне непонятны. ----- добавлено через ~3 ч. ----- Еще небольшая ошибка в команде PL-CW: Команда: PL-CW <Режим ПО ЧАСОВОЙ стрелке> Выберите полилиниинайдено: 3 Обработано 3 полилиний. Из них: 2 против часовой (реверсировано) 1 по часовой Пришла еще мысль: собрать мнения форумчан, какие бы еще инструменты они хотели бы иметь для работы с полилинией? Другими словами продолжить коллективное наполнение этого замечательного набора программ. Что сразу приходит на ум из того, в чем когда-то возникала потребность у меня (и не только): 1. Сопряжение всех сегментов всех выбранных полилиний с указанным радиусом. Знаю, что это из штатных возможностей AutoCAD'a, но очень уж неудобно каждый раз вводить (да даже выбирать из динамического выпадающего списка) опции и выбирать всего одну полилинию. Нацарапал для себя под это дело весьма примитивный лиспик. Мне он очень много времени сэкономил. Код:
2. Сопряжение с указанным радиусом двух сегментов по указанию вершины. Есть тут кое-какие наработки, но код сильно сырой - есть некоторые проблемы с реализацией. Если возникнет потребность - допилю. 3. Несколько других вариантов сопряжения из темы LISP. Расширение возможностей команды FILLET (если уважаемый GRIFEL не будет против), в том числе сопряжение по указанию требуемой длины дуги из #6 в той теме (я не против). 4. Объединение выбранной полилинии (или отрезка) со всеми полилиниями (или отрезками), составляющими непрерывную цепочку (см. Chain Selection от Lee Mac. Знаю, что в общем случае в одной точке может оказаться более двух крайних вершин разных линий, и результат будет непредсказуемым, но в частном случае (думаю, трубопроводчики меня поймут) это очень удобно. Добавлено: уже есть, проглядел. 5. Построение перпендикуляра к полилинии из указанной на ней точки. Варианты решения предложены, например, здесь. 6............ Прошу форумчан высказаться по поводу полезности вышеописанных программ и потребности во внедрении их в PL-TOOLS, а также предложить к обсуждению свои идеи новых команд по работе с полилиниями. В свою очередь я готов оказать посильную помощь. Последний раз редактировалось skkkk, 28.01.2015 в 15:15. |
|||
|
||||
инженер Регистрация: 30.07.2012
Воронеж
Сообщений: 14
|
Если кому надо, у меня есть функции определения длины полилинии м/у началом и выбранной точкой, м/у двумя точками, м/у перпендикуляром к полилинии, проведенным в некоторую точку, и началом полилинии, аналогично м/у перпендикуляром и другой точкой на полилинии. Правда они на vba
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Елена_врн, если заняться несложным поиском, то аналогов на лиспе будет немеряно. Это если забыть про GeomProps от А.Ривилиса.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
|||||
skkkk, Привет Сергей. Начнем по порядку:
- по поводу ошибок, описок - проверю Цитата:
Цитата:
Спасибо за предложения - посмотрю твои варианты Цитата:
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
|||||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Привет, Володь
Слушай, прошу прощения - проглядел. Пользуюсь Pl-tools уже лет пять и не замечал как-то этой команды... каюсь. Вряд ли, думаю, не стоит. Работает чётко. Еще раз каюсь. Цитата:
Это-то понятно, просто пытаюсь оживить интерес. Еще вспомнил об одном инструменте, который мне удобен - посегментное подобие. На нашем форуме в свое время не нашел, но нашел на англоязычном, например, здесь. Код:
|
|||
|
||||
Я в предыдущем посте забыл ответить
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Помидорка Регистрация: 03.02.2012
Сообщений: 135
|
Спасибо за полезный набор команд!
Один вопрос... Можно ли разбивать при помощи PLTools полилинию через заданное расстояние, при этом рассматривая всю полилинию без учета сегментов? Объясню. Есть полилиния, и при выполнении команды PL-DIVAll разбиение выполняется посегментно. В приложенном изображении привожу наглядно - при помощи MEASURE я расставил блоки - красные крестики по всей полилинии через 500мм, а PL-DIVAll через 500мм разбил посегментно - каждый, начиная с начала. В итоге, понятное дело, точки не совпадают. Можно ли добиться совпадения?
__________________
Боишься - не делай. Делаешь - не бойся. |
|||
|
||||
Нет такой команды нет. Как вариант - создаешь блок с одним вертикальным отрезком с точкой вставки посередине отрезка. Командой MEASURE расставляешь блоки, расчленяешь их, и командой PL-VFI вставляешь в пересечения вершины
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
что хочу, то и делаю Регистрация: 30.06.2014
Сообщений: 119
|
Раз такой команды нет, выкладываю свою версию программы по вставке блоков на полилинии.выкладывалось на сайте залил, дабы не портить тему собственным творчеством http://zalil.su/426261
-vbarun d:/vba/DividePolyLine.dvb!GoDivide - строка вызова (путь соответственно свой укажите, куда файл сохраните), я кнопку делаю, и в строке для макроса эту строчку пишу Писалось для акада 2009, если в более продвинутых версиях вылетает ошибка , сообщения типа не найдена библиотек, Тогда в редакторе VBA заходим в Tools - References и убираем голочки с библиотек MISSING Замечания: - масштаб схемы: если чертеж в миллиметрах и набирать схему надо типа 20*3000+50*4000, то в схеме указываем 20*3+50*4, в масштабе схемы пишем 1000. Значаение 0 ставить нельзя - при двойно щелчке по полю имя блока, откроется список блоков чертежа - галочка "отно-но линии" разворачивает блоки перпендикулярно касательной к полилинии в данной точке - галочка "проекция Х" не работает для полилиний с дугами - отступ от начала (не помню связан ли с масштабом схемы) ** |
|||
|
||||
Помидорка Регистрация: 03.02.2012
Сообщений: 135
|
Цитата:
Спасибо, однако у меня она слетает при выполнении и она достаточно громоздкая. Хотелось бы упростить ее максимально, дабы ограничиться введением одного-двух параметров и все. А тут все поля заполнить надо... И так каждый раз...
__________________
Боишься - не делай. Делаешь - не бойся. |
|||
|
||||
Скачай заново. У тебя какая редакция?
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Помидорка Регистрация: 03.02.2012
Сообщений: 135
|
Скачал, каюсь, запускал старую редакцию.
Однако, прошу прощения за мое занудство, у меня не получается выполнить задуманное. Код:
Код:
Код:
__________________
Боишься - не делай. Делаешь - не бойся. |
|||
|
||||
Чертеж приложи.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Скачал еще раз с сайта. Грузил и lisp и fas. Автокад 2013 русский
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
В 2015 не заработал, буду разбираться
----- добавлено через ~3 ч. ----- Дело оказалось в этом Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Созрело предложение для новой функции в коллекцию.
Ситуация: есть много (очень) полилиний генерируемых программой, а именно организация рельефа в горизонталях. У многих полилиний надо убирать один сегмент, не затрагивая смежные. (по факту делаю "разорвать" и указываю первую и вторую точки) на приложеном рисунке - красным обозначены сегменты, которые надо вырезать. в облаке участок уже разорванных объектов. Может есть уже у кого то подобное, или вдруг появится желание из спортивного интереса накодить? сам такое не осилю
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... |
||||
|
||||
_trim будет еще более трудоемко, т.к. работаю уже на плане, где очень много всего интересного. или по отдельности выбирать каждую полилинию и получаем примерно то же что и "разорвать" - те же 3 клика, но есть вероятность подцепить не нужную линию и обрежется совсем не то что надо.
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... |
||||
|
||||
Раз чертите дороги и т.п., то Вам в руки Map/Civil - в нем есть Корректировка/Очистка чертежей (Drawing cleanup). С помощью Drawing cleanup разбиваете длинные прямые линии относительно коротких ломаных на их пересечениях, не разбивая короткие. Удаляете что нужно, и сшиваете оставшееся от прямых длинных тем же Drawing cleanup.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Vladimir_Sergeevich, на болоте есть несколько рабочих вариантов.
Но все они удаляют только один сегмент, после чего команду надо вызывать заново. На мой взгляд, это не совсем удобно. Я переработал один из вариантов от Lee Mac, который обрабатывает любые полилинии: добавил цикл с завершением по Enter, обработку промаха, отмену случайно удаленного сегмента по Ctrl+Z ну и подсказки с отчетами в комстроке. Прошу теста, критики и предложений. Код:
Последний раз редактировалось skkkk, 28.08.2014 в 02:27. Причина: Описание изменений см. ниже по тексту |
|||
|
||||
Кто ж мне его купит, если голый автокад - уже дорого и начали закупать LT
2 skkkk, то что доктор прописал - дело пошло раз в 5 быстрей
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... |
||||
|
||||
Цитата:
Вполне неплохо бы его добавить в PLTOOLS. Лисп родственный действиям из PLTOOLS, в котором и работа с удалением элементов полининий (например, удаление вершин), и действия с сегментами. Цитата:
Но разве на LT лиспы идут?
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Чуть подправил код в #450. Добавил метки отмены. Теперь Ctrl+Z в момент выполнения команды отменяет по одному удаленному сегменту, а по завершении команды Ctrl+Z вернет ВСЕ сегменты, удаленные в процессе последнего вызова. Так, мне кажется, правильней.
|
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
gomer, да вроде понятен.... А что не так? В 13-ой строке я разрешил функции (entsel), которая в 14-ой, принимать в качестве аргумента строку "u". Такое строковое значение посылается в командную строку при нажатии Ctrl+Z. Биты не задействовал, т.к. entsel'у они до лампочки.
Расскажи, пожалуйста, как правильно? |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Вот ты видишь суслика? И я не вижу, а он есть... если у команды есть опции, юзер должен их видеть. вроде мелочь, а приятно... Ну вот сидишь ты, режешь, захотел отменить. Будешь отрывать руку от мыши? использовать другую руку? Сейчас можно просто кликнуть в ком строке опцию и продолжать. Я 100500 раз уже писал: смотрите как работают штатные команды и делайте так же. Ну, и последнее, ты ж не постоянно в английской раскладке работаешь, или кто еще, а программа должна в любом случае работать у самых извращенных пользователей...
|
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
А, вот ты о чем...
Так ведь внося изменения, кои я описал в #453, я руководствовался как раз этой мыслью. Хотел повторить принцип, например, отрисовки полилинии. В момент отрисовки жмешь Ctrl+Z - отменяется последний сегмент, жмешь после завершения команды - убирается вся полилиния. Но недоповторил. Цитата:
Это, видимо, нововведения, которые появились после 2011-го, я их еще не имел счастья опробовать. Звучит заманчиво. Подотстал что-то я. В общем, внемля конструктивной критике, вношу изменения в #450, спасибо тебе, gomer. Теперь прошу замечаний по изменениям. ----- добавлено через ~4 мин. ----- Но вот, пока тестировал новый вариант, наткнулся на такой неприятный момент, как-то сразу мною упущенный. Если при удалении сегментов происходило зумирование или панорамирование, то они включаются в действие отмены, и отмена происходит не до конца. Как сделать, чтоб она шла до конца, понятно. Но непонятно, как исключить зум и пан из отмены или включить их в один шаг с восстановлением сегмента? Есть какой-то здравый простой способ, или придется отслеживать историю изменений вида и перед отменой возвращать сначала предыдущий вид? В случае, например, с отрисовкой полилинии вид при отмене сегмента не меняется. |
|||
|
||||
не заметил...
Цитата:
или надо придумывать замену штатному _undo (как то уже столкнулся в одной рисовалке банальной - заменл на (entdel (entlast)).)
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... |
||||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Вроде получилось разобраться. Обновил в #450. Тестируем.
|
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
ну раз ты такой настырный, то что у тебя делают строчки 74-76? Не то же, что и 04-09?
Если говорить об уважении к пользователю и русскому языку и логике, то как минимум так Код:
С инитгет ты так и не разобрался, это печаль Да и что стоит тебе отформатировать код, чтоб это ВЫГЛЯДЕЛО, добавить комментарии, чтоб все было ПОНЯТНО. Добавить файл с исходниками, чтоб люди могли сразу скачать и пользоваться. Тыжпрограммист, небось не чайники починяешь. Ну и еще одну помидорку кину: с какого бодуна у тебя флаг оказался счетчиком? |
|||
|
||||
Какой вредный дядька gomer Кидается и кидается помидорами Объяснил бы по-человечески.
Если меня память не подводит, то надо вместо: (initget "u Undo о Отменить") Написать: (initget "Отменить _Undo") Отдельно буквы не надо прописывать, т.к. они в словах выделены большими. И сперва по порядку идут названия опций на языке локализации, а потом подчеркивание, и те же самые опции на английском. Например: (initget "Да Нет _Yes No") Ну и при наборе "Да", "Д","д" "_Yes", "_Y","_y" функция запроса будет возвращать "Yes". Аналогично и для "No". Может быть, тут еще и флаг какой-то целесообразно применить...
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Ну это у него такие методы педагогические, хочет заставить думать развивающийся мозг
Do$, спасибо огромное тебе, что не остался равнодушным, не, правда, спасибо, от души, приятно. Но ведь gomer прав: что бы мне стоило заглянуть в Полещука и разобраться? Я читал это все довольно давно, но пользовался в своих кодах только русскими ключевыми словами в связке initget-getkword (чаще всего), поэтому и позабыл о том, как надо. Вчера (точнее, уже позавчера), я разобрался, но ответить и исправить не успел. Ну не придал большого значения инитгету, а разбирался с отменами...Спасибо еще раз У Полещука сказано, что entsel равнодушен к битам, только ключевые слова воспринимает. Да и по логике программы он ни к чему. А теперь к помидоркам 74-76 - для штатного режима, 04-09 - в случае ошибки. Но ты ведь это знаешь, и намекаешь на то, раз я функцию описал один раз, то почему же ее еще разочек не вызвать, чем еще разище описывать? То есть сознательно инициировать ошибку? Принято, согласен, так удобней. Какой ей аргумент-то давать? Пустую строку? - это логика цикличного вызова, отраженная в приглашении? Исправил. Ну...Это... Как там? Отменить удаление сегмента, а завершить выполнение команды... Думаешь, это тоже в приглашении указать? Длинновато будет однако... Ну с этим проехали, надеюсь. Кстати я сделал, чтоб при любой раскладке буквы U (англ) и О (рус) вызывали отмену. Не переборщил? Вот тут, пожалуйста поподробнее. Не понимаю. Ты ведь не имеешь в виду выравнивание? Или я как-то неправильно выровнял? Или что не так? Ну это пожалуйста. (Можно подумать тебе и так не понятно) + Исправил, согласен. Все исправления, по традиции, в #450. gomer, зачетку доставать? ----- добавлено через ~24 мин. ----- Не-не-не! Яжинженер В основном Пришла такая мысль. А если полилиния, из которой мы захотим удалить сегмент, окажется взорванной? Или нам нужно, удаляя сегменты, удалить дугу или отрезок?Vladimir_Sergeevich, как считаешь? Может, добавить? Понимаю, что тема про полилинии, но все же? |
|||
|
||||
Как то небыло необходимости в отдельной функции для удаления отрезков/дуг - кнопку del еще никто не отобрал.
А если дуга в составе полилинии, то и так её выкуривает. На мой взгляд все уже как надо.
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... |
||||
|
||||
Цитата:
Иначе легко что-то нужное пропустить.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
АлексЮстасу, WATRES, Нужно посмотреть. Давно писал. Многое забылось.
----- добавлено через ~20 ч. ----- Обновил архив. Будет доступен после проверки модератором
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Регистрация: 14.11.2014
Сообщений: 4
|
Помогите, возникают задачи при которых нужно что бы узлы полилинии (нескольких полилиний) были как то обозначены в процессе черчения (примерно как при выделении полилинии - в виде ручек). Есть ли такая функция в стандартном наборе инструментов Autocad, если нет то возможно ли это реализовать?
|
|||
|
||||
Могу только посоветовать расставить в узлы блоки
Расстановка блоков вдоль линии, полилинии, сплайна
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 14.11.2014
Сообщений: 4
|
Насчет блоков, не очень удобно получается, если нужно отобразить узлы множества полилиний сразу. На самом деле чертить по уже имеющейся полилинии (нескольким) с помощью привязки к узлам не всегда удобно, при расположении узлов на различном расстоянии часто ошибаешся (пропускаешь узел).
|
|||
|
||||
Тогда сюда Баги и пожелания в Autodesk На лиспе я не представляю как это реализовать
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Цитата:
Если выделить существующую на чертеже полилинию, а затем вызвать команду _pline (даже не с кнопки, которая эмулирует двойное нажатие Esc, а именно вводом в командную строку), то выделение полилинии снимается. А что если соорудить такую программку, которая бы, запрашивая точки, не снимала бы с полилинии выделение, а затем отрисовывала бы полилинию по указанным точкам? Ведь (getpoint) выделение не снимает. Такое реализовать нетрудно, по крайней мере на первый взгляд, - была бы в этом реальная необходимость. Посложнее будет, если нужны и дуговые сегменты: тут будут проблемы с визуализацией динамической дуги, но, думаю, тоже реально, например, с помощью (grvecs). В общем, нужно продуманное техзадание и чертеж с примером. Правда, больше я склоняюсь к тому, что я что-то не так понял. Потому как очень смущает, что Если уж VVA не представляет, то мне уж со своим чемоданчиком знаний в багажном отсеке точно делать нечего - можно оставить его при себе. |
|||
|
||||
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 14.11.2014
Сообщений: 4
|
Как пример, в кадастре, при формировании нового земельного участка, когда границы вычерчиваются по уже имеющимся границам большого количества земельных участков.
При черчении полилинией с привязкой к узлам очень часто случаются пропуски узлов лежащих на одной линии или близко расположенных друг к другу, а это в свою очередь является ошибкой при формировании границы зем. уч., да и следить все время за привязкой (при огромном количестве узлов) немного затруднительно что ли. К знатокам, может в Civil такое реализовано, знаю в mapinfo умельцы реализовали, но это другая история (там узлы подсвечиваются на рабочем слое). |
|||
|
||||
bol, Может здесь что-нибудь подберешь
Draw polyline along with 2 or more adjacent closed polylines
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Цитата:
В принципе, раз речь о картографии и кадастре - делать через топологические модели площадных объектов в Map 3d. Если "по-простому", то можно делать с помощью хоть той же _boundary. Перед этим начертить границу в той части, которая не повторяет имеющиеся границы, замкнув площадь нового участка. Указать для _boundary все элементы, задающие границу. Потом, правда, нужно проверить-уточнить, все ли вершины повторились - _boundary любит мелкие детали упрощать.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Не знаю у кого как, а у меня "фаска" и "соединить" это и делают: если хотя бы один из примитивов полилиния - они объединяются в одну полилинию. (у меня акад 2010) если этого не происходит полистай опции этих комманд, там могут быть нюансы. ну и если это были отрезки, то сначала фаску и потом pl-join
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... |
||||
|
||||
А можно добавить команду, которая рисует линию перпендикулярную к полилинии? Как в Тулпаке.
http://youtu.be/8cldc_EqS58. |
||||
|
||||
1. !!! HELP. Как построить нормаль из точки на кривой ?
2. Совет MIP #7 от 31.05.2006 до сих пор актуален Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Игорь Богаченко, еще тут об этом было.
|
|||
|
||||
olezhkooo, ее почему-то нет в pltools.fas. Загружай pltools.lsp из папки LISP. В ближайшее время исправлю
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Цитата:
Offtop: Можно. Во-первых, можно понаделать слоев столько, сколько "имен" может быть у объектов. И полилинии (любые элементы) раскладывать по нужным слоям. Во-вторых, у Автокада есть возможность определять элементы расширенными данными - XData, XRecord. Но эти XData, XRecord не обеспечены Автокадом инструментами, нужно программировать. В-третьих, в вертикальных приложениях могут быть свои уже готовые инструменты работы с расширенными данными, свои варианты расширенных данных. Например, в Map/Civil 3d есть Feature classes и Object Data - средства определения элементов, описания их характеристик. Какие объекты проходят через что-то - это уже пространственный анализ. Это уже ближе к ГИС или уже ГИС - это тоже в Map/Civil 3d. Но если задача одна - что через что проходит, то можно и по-простому, через поиск относительно контуров.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
|
||||
Wion, Выложи dwg с примером
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Инженер-проектировщик Регистрация: 05.11.2014
Санкт-Петербург
Сообщений: 19
|
Сплайны для проверки.dwg
Неконвертируемые сплайны выделены красным цветом. Конечно, можно такие сплайны и удалить, используя быстрый выбор, но они являются частью изолинии которую после конвертации нужно объединить в одну полилинию... Последний раз редактировалось Кулик Алексей aka kpblc, 05.03.2015 в 13:44. |
|||
|
||||
Цитата:
Кстати, в #359 выложен еще один лисп. Преобразовать СПЛАЙНЫ в ПОЛИЛИНИИ
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 14.05.2015
Сообщений: 1
|
Доброго времени суток, уважаемые авторы лиспов!
каким образов можно сделать, чтобы удалялась ближайшая вершина, заранее выбранной полилинии, вне зависимости от того, тыкнул я на саму полилинию или рядом с ней? Последний раз редактировалось pav88, 14.05.2015 в 13:10. |
|||
|
||||
Регистрация: 21.03.2013
Самара
Сообщений: 29
|
Сделал черновой вариант адаптации Pltools под новый стиль с лентами.
Pltools_lenta.zip Все иконки довёл до прозрачности, чтоб глаза не так резали. Размер 32x32 пока не рисовал. Это как-нибудь потом. Вытащил функцию PL-VFI. А то её сделали, но внедрить в интерфейс забыли. При загрузке pltools.cuix на экране появятся панельки группы "pltools", а в ленте, соответственно, вкладка "pltools" с единственной плашкой "Опции полилинии". Последнее справедливо для рабочего пространства "Рисование и аннотации", а так же "Классический Автокад", для тех, кто совмещает ретро-панели с новомодной лентой). Если Вы скрыли какие-либо из стандартных вкладок, то они выскочат заново. Придётся снова скрыть. Качайте, тестируйте. Авось, совместными стараниями адаптируем под новые реалии. P.S. Вопрос к создателям: для чего сделаны иконки PL-CLOCK, cvpoly, pl-PUK, вроде же нет таких функций? P.P.S. Может, кто-то дополнит файл справки, а то он не поспевает за процессом) P.P.P.S. Кстати, новые иконки теперь в файле pltools.cuix, но судя по всему, остались вшитые иконки и помимо них. Неплохо бы их убрать, или заменить на те, что почищены. Я, увы, не знаю, как это делается. |
|||
|
||||
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 21.03.2013
Самара
Сообщений: 29
|
Хорошо. Когда допилю 32x32, выложу все вместе.
Я до сих пор не понял, в чём разница между двумя панельками с цифрами, меняющими ширину сегментов, но хочу сделать для них чуточку разные иконки. Это чтобы люди не путались, а то в новом интерфейсе даже название не знаю как дать. Пусть хоть графически различаются. |
|||
|
||||
Регистрация: 21.03.2013
Самара
Сообщений: 29
|
Сделал вариант близкий к чистовому. Панелей прибавилось. В принципе, подлатать справку, и можно выпускать в тираж.
В справку нужно добавить следующие команды: ENTREV - Реверс объектов (множественный выбор) - она в справке есть, но как составляющая ENTREVS. А т.к. теперь она запускается с кнопки, а не только с командной строки, то можно её как-нибудь обособить. PL-CW - Реверс выбранных полилиний по часовой стрелке PL-CCW - Реверс выбранных полилиний против часовой стрелки PL-VxMove - Перемещение вершин полилинии PL-Vx1 - Изменение начала полилинии PL-P90 - Рисование перпендикулярных друг к другу сегментов полилинии PL-VFI - Вставка вершин в выбранной полилинии в местах пересечения с указанными полилиниями, линиями, дугами И поменять иконки в статьях на новые. Ну и в файле dll тоже Отдельно выкладываю все значки, а с ними и оригиналы в PNG, для тех случаев, когда в иконках использовалась полупрозрачность. Тестируйте, оценивайте. Возможно, какие-то частоиспользуемые функции нужно сделать покрупнее, а редкие, наоборот, уменьшить. Для тех, у кого разрешение экрана меньше 1680x1050 прикладываю скриншот полной ленты. Версия, конечно, не огонь. Иконки ещё надо под тёмную цветовую схему точить, чтобы глаза не резали. Да плюс, 64x64 неплохо бы сделать для ретины. Но это всё в отдалённом будущем, если у кого другого руки не зачешутся раньше. P.S. Иконки PL-CLOCK и cvpoly, видимо, относятся к отмершим функциям, на смену которым пришли, соответственно, PL-CW с PL-CCW и ConvTo2d с ConvTo3d. Смысл иконки pl-PUK (странно похожей на pl-VFI) по прежнему туманен. На всякий случай они теперь исключены совсем, дабы не отнимать место и внимание. |
|||
|
||||
Регистрация: 21.03.2013
Самара
Сообщений: 29
|
Ленту сделал по образу оригинальных панелей. Т.е. одна панель со всеми функциями, и куча других по категориям.
Собственно, я только-только начал осваивать ленточный интерфейс, до этого на старом сидел. И решил разобраться с адаптацией на примере Pltools, раз уж её никто до меня не сделал. Я пока что не очень въезжаю, что как должно располагаться для максимально комфортного юзабилити. Если есть конкретные замечания, рад буду услышать. Пересобрать - не вопрос. Главное, что камень сдвинули, а уж вода теперь потечёт. |
|||
|
||||
Цитата:
Цитата:
Во вложении фрагмент моей переписки (от 2012 г.) с KAI
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 21.03.2013
Самара
Сообщений: 29
|
Разобрался с редактированием CHM-файлов.
Слегка перетряхнул справку. Добавились статьи по функциям, которых не хватало, с самым минимумом информации. Так же произведена замена значков на прозрачные. Плюс незаметные правки по мелочи в некоторых имеющихся статьях. Последний раз редактировалось T.Bagdat, 07.06.2015 в 18:04. Причина: Исправил пропущенные косяки |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
_xdata из ExpressTools
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Разрабатывать отдельную программу, если штатный xdlist не устраивает.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Тогда пиши свою программу.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 21.03.2013
Самара
Сообщений: 29
|
В справке нашлись ещё неурядицы. Свежеприрученная ссыль почему-то открывались не в браузере, а в окне самой справки (только на одной винде, на другой такого не замечено). Поправил, но выкладывать не тороплюсь, потому что обнаружил кое-что посущественнее. Все прежние ссылки - мёртвые (кроме той, что ведёт на dwg.ru, про среднюю полилинию).
Пара статей ссылается на код Евгения Елпанова по этому адресу: http://www.autocad.ru/cgi-bin/f1/board.cgi?t=23073xg Объединение 2d полилиний по примитиву шлёт сюда: http://www.cadforyou.spb.ru/index.ph..._programs_page А раздел про добавление вершин в полилинию направляет на дохлую страницу автолиспа: http://autolisp.ru/dwlsp/20 VVA, Есть ли живые топики по истокам данных разработок, или лучше всё это вычистить? |
|||
|
||||
Цитата:
остальные приказали долго жить Спасибо что взялся за справку и меню. Освобожусь немного - обновлю раздачу
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Offtop: А что там в справке за ссылка на мой сайт? Про что там разговор-то был?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 21.03.2013
Самара
Сообщений: 29
|
Цитата:
Цитата:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Offtop: Я к тому, что не помню какого-то плотного обсуждения...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Вспомни, был autokad.ru, потом админ параллельно создал autolisp.ru для обсуждения вопросов lispa, потом он его втюхал подарил тебе
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Дык я и не спорю
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 21.03.2013
Самара
Сообщений: 29
|
Перешерстил справку. Вроде, все ссылки, которые остались - не дохлые.
Выкладываю полную сборку, вместе со значками (в папке PIC). Правки помимо CHM-файла: Некоторые иконки претерпели незначительные изменения. Убраны классические панели из рабочего пространства "Рисование и аннотации". В .dll (использовался Restorator) закинуты все значки (с обновлёнными именами), но вот нужна ли эта .dll вообще, при том, что все иконки и так хранятся в .cuix, остаётся открытым вопросом. Тем более я так и не разобрался, как из .dll можно подцепить значки с полупрозрачностью. Пробуйте, тестируйте. Предложения и пожелания приветствуются. Инициатива и самодеятельность - тем более. Ну, во-первых, я эту адаптацию делаю для себя А во-вторых, я горячо ратую за стандартизацию |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Вообще убери все ссылки, справка на то и автономная, что она автономная
Цитата:
Что сейчас из себя представляет pltools: меню - хлам, справка - хлам, lisp - тот еще хлам, не хлам - идеи, реализованные в pltools. С интересом буду наблюдать за облагораживанием этой программулины, особенно в части лиспа |
|||
|
||||
Регистрация: 21.03.2013
Самара
Сообщений: 29
|
Конечно, хлам. Продукт то некоммерческий, вот всё на честном слове и держится. Зато любой прохожий с улицы вроде меня может внести свою лепту, попутно потренировавшись
Цитата:
Ломать - не строить. Не я их бережно собирал, не мне их и удалять. Справка полностью автономная. Никакой дополнительной информации о командах ссылки не приносят. Они сделаны для тех, кому интересно почитать, как зародились соответствующие лиспы, попутно разбираясь, что за задачи побудили к их созданию. Однако, грех отказывать. Вариант без гиперссылок, ведущих на сторонние ресурсы, во вложении. Торжественно вручено gomerу |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Цитата:
Насчет справки, первое что нужно было сделать - это перевести Top Previous Next далее нужно разобраться с картинками, они не должны быть лишними, большими, маленькими или выглядеть как скрины разных версий автокада, они должны выглядеть, как часть справки, немного абстрактно, но доходчиво. И вообще нужно взять справочник команд автокада или брикскада и сравнить с хелпом pltools. Сразу все станет понятно. Кстати меню для брикскада - это отдельная пестня... Как следствие напрашивается инсталлятор с выбором платформы (да, да, про англичан не стоит забывать, ведь лисп-то двуязычный, а где справка и меню на английском?) В общем, тут огроменный фронт работ, даже для некомерческого продукта и вся надежда только на амбициозную, талантливую молодежь (я, ксожалению только ворчать умею)... Так что дерзайте, родина вас не забудет |
|||
|
||||
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
У полилинии уже есть наименование - полилиния.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 21.03.2013
Самара
Сообщений: 29
|
Пользуясь тем, что VVA благоразумно дал комплекту ещё немного отлежаться, выкладываю очередной "билд"
В который раз обновились некоторые иконки. Не особо заметно, но времени ушло довольно много. В том числе изменения коснулись и формата 16x16. Единого стиля там всё так же нет, но пёстроты поубавилось. Соответственно новые иконки перекочевали и в файл справки. Так же загнал все значки в библиотеку "pltools.dll", и прописал новые пути к ним файле "pltools.mnu". Прикладываю скриншоты из автокада 2004. Кстати, в 2004-ом команды у меня запускаются, но почему-то вылетают, не завершившись. Думаю, к интерфейсу это отношения не имеет, скорее дело в кривости установки автокада, но выверить этот момент, на чьей-нибудь рабочей станции не помешает. Ещё сделал интерфейс в .cui посредством автокад 2009, чтобы, как говорится, и ленту съесть и в CUI влезть. Иконки опять же ссылаются на "pltools.dll". Лента получилась жутко топорная, иконки в ней не хотят избавляться от фона. Возможно, это решается легко, но я не допетрил. В классических панельках всё нормально. Скриншот прилагается. Поставить автокад 2002 у меня возможности нет. И я даже не догадываюсь, как адаптировать меню под него. Остаётся уповать на владельцев этой ретро-версии. В остальном, никаких изменений. Иконки 64x64, как и адаптация к тёмной схеме, появившейся в 2015, по прежнему в долгосрочных планах. На этом всё. Пробуйте, тестируйте. Скриншот ленты .cuix так же приложен. |
|||
|
||||
А в других версиях?
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 21.03.2013
Самара
Сообщений: 29
|
Да везде всё нормально, тьфу-тьфу. 2009, 2012, 2014, 2015 - всё прекрасно. И даже в 2004 команды включаются, где допуск спросят, где объект попросят выделить. Но как-то безрезультатно. Комп не первой свежести, весь замусоренный. Я так и не понял, что там не так. Может, надо было .fas подгрузить, посмотреть... Некогда было. Как доберусь ещё раз, проверю, если раньше никто не отпишется, что всё в порядке.
Добавлено (17.07.2015): В основном пишет "No database" В архиве видео. Качество ниже среднего. https://drive.google.com/open?id=0Bx...0h6SWpKTGNjcVk Добавлено (19.07.2015): Забыл отметить. На скаченный архив dnl607.zip реакция такая же. Так что, скорее всего, проблема локальная. Последний раз редактировалось T.Bagdat, 19.07.2015 в 16:28. |
|||
|
||||
проектирование а/дорог Регистрация: 03.07.2013
СПб
Сообщений: 376
|
Подскажите, есть ли возможность сделать функцию удаления вершин не по одной, а сразу несколько, рамкой на определенном участке полилинии?
...или команду PL-VxRdc, работающую не на всей полилинии, а на ее участке ...или команду, противоположную PL-DIV - "спрямить" выбранный участок полилинии скопом. В общем каким-то образом ускорить ручное удаление вершин в случаях, когда команду PL-VxRdc не применить ко всей полилинии, т.к. требуется редактирование определенных участков, которых достаточно много. |
|||
|
||||
Цитата:
Если загрузишь из папки LISP pltools.lsp, то увидишь дату редакции Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
САПРовод Регистрация: 22.01.2013
Красноярск
Сообщений: 290
|
|
|||
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Вот такая проблема:
в нашей фирме пользовательские программы установлены на сервере (в том числе и PLTools) и нормально работают. Кроме Справки. Как выяснилось (например, из этого http://www.cronos.ru/kb-1317.html и из этого https://support.microsoft.com/ru-ru/kb/896054) можно разрешить файлам CHM нормально открываться по сети и внутри AutoCAD'а и я даже макросы сочинил, но... Прав у пользователей не хватает для внесения изменений в реестр, а сисадмины категорически не хотят изменять реестр на локальных компьютерах. Можно ли как-нибудь вывернуться? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Копируй chm на локальные машины и прописывай в setfunhelp путь к локальному пути
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Алексей, спасибо за ответ. Но я работаю удаленно и имею доступ через Интернет только к серверу, а к локальным компьютерам доступа не имею, поэтому и скопировать файл CHM на локальные компьютеры не могу. Вот если бы пользователь, нажимая на кнопку Справка, тем самым запускал бы копирование этого файла на свой компьютер в строго определенную папку на диске D: (нпример, D:\HELPUSER) и дальше файл Справки уже открывался бы с локального компьютера... Тут и setfunhelp пригодилась бы. Можно ли с помощью VLisp провернуть такую штуку (скопировать файл с сервера на собственный локальный компьютер)?
|
|||
|
||||
Цитата:
вместо "\\\\server\\ACADTOOLS\\pltools.chm" подставь свой сетевой путь Код:
Код:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Решение пришло совсем с другой стороны. Существует бесплатная программа SumatraPDF. Можно взять здесь:
http://www.sumatrapdfreader.org/down...viewer-ru.html Но многие ли знают, что эта программа спокойно открывает файлы CHM? Портативный вариант можно разместить прямо на сервере без установки (для которой могут понадобиться права администратора) и запускать с локального компьютера. Причем, 32-битная версия нормально запускается на 64-битных системах. Таким образом, если сервер смонтирован на локальных компьютерах как диск Z:, то можно создать следующие конфигурации папок на сервере: Пользовательские программы находятся, (например) в папке Z:\USERSPROG\PLtools, а файлы Справки в папке Z:\USERSHELP\PLtools. В папке Z:\USERSHELP также находится папка SumatraPDF (портативный вариант). Я привел пример с 2-мя папками, потому что у нас, например, в пути пользовательских программ находятся пробелы, а это для указания имени Спраки не подходит. Если же знать об этом, то достаточно будет одной папки с программами на сервере. Макрос же для запуска файла Справки может выглядет так: Код:
|
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Ну выбрать все полилинии, например, так:
Код:
|
|||
|
||||
архитектор Регистрация: 17.03.2015
респ. Коми
Сообщений: 55
|
Ребят, подскажите как в PL-JOIN задать допуск?
(есть макрос Кулика Алексея с допуском 10, но при загрузке его у меня в 16-ом выдает ошибку. Код:^C^C(defun c:mypljoin( / selset _pedit) (if (setq selset (ssget "_:L" '((0^M;. "ARC,*LINE")))) (progn (setq _pedit (getvar "PEDITACCEPT")) (setvar^M;"PEDITACCEPT" 1) (command "_.pedit" "_m" selset "" "_j" 10.0 "") (setvar^M;"PEDITACCEPT" _pedit))));mypljoin )
__________________
архитектор дома, эскизы санаторий, дымоходы |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Что-то я не помню такого макроса...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
архитектор Регистрация: 17.03.2015
респ. Коми
Сообщений: 55
|
Здравствуйте Алексей) Этот макрос 10 лет назад на www.caduser.ru.
__________________
архитектор дома, эскизы санаторий, дымоходы |
|||
|
||||
в файле pltools.lsp найти фрагмент
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Папаё, чуть ниже нормальный код макроса был. Хотя VVA уже ответил
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
С ^M в середине? Эт вряд ли
----- добавлено через 39 сек. ----- Offtop: Но это никого не останавливает Все равно лезем и начинаем читать инструкцию, когда понимаем: все, доломали
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 02.07.2016
Сообщений: 17
|
А никто не встречал команды, которая бы делила полилинию на не равные части? Скажем, ставишь на полилинии базовую точку (в любом месте линии) и остальные точки ставятся на указаном растоянии от базовой точки с учетом дуг, изломов полилинии и т.д. Растояния для каждой новой точки что б задавались отдельно
|
|||
|
||||
Инжиниринг Регистрация: 16.09.2011
Тюмень
Сообщений: 224
|
Цитата:
|
|||
|
||||
Luba Haikin, Какую конкретно команду вызываешь? Приложи пример с файла или опиши что делаешь.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
В AutoCAD - напрямую невозможно.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 10,959
|
|
|||
|
||||
В Autocad 2019 en команда "R3P -Прямоугольник по 3-м точкам" перестала корректно работать. При вводе размеров прямоугольника по первому направлению строит правильную длину грани , а по второму строит грань произвольной длины (причем длина грани всегда разная)
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам. |
||||
|
||||
Cfytrr, пока не смогу проверить, нет 2019 автокада
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
КИП, АСУ ТП, слаботочка Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422
|
Доброе время суток!
Как можно при помощи этих команд обрабатывать сразу несколько полилиний, у которых вершины на определенном участке чертежа совпадают? Требуется выделить полилинии и добавить вершину к выбранному сегменту ВО ВСЕ полилинии. |
|||
|
||||
Инжиниринг Регистрация: 16.09.2011
Тюмень
Сообщений: 224
|
Цитата:
|
|||
|
||||
КИП, АСУ ТП, слаботочка Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422
|
мне так сделать нельзя, т.к. хэндлы объектов поменяются. А они в данном случае очень важны(фактически каждая полилиния со своим хендлом определяет кабель с его трассой на плане. При изменениях в плане нужно немного откорректировать полилинии всех кабелей. Сейчас пользуюсь функцией добавить вершину в составе инструментария от VVA. Но даже для 10 линий это занимает много времени. А есть участки, где лежит 50 кабелей )))
|
|||
|
||||
Шаражпроектхалтурмонтаж Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,985
|
|
|||
|
||||
Без проблем. Нужно чтобы pltools были загружены (использую пару функций). Или "достать" их оттуда
Код:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
КИП, АСУ ТП, слаботочка Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422
|
Уважаемый VVA,
нужен совет по работе с полилиниями. У меня их сотни (каждая=1 кабель). но вершины лежат с большим разбросом. Есть ли возможность все вершины полилиний привести в указанную точку? Выделяем областью все вершины полилиний (и сами полилинии). Вершины внутри данной области нужно перенести в указанную точку. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 10,959
|
Цитата:
Код:
|
|||
|
||||
|
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 10,959
|
мой код так и делает - анализирует все полилинии, входящие в предварительный набор (замкнутые полилинии и прочее игнорируется), находит у каждой из них наиболее близкую к опорной точке вершину и подтягивает ее. А опорная точка выбирается в момент указания "идеально" нарисованного кабеля рядом с вершиной, автоматически тоже подтягиваясь к этой вершине "идеальной" полилинии.
1. Загрузили через NetLoad скомпилированную под вашу версию и разрядность акада сборку. 2. Выделили кабели-полилинии (можно вместе с "идеальной", можно без - все равно пропустит при обработке. Как и все остальное - что не относиться к полилиниям). 3. Запускается команда "MVPLSSP". Она просит выбрать "идеальную" полилинию рядом с той вершиной, куда нужно подтянуть остальные полилинии из набора. p.s. Слои, где расположены полилинии, должны быть разблокированы. |
|||
|
||||
ну так-то оно и в лиспе не 100-умово)
без обвесов… выбор вершин секрамкой. уточнение - выбираются конечно же полилинии. Код:
Последний раз редактировалось koMon, 22.06.2018 в 22:12. |
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 10,959
|
Кому просто что привычнее - у меня задачи в основном с диалогами и обработками массивов информации - как то в лисп бессмысленно изначально было "вгрызаться" глубоко)
А даю только коды - чтобы побороть предрассудки о том, что Net так зависим от версии акада и разработчика. Может хотя бы несколько человек еще попробуют собрать библиотеку из готового кода и осознают это.. |
|||
|
||||
Цитата:
|
||||
|
||||
Шаражпроектхалтурмонтаж Регистрация: 29.10.2004
Талды-Париж
Сообщений: 5,985
|
Цитата:
Вопросик можно по этой же части? А можно ли программно зацепить среднюю ручку сегмента полилинии для последующего его смещения, зная координату её расположения? Другими словами программно перетащить сегмент, как если бы я это сделал за ручку.. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 10,959
|
Offtop: т.е. современный инженер, если не нашел встроенного готового решения, то вместо поиска в гугле по "Net AutoCAD скомпилировать" впадает в панику и ступор?) Компиляторов более чем, включая и бесплатных - причем с русским интерфейсом. Информация на русском уже тоже много лет не является тайной. В крайнем случае можно попросить сисадмина разобраться.
----- добавлено через ~2 мин. ----- Зачем? Ручка для визуализации взаимодействия с пользователем - программно вершины смещайте. |
|||
|
||||
Offtop:
Offtop: скорее в иронический чёрный сарказм))) Цитата:
опа. так тут тащить ничего по ходу не нужно будет.. Последний раз редактировалось koMon, 22.06.2018 в 12:00. |
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 10,959
|
ну если под данную задачу - то тут от щелчка не избавишься) Тут скорее указывается полилиния и затем блоки в цикле - а дальше уже вычисляется проекция середины геометрии блока на полилинию и добавляются вершины между найденными для "петли" кабеля.
----- добавлено через ~5 ч. ----- Offtop: вы не поверите - не то что в акад, а в сам windows компилятор встроен) |
|||
|
||||
|
||||
|
||||
КИП, АСУ ТП, слаботочка Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422
|
Здорово! огромное спасибо!
А можете немного подправить, чтобы полилинии выделялись отдельно, а запрос на секрамку шел уже потом? А то выделяются все полилинии, и нужные и ненужные. Еще одна просьба - если у выделенной полилинии вершина не лежит внутри секрамки, такую полилинию нужно исключить из набора. И вопрос всем - покажите как использовать эту прогу, находясь в пользовательской системе координат. Надоело каждый раз переключаться в WCS. Последний раз редактировалось Frigate, 09.07.2018 в 12:07. |
|||
|
||||
Обрабатываются, только предварительно или выбранные после запуска команды полилинии. Размер опоясывающей рамки меняется движением мыши, перемещение опоясывающей рамки - однократное нажатие пробела, возврат к изменению размера - однократное нажатие пробела.
Код:
Последний раз редактировалось koMon, 27.07.2018 в 09:07. Причина: Модификация выбора полилиний, рамки для опоясывания вершин |
||||
|
||||
GIFы
|
||||
|
||||
С ошибочной отрисовкой прямоугольников в 2019 акаде ничего не сдвинулось? Очень расстраивает меня эта ошибка
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам. |
||||
|
||||
Прогрессирующий вариант построения прямоугольника по 2-м диагональным точкам.
Код:
Последний раз редактировалось koMon, 08.10.2018 в 11:26. Причина: Динамически изменяется созданный прямоугольник. Добавлены опции по заданию размеров прямоугольника. |
||||
|
||||
начинающий инженер-гидротехник Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 887
|
Autocad 2015 SP2. При использовании PL-VxRdc Autocad предлагает заменить "command" на "command-s". Использую вариант с панелями поэтому нет возможности внести изменения в файл pltools.fas
Цитата:
|
|||
|
||||
но ведь можно внести изменения в лисп, который в шапке, да и компильнуть его?!
;****************************************** Это их худые черти бермутят воду во пруду, Это все придумал Черчилль в восемнадцатом году. Мы про взрывы, про пожары сочиняли ноту ТАСС, Тут примчались саNETары и зафиксировали нас. ;****************************************** fas так fas) check_pline.fas проверка и оптимизация LW полилинии. |
||||
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,085
|
Хочу примазаться к высокому искусству .
Недавно пришлось работать с чертежом, содержащим множество отрезков и полилиний с текстовым типом линий (например ----В---- или -----К----). В результате всяких манипуляций на многих из них тип линий отображался "вверх ногами", что не есть хорошо. Т.к. команды ENTREV и ENTREVS сами не определяют, нормально ли отображается тип линии и нужен ли реверс, а выделять подлежащих реверсированию вручную неинтересно, написал небольшую модификацию Entrev. Она автоматически определяет отрезки, у которых тип линии "вверх ногами" и только для них выполняет реверс. Работает только для отрезков - для полилиний из прямолинейных сегментов дуг и сплайнов бессмысленно, т.к. реверсируется весь объект целиком, а в случае поворота на 90 град. и более разные сегменты будут выглядеть по-разному - одни нормально, другие "вверх ногами". И реверсирование полилинии в таком случае для одних сегментов исправит ситуацию, а для других - испортит. Поэтому в фильтр выбора включены только отрезки, строки для работы с полилиниями и сплайнами закомментированы. Код:
Последний раз редактировалось kp+, 19.02.2019 в 23:17. |
|||
|
||||
Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
kp+, По моему, с 2010 Автокада есть другое решение. В описании типа линий появился параметр флаг поворота U ("вертикальный")
Загрузи этот тип линий и попробуй порисовать слева-направо, справа-налево и хитровыкрученными линейными сегментами Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,085
|
Хм, интересно. Жаль, что не с 2010 (на котором работаю), а только с 2011. 2010 ругается на неверное определение и сообщает, что "в выражении должны присутствовать R, A, S, X, или Y"
Последний раз редактировалось kp+, 20.02.2019 в 16:37. |
|||
|
||||
Регистрация: 16.10.2013
Сообщений: 323
|
товарищи, при установке архива с программами для работы с полилиниями загрузил меню, как написано в файле ридми, и у меня все мои менюшки слетели, а главное мое настроенное рабочее пространство я не могу загрузить.
что делать? как так получилось? |
|||
|
||||
найди acad.cuix.bak и верни обратно. А вообще надо начинать с версии винды, прав, версии Автокада.
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Регистрация: 16.10.2013
Сообщений: 323
|
Уф, вроде восстановилось
Добавляю меню с помощью _menuload и выбираю файл .mnu (а то файлы .cuix сносят все нафик и опустошают настроенное пространство) Но теперь в строке меню нет раздела pltools (см скриншот п.1, обвел куда нужно добавить меню работы с полилиниями) Пытался сделать: сервис - адаптация - интерфейс - перевести, отдельно открыл файл pltools.cuix в правом окне, но в нем когда разворачиваю колонку "меню" ничего не раскрывается, т.е. перенести тупо нечего (см скриншот п.2) версия винды 8.1, автокад 2014. Последний раз редактировалось posetitel, 21.02.2019 в 13:12. |
|||
|
||||
подгрузи через menuload файл pltools.mnu или pltools.mns. После строки "Предыдущая версия" появится стока "Файлы частичной адаптации"
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
Уважаемые профи, подскажите, можно ли сделать, чтобы PLTOOLS прореживала вершины сглаженной полилинии? Файл с деталью прикрепляю. Если убрать сглаживание и выполнить прореживание - все ок, но потом после применения сглаживания деталь принимает причудливые формы (острые углы портятся). Но по задаче требуется оставить сглаживание, проредить вершины, затем полилиния разобьется на отрезки и дуги, и режется на станке. Без дуг решение не подходит.
|
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
|
||||
|
||||
Абсолютно верно, до полилинии был сплайн, который был преобразован в полилинию. А сплайн пришел из Corel, источника бед, как обычно.
Последний раз редактировалось Svetlana2020, 08.04.2019 в 12:37. |
||||
|
||||
|
||||
|
||||
дуги и отрезки
|
||||
|
||||
Svetlana2020, 2 варианта
LISP. Как преобразовать выделенные сплайны в полилинии? и spline to plyline (flatten)
__________________
Как использовать код на Лиспе читаем здесь |
||||
|
||||
нет секрета. написал конвертер сплайна в дуги и линии. на лиспе
никакой прополки, см. выше. да и едва ли какая прополка поможет с таким безобразием, которое получается штатно при конвертации сплайна в плинию. |
||||
|
||||
Регистрация: 29.05.2019
Сообщений: 4
|
Всем привет
PLTools многократно облегчает работу. Есть идея по созданию команды которая может быть очень полезна. Смысл в следующем: Объединить в одну команду ConvTo2d + PL-JOIN + _Wipeout ( по контуру полилинии ) + срытие маскировки на задний план + объедение всего объекта в блок (желательно с вводом имени блока). Господа эксперты, как такое возможно сделать? |
|||
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,085
|
Offtop: Не эксперт, но отвечу: можно с помощью макроса, можно на LISP; теоретически можно на VBA или с помощью "тяжелой артиллерии" типа .net или ARX (но тогда без PLTOOLS, которые изначально на LISP). А что Вы уже сделали в этом направлении, что получилось, что не получается?
|
|||
|
||||
Регистрация: 29.05.2019
Сообщений: 4
|
Цитата:
|
|||
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,085
|
В студию.
Цитата:
Не знаю, по каким признакам Вы собираетесь выбирать объекты, но есть выбор с помощью фильтра (опция 'filter). Там, правда, выскакивает окошко, но настройки фильтра можно сохранить заранее. |
|||
|
||||
Регистрация: 29.05.2019
Сообщений: 4
|
Вот такой макрос получился. Правда все ровно пару кликов приходится сделать вначале. Также его можно допилить созданием блока в конце.
^C^C-слой;с;Редактор1;;_rectang;\\-слой;с;Редактор2;;КПОЛИ;\;(sssetfirst nil (ssget "_x" '((0 . "LWPOLYLINE")(8 . "Редактор1"))));_.erase;_.erase;\;(sssetfirst nil (ssget "_x" '((0 . "REGION")(8 . "Редактор2"))));слойотд;расчленить;все;_ai_selall;CONVTO2D;_ai_selall;pl-join;_ai_selall;_wipeout;п;д;(sssetfirst nil (ssget "_x" '((0 . "WIPEOUT")(8 . "Редактор2"))));_draworder;А;(command "_.-layer" "_m" "0" "");_laycur;все;;СЛОЙОТДОТМ;(command "_.-layer" "_m" "0" "");^C^C(command "слойудал" "И" "редактор2" "" "д");(command "слойудал" "И" "редактор1" "" "д"); С простыми объектами работает на ура. С объектами посложнее ругается на замкнутость полилинии. С сложными объектами также ругается на замкнутость и создает много ненужных областей и примитивов которые необходимо чистить. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 10,959
|
Н.Н.Полещук. "AutoLISP и Visual LISP в среде AutoCAD" - академическая справка по сути, не смотря на год - актуальна до сих пор)
А потом поисковик. Нет такого ресурса - чтобы открыли и сразу готовые решения в виде кода получили, все собирается из справки, форумов и работы головой. |
|||
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,085
|
Так Вы уже написали 80% своего макроса на ЛИСПе. Для начала можно переписать оставшиеся "макросные" вызовы команд через функции command или vl-cmdf (синтаксис мало отличается от макросного) и объединить все в одну функцию. Хотя бы будет читаемо
А там уже будет о чем поговорить...в отдельной теме. |
|||
|
||||
Авторы, можно ли добавить функцию:
От указанной точки на полилинии (вершины) отложить в указанную сторону расстояние заданной длины (по полилинии) и в этом месте на полилинии поставить точку (только одну, а не серию)?
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам. |
||||
|
||||
Инжиниринг Регистрация: 16.09.2011
Тюмень
Сообщений: 224
|
Цитата:
|
|||
|
||||
Регистрация: 08.03.2020
Сообщений: 1
|
Доброго времени суток!
Помогите, пожалуйста, разобраться с проблемой: 1 Вроде бы файлы в папку, прописанную в путе доступа к вспомогательным файлам (Сервис->Настройка->Файлы->Путь доступа к вспомогательным файлам) 2 командой _menuload подгрузил файл pltools.mnu При запуске команды пишет: "Неизвестная команда"... |
|||
|
||||
Регистрация: 16.10.2013
Сообщений: 323
|
товарищи, пытаюсь загрузить приложение, но не получается.
прописал путь к папке pltools во вспомогательных файлах загрузил через _menuload файл pltools.cuix, в ленте появилась вкладка pltools, но она не открывается. пытаюсь загрузить через _menuload файлы pltools.mnu,pltools.mnx, пишет "в разрешении на запись отказано. не удалось создать c:\program files\autodesk\autocad 2020\pltools\pltools.cuix" |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772
|
Помести в другой каталог, куда имеешь право на запись.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 18.01.2021
Сообщений: 404
|
На ген планах часто встречаются трассы, состоящие из отдельных line, отстоящих друг от друга на некоторое расстояние, но выглядящими в целом как единая полилиния "штриховая".
Хотелось бы функцию, объединяющую такие line в полилинию. Притом мне лень предварительно выбирать все line, хотелось бы указать одну, а комп пусть сам найдет ее продолжающие и присоединит их. В этой ветке 32 страницы, это очень много, что бы последовательно искать решение. А в титульном перечне такой функции не обнаружил. Никто не помнит, не решена ли эта задача в теле данной ветки? или может быть в другой какой ни будь... |
|||
|
||||
Приветствую, коллеги.
На досуге переоформил немного иконки pl-tools, что бы на темной теме смотрелось юзабельней. з.ы. Имена большинства иконок изменены относительно оригинальных.
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... |
||||
|
||||
Хорошо бы для ConvTo2d, ConvTo3d и для других команд, в которых заменяются оригиналы на другое, сделать сохранение-передачу полезной информации из оригиналов. Хотя бы XData.
Но хорошо бы и для Object Data из Map/Civil, и Property Sets из Civil, Architecture, MEP. Возможна ли вне этих вертикальных приложений передача Object Data и Property Sets - не знаю, увы. Но и в вертикальных приложениях многие пользуются PlTools. Или, наоборот, не могут воспользоваться. Кстати, сейчас при преобразованиях теряются Гиперссылки, а они как раз есть XData. И еще есть некие пользовательские Примечания, но не знаю, что они суть внутри. Тоже теряются.
__________________
количество моих сообщений не говорит о знании Автокада Последний раз редактировалось АлексЮстасу, 31.07.2021 в 19:40. |
||||
|
||||
Регистрация: 16.10.2013
Сообщений: 323
|
товарищи, команды PL-CW и PL-CCW почему-то не работают на полилиниях с изломами, а на прямых полилиниях работают как-то через раз. не могу понять в чем дело.
суть проблемы: сделал полилинию с буквой через определенный интервал (для обозначения сетей на плане), в некоторых местах буква получается вверх ногами, хочу с помощью лиспа перевернуть этот участок полилинии, но ничего не выходит. Генерацию типа линии, как указано в шапке, включал, но не помогает. в чем может быть дело? файл прилагаю, линия вот от сюда https://dwg.ru/dnl/13129 |
|||
|
||||
posetitel, дело не в командах, они то работают, а вашем типе линии.
В этом же файле поменял тип линии, все ворочается как надо.
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы... |
||||
|
||||
Регистрация: 02.03.2022
Сообщений: 2
|
Добрый день. подскажите, пожалуйста, можно ли как-нибудь изменить LISP PL-DIVAll, чтобы расстояния проставлялись произвольной длины в заданных пределах (т.е. , к примеру программа спрашивает от какого мин и макс расстояния и сама делит линию на произвольную длину вписывающуюся в эти мин и макс. расстояния)? Спасибо.
|
|||
|
||||
Регистрация: 11.07.2022
Сообщений: 451
|
Небольшая неточность в описании команд PLTOOLS пост #1
Эти строки PL-A2L -Замена линейного сегмента в полилинии дуговым сегментом. PL-L2A -Замена дугового сегмента в полилинии линейным сегментом. Надо читать так: PL-L2A -Замена линейного сегмента в полилинии дуговым сегментом. PL-A2L -Замена дугового сегмента в полилинии линейным сегментом. Команда: PL-A2L Выберите нужный дуговой сегмент в полилинии Команда: PL-L2A Выберите нужный линейный сегмент в полилинии Возможно ли для замкнутой полилинии построить среднюю полилинию, выбрав этот контур, а контур удалить? Последний раз редактировалось Ingpro, 04.09.2023 в 14:49. |
|||
|
||||
идущий по граблям Регистрация: 26.05.2005
Сообщений: 5,085
|
Цитата:
- подорвать (_explode); - удалить крайние сегменты; - пересобрать оставшиеся обломки с помощью pl-join. |
|||
|
||||
Регистрация: 11.07.2022
Сообщений: 451
|
|
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Не проще ли для этого использовать команду _TRIM с опцией _ALL, раз уж о ручном варианте речь?
|
|||
|
||||
Инжиниринг Регистрация: 16.09.2011
Тюмень
Сообщений: 224
|
|
|||