Re: Программа+макрос на кнопку "Удаление повторяющихся элементов" для AutoCAD 2006

> kpblc
В overkill дается в поле Numeric fuzz погрешность, если расстояние от первого объекта до последнего 1000, то и задавать надо там 1000, при это программа удалит большую часть любых объектов.

Re: Программа+макрос на кнопку "Удаление повторяющихся элементов" для AutoCAD 2006

> AY
можно в мыло? kpblc2000<<#> >yandex.ru - инфа интересная.
>ch …  15:04:11)

Ну я ж сказал "В качестве прикола".

Re: Программа+макрос на кнопку "Удаление повторяющихся элементов" для AutoCAD 2006

> kpblc
Вот я и прикололся в автокаде...

Re: Программа+макрос на кнопку "Удаление повторяющихся элементов" для AutoCAD 2006

> AY
Да я, собственно, имел в виду процесс, обратный размножению...

Re: Программа+макрос на кнопку "Удаление повторяющихся элементов" для AutoCAD 2006

> Владимир Громов
Стерилизацию, что ли? :lol:

Re: Программа+макрос на кнопку "Удаление повторяющихся элементов" для AutoCAD 2006

Будет мне кто- нибудь помогать? Или будете прикалываться?

Re: Программа+макрос на кнопку "Удаление повторяющихся элементов" для AutoCAD 2006

> Forma
Да всем. Array да Array. А как на самом деле получились "лишние" объекты - неизвестно, может их напихали через буфер обмена, или блок расчленили.

Re: Программа+макрос на кнопку "Удаление повторяющихся элементов" для AutoCAD 2006

> kpblc
Ну, стерилизация - это только полдела, надо же повернуть процесс вспять.

Re: Программа+макрос на кнопку "Удаление повторяющихся элементов" для AutoCAD 2006

> Владимир Громов
Именно, через Array. Я знаю! Мне лишнего не надо.

Re: Программа+макрос на кнопку "Удаление повторяющихся элементов" для AutoCAD 2006

> Владимир Громов
Обратный размножению...
:^D

> Forma
По теме - писал програмку, которая ищет одинаковые полилинии, но лежащие в разных местах и возможно с поворотом на неизвестный угол, изюминкой были полилинии с лишними вершинами.
Программа находила такие полилинии и заменяла на блоки...
Хочу сказать задача обратная размножению какого либо примитива решаема, но если взять все возможные примитивы - тут для одного человека не ночь, а вечность нужна...

Re: Программа+макрос на кнопку "Удаление повторяющихся элементов" для AutoCAD 2006

> Forma
Можно примерный файл на webfile.ru ?

Re: Программа+макрос на кнопку "Удаление повторяющихся элементов" для AutoCAD 2006

> Евгений Елпанов
В том то и дело, что нельзя. Могу удалить лишнее. Это называется потеря контроля на стадии проектирования. Опасная вещь.

> che
Извини. Не могу.

Re: Программа+макрос на кнопку "Удаление повторяющихся элементов" для AutoCAD 2006

> Forma
Да откуда же AutoCAD'у известно, что объекты размножались с помощью "Array", может это происходило естественным путем. Через какую переменную можно выяснить, что такой-то объект получился в результате размножения, а не в результате деления? Я просто хочу сказать, что "Array" здесь ни причем. А ты, видимо, хочешь предположить, что если просматривается какая-то регулярность в расположении объектов ("критерий"), то эти объекты и есть лишние, IMHO.

Re: Программа+макрос на кнопку "Удаление повторяющихся элементов" для AutoCAD 2006

Еще раз обьясняю. С другой стороны. Представьте себе интерфейс команды Array.
Точно также селектируете обьект. Заполняете поля. Но вместо того. чтобы генерировать
обьекты, программа удаляет уже имеющиеся на чертеже, вместе т.с. с исходной.
Понятно?

Re: Программа+макрос на кнопку "Удаление повторяющихся элементов" для AutoCAD 2006

> Владимир Громов
Вы же вначале стояли на правильной позиции. А пото пошли куда то в сторону.

Re: Программа+макрос на кнопку "Удаление повторяющихся элементов" для AutoCAD 2006

