Jump to content

MultiCAD. RXClass вызывает исключение


Recommended Posts

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

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

Цитата

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

 

Спойлер

image.png.dfb6384059b899ecec69439a60b1a26d.png

 

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

string stOb = pval.ObjectClass.Name;

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

 

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

 

 

Edited by doctorraz
Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

-----------

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

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

 

Edited by doctorraz
Link to comment
Share on other sites

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

 

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Tell a friend

    Love Официальный форум компании Нанософт? Tell a friend!
×
×
  • Create New...