Тема: Как создать свой объект с наследованием свойств другого?

Приведу пример. Есть объект с определёнными атрибутами (AEC-Стена) Хочу изменить её внешний облик, но при этом новый объект наследовал все её свойства. Как такое можно реализовать? Заранее спасибо

Re: Как создать свой объект с наследованием свойств другого?

> PahRam
Именно для AecWall это сделать нельзя.

Re: Как создать свой объект с наследованием свойств другого?

> Александр Ривилис
Здравствуйте, Александр!
В принципе хочу понять, как создать свой объект и наследовать свойства других объектов.
Я представляю так, что создаю некий объект, состоящий например из region и наследую ему свойство полилинии - возможность растянуть по длине. Из другого объекта какое-нибудь другое свойство и т.д.
Так ли выглядит схема создания этого объекта?

Re: Как создать свой объект с наследованием свойств другого?

> PahRam
Нет. Наследовать можно только один тип примитива. Наследовать свойства других типов примитивов нельзя. Их (примитивы) можно инкапсулировать. Но без очень глубокого знания C++, AutoCAD, ObjectARX за это лучше не браться. Еслиже решишься, то смотри примеры в ObjectARX SDK.

Re: Как создать свой объект с наследованием свойств другого?

> Александр Ривилис
Александр, а возможно ли взять объект (ту же стену), взорвать до блока, внести туда изменения (добавить пару линий) и сохранить этот "новый объект" как старый? И использовать этот новый объект вдальнейшем. Меня интересует, только внешний вид этой стены.

Re: Как создать свой объект с наследованием свойств другого?

> PahRam
Если речь идет о AecWall, то она действительно расчленяется до неименованного блока командой _EXPLODE (нет времени и возможности проверить всегда ли это так). Тогда теоретически программно этот блок можно модифицировать. Но это уже не будет AecWall - т.е. ADT не будет его воспринимать как стену.
Да и в общем случае при расчленении любого примитива (если он вообще допускает расчленение) он уже перестает быть этим примитивом и теряет все свои свойства, в лучшем случае сохраняя свой внешний вид - даже это не обязательно.

Re: Как создать свой объект с наследованием свойств другого?

> Александр Ривилис
Александр, а есть ли возможность ловить эти свойства при преобразовании объекта в блок?
функция Explode делает из объекта блок, почему же нельзя для блока наследовать свойства AecWall-объекта?

Re: Как создать свой объект с наследованием свойств другого?

PahRam пишет:

Александр, а есть ли возможность ловить эти свойства при преобразовании объекта в блок?

Нет. Кого ловить? Призрак?

функция Explode делает из объекта блок, почему же нельзя для блока наследовать свойства AecWall-объекта?

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

Re: Как создать свой объект с наследованием свойств другого?

> Александр Ривилис
В любом случае и объекты состоят из тех же примитивов, что и блок. Почему же не реализовать эти же примитивы

программами (методами класса)

и сформировать из них объект того же класса?
По сути не изменяется даже количество примитивов входящих, как в блок, так и в объект.
Нужно лишь наделить эти примитивы теми же свойствами, что и до explode.
Если говорить об AECWall, то он делится на 3DFace'ы, т.е. структура самого разорванного объекта понятна.
Посмотрите _AecScheduleTag его можно изменить и пользоваться изменённым объектом.

Re: Как создать свой объект с наследованием свойств другого?

PahRam пишет:

В любом случае и объекты состоят из тех же примитивов, что и блок

Они ни из чего не состоят. Не надо путать два понятия - "состоять из чего-то" и "расчленяться на что-то".
P.S.: Я прекращаю бессмысленное участие в этой теме. Это не тот спор в котором рождается истина.

Re: Как создать свой объект с наследованием свойств другого?

Если вы хотите создать объект класса, унаследованного от AecWall, то вам нужен OMF (Object Model Framework), а не ObjectARX. Слава Богу, они его уже без лицензирования раздают.
Правда, я не уверен что там таки это можно сделать. AutoDesk не рекомендует наследовать от большинства "конкретных" классов.

Re: Как создать свой объект с наследованием свойств другого?

> Эдуард Яблонский
Где его раздают? :) Единственное место о котором мне известно, это сайт ADN. Ну и там есть online-лицензия, в которой наследование от OMF-классов запрещено.

Re: Как создать свой объект с наследованием свойств другого?

Могу поделиться, только скажите куда залить.
OMF2004 21.00 MB
OMF2005 18.80 MB
OMF2006 21.50 MB
OMF ABS 2006 4.02 MB
OMF2007 23.10 MB

Re: Как создать свой объект с наследованием свойств другого?

> Эдуард Яблонский
У меня это все есть (даже более ранние весии). Вопрос только где (ссылочку) его официально раздают не членам ADN. И если его раздают только на сайте ADN - то "заливанием" Вы нарушите лицензионное соглашение с Autodesk...

Re: Как создать свой объект с наследованием свойств другого?

Ну тогда не будем нарушать это соглашение. Хотя его уже давно нарушили. "Всё уже украдено до нас" ((С) "Операция Ы или новые приключения Шурика").