Тема: Как преобразовать объект AcDbRegion в полилинию или в кривую?

Можно ли преобразовать регион в полилинию или в кривую? Использование explode приводит к образованию массы линий и дуг, а необходимо получения линии, в которой бы сохранялась информация о координатах вершин и значений кривизны в них.

Re: Как преобразовать объект AcDbRegion в полилинию или в кривую?

> НКузьмин
А кто мешает объединить эту массу линий и дуг в полилинию (или полилинии - если замкнутых контуров окажется больше одного)?

Re: Как преобразовать объект AcDbRegion в полилинию или в кривую?

> Александр Ривилис
А простого способа получить из набора объектов полилинию Вы не подскажете?

Re: Как преобразовать объект AcDbRegion в полилинию или в кривую?

> НКузьмин
Простого средства в ObjectARX нет. Так что без программирования не обойтис. Но можно воспользоваться командой _.PEDIT с опцей _join, которая по набору отрезков и дуг создаст полилинию.

Re: Как преобразовать объект AcDbRegion в полилинию или в кривую?

> Александр Ривилис
Спасибо за ответы. Попутный вопрос, связанный с _.pedit:
ads_command (не помню, как она теперь точно называется) в версии для 2006 не работает иногда там, где она прекрасно работала в 14 (такой прыжок с версии на версию пришлось сделать). Вынужден был все, что легко с помощью ads_command делалось переписывать гораздо более замысловато. Не подскажете, с чем это связано? В описании про ее использование вроде бы ничего не изменилось.

Re: Как преобразовать объект AcDbRegion в полилинию или в кривую?

> НКузьмин
Поскольку в границу области могут входить и куски сплайнов и др. объектов, то не всегда возможно преобразование в полилинию.

Re: Как преобразовать объект AcDbRegion в полилинию или в кривую?

> НКузьмин
ads_command(...) - сейчас это acedCommand(...).
А по поводу контекста использования в документации это частично описано. Кроме того нельзя использовать эту функцию при инициализации arx-файла (при получении собщения AcRx::kInitAppMsg), из команды зарегистрированой с флагами ACRX_CMD_SESSION, ACRX_CMD_TRANSPARENT, и т.д. и т.п.
А Николай Николаевич абсолютно прав - могут появится и куски сплайнов и даже окружности. Так что если использовать _.PLEDIT, то нужно внимательно отслеживать на какие примитивы расчленяется REGION, и что можно подавать на вход этой команде, а что нет.

Re: Как преобразовать объект AcDbRegion в полилинию или в кривую?

> Александр Ривилис
Спасибо большое за исчерпывающие ответы. В моем случае все оказалось совсем просто - не знаю, что я зациклился на полилинии, на самом деле мне было достаточно информации, которая содержится в объектах, образовывающихся при разбиении региона. В связи с этим, если Вас не затруднит, последний вопрос:
Пока у меня всегда при использовании explode на регион образовывался упорядоченный массив объектов в том смысле, что начало следующего объекта совпадает с концом предыдущего. Насколько это справедливо в общем случае, или есть необходимость проверять это условие в программе?

Re: Как преобразовать объект AcDbRegion в полилинию или в кривую?

> НКузьмин
По идее массив объектов должен быть всегда упорядочен (так как упорядочен граничный контур), но это не документировано, так что советую проверять.

Re: Как преобразовать объект AcDbRegion в полилинию или в кривую?

> Александр Ривилис
Я уже сам убедился, что это далеко не всегда так. Предется проверять и сортировать.
Спасибо.