Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: MikhailTAP от 01-02-2015, 10:01:46
-
Добрый день!
При разборе на составляющие вхождения блока, наткнулся на такую сущность. Конкретной информации о том что это такое не нашёл, скорее только недоумение. Вопрос в следующем:
1. Что это за тип сущности?
2. Как определить, что мы имеем дело с ImpEntity? При попытке использовать синтаксис типа: if (entity is ImpEntity)... говорится что доступа нет к внутреннему классу.
Спасибо.
-
1. Что это за тип сущности?
Вероятнее всего для него нет .NET "обертки"
2. Как определить, что мы имеем дело с ImpEntity? При попытке использовать синтаксис типа: if (entity is ImpEntity)... говорится что доступа нет к внутреннему классу.
Ну ты же на него как-то наткнулся? Попробуй через сравнение RXClass.GetClass(typeof(ImpEntity)) и entity.GetRXClass()
-
Александр, я выяснил что это за объекты такие - оказалось что это MPolygon'ы. Внезапно(!) они стали определяться как ImpEntity. Хотя раньше всё было ок. Может есть какая-то настройка или что-то в этом роде?
Нашёл тему на форуме за 2010 год http://forums.autodesk.com/t5/autocad-map-3d-developer/problem-with-mpolygon-observed-as-impentity/td-p/2122208. Однако до конца не довели проблему. Насколько я понял автор обнаружил, что если сбросить профиль в автокаде и импортировать его с машины где всё нормально, то проблема исчезает. Т.е. скорее всего с настройками что-то.
-
http://adndevblog.typepad.com/autocad/2012/08/create-a-mpolygon-in-autocad-using-net.html
' Make sure that AcMPolygonObj19.dbx is loaded for MPolygon
' the 19 version number is valid for AutoCAD 2013
Autodesk.AutoCAD.Runtime.SystemObjects.DynamicLinker.LoadModule("AcMPolygonObj19.dbx", False, False)
-
Я попробовал добавить в инициализацию плагина SystemObjects.DynamicLinker.LoadModule("AcMPolygonObj18.dbx", false, false) но результата нет. Созданные МПолигоны так же как и раньше видны как ImpEntity.
-
Я попробовал добавить в инициализацию плагина SystemObjects.DynamicLinker.LoadModule("AcMPolygonObj18.dbx", false, false) но результата нет. Созданные МПолигоны так же как и раньше видны как ImpEntity.
А какая версия AutoCAD? Ну и неплохо бы загрузить AcMPolygonMGD.dll - это и есть .NET обертка для MPolygon
-
Версия Автокада 2012. AcMPolygonMGD.dll подгружал. Но всё равно МПолигоны отображаются как ImpEntity.
-
Версия Автокада 2012. AcMPolygonMGD.dll подгружал. Но всё равно МПолигоны отображаются как ImpEntity.
Подозреваю, что это проблема именно твоего AutoCAD. Возможно его следует переставить. Если это не даст эффекта, то давай чертеж с МПолигоном и твой код для проверки.