Тема: Как выделить/удалить точки с заданным расстоянием между ними ?

Есть объекты автокада "точки" лежащие в разных слоях необходимо удалить точку, лежащую к другой ближе 25 метров. Еще надо удалить точки, лежащие ближе 5 м к полилиниям

Re: Как выделить/удалить точки с заданным расстоянием между ними ?

Чего-то все молчат... Попробую ответить на второй вопрос (про полилинии)...
Можно составить запрос подобный этому:
(setq ade_cmddia_before_qry (getvar "cmddia"))
(setvar "cmddia" 0)
(mapcar 'ade_dwgdeactivate (ade_dslist))
(setq ade_tmpprefval (ade_prefgetval "ActivateDwgsOnAttach"))
(ade_prefsetval "ActivateDwgsOnAttach" T)
(ade_prefsetval "ActivateDwgsOnAttach" ade_tmpprefval)
(ade_qryclear)
(ade_qrysettype "preview")
(ade_qrydefine '("" "" "" "Location" ("polyline" "bufferfence" "inside"  5.000000  0 (0 0 1) 0.000000 (127.732 216.405 0) 0.000000 (187.924 176.124 0) 0.000000 (228.831 165.616 0) 0.000000 (266.232 161.53 0) 0.000000 (273.829 204.729 0) 0.000000 (282.595 226.913 0) 0.000000 (288.439 240.924 0) 0.000000 (423.757 540.041 0) 0.000000 (466.14 667.055 0) 0.000000 (526.367 586.835 0) 0.000000 (597.748 174.597 0) 0.000000 (843.12 138.944 0) 0.000000 (990.343 158.999 0))""))
(ade_qrydefine '("OR" "" "" "Location" ("polyline" "bufferfence" "inside"  5.000000  0 (0 0 1) 0.000000 (100.85 200.643 0) 0.000000 (145.263 152.19 0) 0.000000 (179.742 113.66 0) 0.000000 (231.169 68.7095 0) 0.000000 (342.787 33.0991 0) 0.000000 (384.863 27.8451 0) 0.000000 (423.433 33.0991 0) 0.000000 (428.692 33.0991 0))""))
(ade_qrydefine '("OR" "" "" "Location" ("polyline" "bufferfence" "inside"  5.000000  0 (0 0 1) 0.000000 (82.4679 328.351 0) 0.000000 (196.231 444.223 0) 0.000000 (265.381 591.292 0) 0.000000 (330.07 716.077 0) 0.000000 (405.912 771.785 0) 0.000000 (479.524 800.753 0) 0.000000 (559.827 825.265 0) 0.000000 (642.361 856.461 0) 0.000000 (823.044 845.32 0) 0.000000 (972.497 845.32 0) 0.000000 (1139.8 831.95 0) 0.000000 (1224.56 845.32 0))""))
(ade_qrydefine '("AND" "" "" "Property" ("objtype" "=" "POINT")""))
(ade_qrysetaltprop nil)
(ade_qryexecute)
(setvar "cmddia" ade_cmddia_before_qry)
Здесь 3 полилинии, но их может быть больше.
Запрос выбирает точки, лежащие ближе 5м к полилиниям. Остается только удалить выбранные точки. Основу запроса можно создать "штатными" средствами, выгрузить во внешний файл и отредактировать (добавить N-ое количество полилиний например из .mif файла) в любом текстовом редакторе.
По первому вопросу... с точками можно поступить аналогично, если есть возможность выделить основные и второстепенные точки.
Возможно, есть способы сделать это проще.

Re: Как выделить/удалить точки с заданным расстоянием между ними ?

> Penguin
В Autodesk Map есть функции формирования запроса к подключенному рисунку по положению.Команда adequery.

Re: Как выделить/удалить точки с заданным расстоянием между ними ?

Есть, но выбирать полилинии придется поштучно, а это не очень удобно, если их много.
Начало предложенного варианта запроса сделанно именно этим способом.

Re: Как выделить/удалить точки с заданным расстоянием между ними ?

> Kamaeva
Хотя, может уже поменялось чего-нить... у вас какая версия?
У меня 2005.

Re: Как выделить/удалить точки с заданным расстоянием между ними ?

> Ольга_@@@
Я использую Autodesk Map3D 2006.Действительно при большом количестве полилинй выбирать их вручную не целесообразно.Тут надо действовать исходя из ситуации и, возможно, грамотно сформировав запрос, обойтись без кодов AutoLISP.

Re: Как выделить/удалить точки с заданным расстоянием между ними ?

> Kamaeva
я не предлагала использовать LISP.

Re: Как выделить/удалить точки с заданным расстоянием между ними ?

> Kamaeva
Очень хотелось бы увидеть пример "грамотно сформированного" запроса.