Перейти к содержанию

Рекомендуемые сообщения

При поытке получить RXClass объекта MultiCAD,   

RXObject.GetClass вызывает исключение

Цитата

System.IndexOutOfRangeException: Индекс находился вне границ массива.
   в Teigha.Runtime.RXObject.GetClass(Type type)

 

Спойлер

image.png.dfb6384059b899ecec69439a60b1a26d.png

 

можно конечно получить 

string stOb = pval.ObjectClass.Name;

и по нему проверить, но это дольше на треть

 

Подскажите куда копать?

 

 

Изменено пользователем doctorraz
Ссылка на сообщение
Поделиться на другие сайты

Так нет, видать, такого класса среди зарегистрированных. А если у экземпляра его класс спросить?

Ссылка на сообщение
Поделиться на другие сайты
23 минуты назад, ISL сказал:

А если у экземпляра его класс спросить?

так?

string message = "\nВыберите примитив: ";
            PromptEntityOptions optEnt = new PromptEntityOptions(message);
            PromptEntityResult psr = ed.GetEntity(optEnt);

            if (psr.Status == PromptStatus.OK)
            {
ObjectId pval = psr.ObjectId;
RXClass rxOb = pval.ObjectClass;
 ed.WriteMessage("\nName {0} DxfName {1} AppName {2}",
                    rxOb.Name,
                    rxOb.DxfName,
                    rxOb.AppName
                    );
            }

Так могу получить, могу по Name проверить, что за объект, но это дольше чем

 сравнивать с RXObject.GetClass

-----------

Просто я не знаю, может для объектов МС надо как-то по другому, или невозможно.

Студия то класс видит..

 

Изменено пользователем doctorraz
Ссылка на сообщение
Поделиться на другие сайты
Спойлер

image.thumb.png.509f88a029d2e0927683604b1256a4cd.png

 

 

Ссылка на сообщение
Поделиться на другие сайты

RXObject.GetClass() на MultiCAD.NET объектах не работает, т.к. у них нет атрибута HostMgd.Runtime.WrapperClass(), связывающего .NET класс и DXF имя объекта. А нет его там, т.к. MultiCAD.NET не зависит от классического .NET API.

 

RxClass по DXF имени можно получить так: SystemObjects.ClassDictionary.At("AcDbLine");

Ссылка на сообщение
Поделиться на другие сайты

Спасибо!

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Расскажите друзьям

    Нравится Официальный форум компании Нанософт? Расскажите друзьям!
  • Похожий контент

    • От Vovan83
      Уважаемые разработчики подскажите пожалуйста каким способом можно реализовать маскировку(WIPEOUT) в наследнике класса McCustomBase. Перепробовал все варианты но так и не смог добиться желаемого результата. Объект Teigha.Geometry не удалось преобразовать в Multicad.Geometry. В заранее спасибо за ответ.
    • От Laziz
      Здравствуйте.
      Скажите пожалуйста как сделать сабж в НаноКаде?
      Мне нужно что бы контуры текста превратились в отрезок и дугу.
      Хотя бы теорию с точки зрение программирование.
    • От Boxa
      Вот в этой статье, http://habrahabr.ru/company/nanosoft/blog/184482/ описывется как создать свой объект, Практически со всем разобрался, одно не понятно, как включить режим ОRTHO во время указания точек?
       
      PS/
      Код метода public override hresult PlaceObject(PlaceFlags lInsertType) есть в статье, потому переписывать его сюда не вижу смысла.
       
      Зарание спасибо.
    • От Ivanco
      Существует ли API у каких либо вертикальных решений на базе nanoCAD? Планируется?
      К объектам СПДС (Стройплщадка, Железобетон) можно получить доступ с помощью Multicad.NET , а к объектов других "вертикалок" (например Электро интересует) ?
    • От CapLek
      Такой вопрос - есть ли в Клубе Разработчиков более подробная документация по nanocad API чем та, которая содержится в дистрибутиве nanocad 5.1 free? Под более подробной понимаю описание классов, методов, свойств т.п. а не просто их иерархию. Т.к. без подробного описания трудно понять для чего нужен класс только по его названию. Так же интересно есть ли что-то на подобии учебника по логике построения геометрии в nanocad с точки зрения программирования?
       
      Хочу реализовать в nanocad свои строительные обозначения. Заранее спасибо. С уважением.
×
×
  • Создать...