Тема: Рамка выбора объектов не прямоугольной формы

Мне необходимо выделять некоторые точки из большого "облака" точек. Нельзя ли прямоугольную рамку выбора объектов сделать другой формы (например как в Photoshop выделение областей)?
Это может быть:
1) область, ограниченная сплайнами;
2) область, ограниченная прямолинейными отрезками.

Re: Рамка выбора объектов не прямоугольной формы

Программно можно организовать любую рамку. Только при этом нужно  самому реализовывать алгоритм анализа попадания в нее нужных точек.
Для Вашего случая, насколько я его понял, наверное,  проще воспользоваться  функцией  acedSSGet  с кодом выбора ?F?, предварительно задав точки для Fence линии.
?.
pt4[Y] = 15.0; pt4[Z] = 0.0;
pointlist = acutBuildList(RTPOINT, pt1, RTPOINT, pt2,
    RTPOINT, pt3, RTPOINT, pt4, 0);
acedSSGet("F", pointlist, NULL, NULL, ssname);
acutRelRb(pointlist);
?

Re: Рамка выбора объектов не прямоугольной формы

Если я правильно понимаю, строка
  pointlist = acutBuildList(RTPOINT, pt1, RTPOINT, pt2, RTPOINT, pt3, RTPOINT, pt4, 0)
предполагает что точки для Fence уже заданы.
А каким образом реализовать процесс выделения точек?
Если использовать acedGetPoint, то как сделать, чтобы введеные точки соединялись линиями?

Re: Рамка выбора объектов не прямоугольной формы

Вариантов тут может быть много. Можно, например, поступить так:
i)    вызвать из программы команду построения временной замкнутой полилинии,
ii)    затем, по координатам вершин этой полилинии сформировать список для выбора
iii)    удалить вспомогательную полилинию

Можно еще попробовать  воспользоваться функцией acedSSGet("I", NULL, NULL, NULL, ssname) с кодом выбора ?I?, который позволяет сразу получить текущий  PICKFIRST набор.

Re: Рамка выбора объектов не прямоугольной формы

если это нужно во время пользовательской команды, то опции: "_wp" - полигон "_cp" - секущий полигон, если внутри лиспа, то: (setq MySelection (ssget "_wp" pt_list)) или "_cp" соответственно, где: pt_list - список точек, полигоны только из прямых сегментов

Re: Рамка выбора объектов не прямоугольной формы

Уважаемый VVV!
Спасибо, что не оставляете мои вопросы без внимания!
И все-таки вопрос пока не исчерпан.

Я работаю в 3D. Точки, соответственно, тоже имеют 3D-координаты. На тот момент, когда требуется выделить часть точек, сцена может быть повернута относительно плоскости экрана. Если я буду cтроить замкнутую линию, мне необходимо это учитывать. Т.е. использовать, возможно, дисплейные координаты. Верно ли я рассуждаю и как это сделать?

По возможности сделайте скидку на то, что я новичок, и объясните несколько подробнее, пожалуйста. Может быть у Вас  есть подобный пример?

Спасибо.

Re: Рамка выбора объектов не прямоугольной формы

to casual goer
Извините, но я практически ничего не понял.
Одно могу сказать наверняка - требуется сделать на ARX, а не на AutoLisp.

Re: Рамка выбора объектов не прямоугольной формы

сорри, не обратил внимания на ветку, к ARX это не имеет отношения