|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Как уменьшить количество вершин в полилинии
джедай
Магадан
Регистрация: 31.01.2005
Сообщений: 460
|
||
Просмотров: 42208
|
|
||||
джедай Регистрация: 31.01.2005
Магадан
Сообщений: 460
![]() |
блин(( опять забыл уточнить
экспресс тулз есть, тулпаком пользоваться тоже умею) все что советовали не подходит, работаю в ПСК, команда DSTP_PLWEED (которая Weed) не умеет работать в ПСК и выдает ошибку может кто в курсе в 10-я версия тулпака может работать в ПСК? есть ли смысл его искать? |
|||
![]() |
|
||||
джедай Регистрация: 31.01.2005
Магадан
Сообщений: 460
![]() |
не хочу чтобы у всех участвовавших вот в этой http://dwg.ru/forum/viewtopic.php?t=8509 ветке конференции создалось впечатление что получив лисп с возможностью создания вершин, создал кучу вершин и теперь пытаюсь уменьшить их количество))
просто теперь нужна помощь в "упрощении" dxf файлов с диким количеством точек)) |
|||
![]() |
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Цитата:
|
|||
![]() |
|
||||
джедай Регистрация: 31.01.2005
Магадан
Сообщений: 460
![]() |
Цитата:
ибо работаю не один и есть люди которым автокад очень сложен, вот для них и нужен лисп вершины убивать а то ну очень меня нервирует по 10 раз в день объяснять как добавить вершину, как ее убрать и почему убрались вершины с другой полилинии и т.д. спасите мои нервы!))) дайте пожалуйста лисп убивающий вершины) to Кочетков Андрей лендом пользовался но вот так сразу не могу придумать как убить лишние вершины, может в двух словах объясните? |
|||
![]() |
|
||||
Java/Kotlin/Go Регистрация: 03.02.2006
Сообщений: 5,786
|
Сначала конвертируем двухмерные линии в трехмерные (потому что последующие команды Лэнда не работают с 2д линиями). Это можно сделать либо с помощью Лэнда (см. картинку), либо с помощью Тулпака. Я предпочитаю Тулпак, но принципиальной разницы нет.
Затем импользуем команду Weed Vertices из Лэнда (см. картинку). Для "максимально минимального" искажения линий, угол надо выставить именно таким, а вот с длиной поиграйся - тут нет общих рекомендаций. Ну и наконец, если необходимо, преобразуй 3д линии в 2д, опять же с помощью либо Тулпака, либо Лэнда. [ATTACH]1152767351.jpg[/ATTACH] |
|||
![]() |
|
||||
джедай Регистрация: 31.01.2005
Магадан
Сообщений: 460
![]() |
ага, с лендом понятно))
мне по другому будет тогда проще делать - копировать в новый файл(COPY, Paste to orig..), там тулпаком уменьшать к-во вершин, и обратно копировать уже с меньшим к-вом вершиин так мне не нужно будет на машины ленд ставить) но за совет спасибо) |
|||
![]() |
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Скажите, VVA, ну почему у вас такая классовая ненависть к "легким полилиниям"? Почему вы их посточнно отлучаете от всех прочих? Посмотрите, как просто и изящно вы могли бы сделать вашу программу, если бы не были таким непримирмым:
Код:
|
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
>Лентяй Похоже, что у "легких полилиниях" классовая ненависть ко мне. Опять Актовад выдает
Цитата:
>aldt Пока что свой вариант прогаммы ввиду вышесказанного. Код:
Если код Лентяя работает, то замени в Код:
Так же вершина может не спрямится, если она "переходит" через 0. Т.е. при навравлении 1 и 359 градусов с невязкой в 2 программа не удалит вершину (хотя должна). Но пока не придумал алгоритм проверки. Как вариант выхода -> повернуть плинию на некий угол, а потом вернуть обратно. Последний раз редактировалось VVA, 18.09.2015 в 23:51. |
|||
![]() |
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Цитата:
Код:
Код:
![]() |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Лентяй, браво [sm204] .Однако я уже писал и еще раз повторю, что Лентяй оправдывает свой ник и к его кодам надо подходить (подползать с благоговением и трепетом) творчески. В данном случае не получен указатель на объект util + много глобальных переменных.
Вот подправленный вариант Код:
|
|||
![]() |
|
||||
Project Engineer Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392
|
Уважаемый VVA. ваше стремление довести все до совершенства весьма похвально, но ваше усердие иногда служит вам плохую службу. В частности, вы включаете сплайны ("сглаженные полилинии", AcDb2dPolyline) в список обрабатываемых обектов, а затем изощряетесь их игнорировать. Не проще ли отбросить их сразу - на стадии первичной обработки списка координат, например так:
Код:
![]() Да, и еще, коль скоро уже vx определено и обработано, надо ли каждый раз проверять его существование? Подумайте, и, может быть, все станет немного проще. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
>Лентяй У 99.999% пользователей скорее всего так и будет, при plinetype=2 AcDb2dPolyline-это только "сглаженная полилиния".
У нас есть arx, который создает не сглаженные AcDb2dPolyline, и явно не командой _PLINE :twisted: . Поэтому либо _convert после каждой этой команды, либо учитывать, что может быть не сглаженная AcDb2dPolyline. Когда есть алгоритм, стараешься вписаться в него. (exit) - не пойдет, мы ведь в цикле по набору. Надо его отработать до конца. (setq n 0 vx nil) - искусственный прием, просто все последующие проверки не отработают для сглаженной полилинии. Последний раз редактировалось VVA, 04.01.2014 в 21:29. |
|||
![]() |
|
||||
Регистрация: 01.01.2014
Сообщений: 2
|
Чтобы не создавать новой темы. Нужно значительно уменьшить количество вершин без ущерба чертежу. Очень нужна помощь, от этого зависит карьера. Чертёж выполнен в программе Rhino сторонней фирмой-клиентом, Autocad-ом они не пользуются. Нам нужно изготовить деталь, но машина не принимает чертежи такой сложности. Нужен способ упростить. Заранее спасибо.
Последний раз редактировалось Osbend, 01.01.2014 в 18:41. Причина: й |
|||
![]() |
|
||||
Геодезист Регистрация: 23.05.2012
Ухта
Сообщений: 1,377
|
Osbend, можно использовать пакет программ Pltools.
__________________
Как-то так. |
|||
![]() |