Есть идея.
Насколько мне помнится метки примитивов присваиваются последовательно, как числа в шестнадцатеричном формате. А раз так то примитивы созданные при выполнении команды array должны иметь последовательные хендлы. Если мое предположение верно, то дело за малым выбираем один из примитивов и в цикле начинаем удалять объекты (с визуальным контролем удаляемого) прибавляя по единичке к метке, а потом тоже самое отнимая по единице.
Конкретные вопросы реализации конечно можно обсудить, но идея кажется выполнимой.

Re: Программа+макрос на кнопку "Удаление повторяющихся элементов" для AutoCAD 2006

> Forma
Да ни на какой я позиции не стоял. Моя позиция - работать аккуратно, и знать, что ты собственно делаешь и зачем, и почему так, а не эдак.
Про метки я тоже говорил, только в команде отмены, а вот с метками объектов может что-то и получится, только бы выяснить метку "начального" объекта.

Re: Программа+макрос на кнопку "Удаление повторяющихся элементов" для AutoCAD 2006

> Владимир Громов
Ладно, ладно. Но в этих метках я ничего не понимаю. Если Вы хотите применить откат по UNDO, то это точно не проходит.

Re: Программа+макрос на кнопку "Удаление повторяющихся элементов" для AutoCAD 2006

> Владимир Громов
Получить метку начального объекта едва ли удастся, да и без этого можно обойтись так как я уже писал. Если объектов очень много можно удалять сразу по несколько штук, но с обязательным визуальным контролем т.е. объекты надо подсвечивать и центрировать на них экран перед каждым удалением.

Re: Программа+макрос на кнопку "Удаление повторяющихся элементов" для AutoCAD 2006

> AY
А, если их 800-1200. И вокруг них туча других. И все в одном слое, одним цветом и т.п. ?

Re: Программа+макрос на кнопку "Удаление повторяющихся элементов" для AutoCAD 2006

> Forma
Объясняю для не посвещенных.
Дело обстоит так (если я не ошибаюсь) : каждому примитиву назначается метка-хендл представляющая строку содержащую число в шестнадцатеричном формате т.е. попросту число. При создании новых объектов им присваивается новая метка - метка предыдущего объекта (читай число) +1. Выходит, что объекты созданые командой массив содержат метки идущие по порядку. Следовательно узнав одну метку в середине последовательность (т.е. прочитав ее из выбранного примитива) можно плясать в одну, а затем в другую сторону выделяя объекты с последовательными метками.

Re: Программа+макрос на кнопку "Удаление повторяющихся элементов" для AutoCAD 2006

> Forma
См > kpblc (2005-08-17 13:34:54)
Вопрос в объеме и точности поставленной задачи...
> AY : А как тогда контролировать, что последовательность закончилась?
Прости тупого, сам допер, что вопрос уже к реализации - по [enter] закончить удаление и все тут ;)

Re: Программа+макрос на кнопку "Удаление повторяющихся элементов" для AutoCAD 2006

В одну сторону можно пройти и без меток, но нужно определить насколько будут похожи объекты и еще первый елемент не обязательно первый по метке - его могли и раньше нарисовать.
У меня что то такое на ум лезет:

(defun c:test (/ ENTITY NABOR TYPE_OBJ)
  (setq entity (car (entsel)) nabor (ssadd entity)
    type_obj (assoc 0 (entget entity)))
  (while (setq entity (entnext entity))
    (if (equal type_obj (assoc 0 (entget entity)))
    (setq nabor (ssadd entity nabor))))
  (sssetfirst nil nabor)
  )

Re: Программа+макрос на кнопку "Удаление повторяющихся элементов" для AutoCAD 2006

> kpblc
Мне это так видится :
- выводится запрос
Укажите примитв для поиска последовательности:
- указываем примитив
- он удаляется
- экран центрируется на новом, найденном программой, "подсвеченном" объекте/объектах
- выводится запрос
Для удаления объектов и продолжения нажмите Enter [Обратно/Неск_объектов/Выход] <Enter>:

Re: Программа+макрос на кнопку "Удаление повторяющихся элементов" для AutoCAD 2006

> AY
Еще раз:
А, если их 800-1200. И вокруг них туча других. И все в одном слое, одним цветом и т.п. ?