Robink Posted October 13, 2021 Report Share Posted October 13, 2021 Покупаем 21 и переходим на него с 5.1 версии. 1 вопрос: Какой Framework использует NC 21? Quote Link to comment Share on other sites More sharing options...
doctorraz Posted October 13, 2021 Report Share Posted October 13, 2021 26 минут назад, Robink сказал: Какой Framework использует NC 21? С мультикадом 4.5 минимум Quote Link to comment Share on other sites More sharing options...
Robink Posted October 13, 2021 Author Report Share Posted October 13, 2021 А Teigha? Скорее всего все на 4.5. Quote Link to comment Share on other sites More sharing options...
doctorraz Posted October 13, 2021 Report Share Posted October 13, 2021 (edited) Без мультикада голая платформа кажется 4.3 достаточно, если критично завтра уточню добавлено через 1 минуту 29 минут назад, Robink сказал: Teigha Думаю что тоже 4.3 дома не стоит Самый требовательный мультикад добавлено через 4 минут Скачай сдк и методом интерполяции от минимального фреймворка собирай хеловорд Как соберется, значит мин фреймворк найден)) добавлено через 6 минут Обманул тебя.. Для голой релизной платформы нано 21 4.0 достаточно Edited October 13, 2021 by doctorraz Quote Link to comment Share on other sites More sharing options...
Robink Posted October 13, 2021 Author Report Share Posted October 13, 2021 Да. 4.5. 100500 ошибок только Проект большой. Quote Link to comment Share on other sites More sharing options...
doctorraz Posted October 13, 2021 Report Share Posted October 13, 2021 5 минут назад, Robink сказал: Да. 4.5. только если подключаешь библиотеки мультикад mapibasetypes.dll mapimgd.dll без них 4.0 должно вполне хватить по крайней мере у меня на простых операциях с примитивами кад... хватает 4.0 ------------ выноски таблицы и прочие плюшки это мультикад, там только 4,5 1 Quote Link to comment Share on other sites More sharing options...
ISL Posted October 13, 2021 Report Share Posted October 13, 2021 @doctorraz всё верно написал, MultiCAD.NET на 4.5, остальное на 4.0. Quote Link to comment Share on other sites More sharing options...
doctorraz Posted October 13, 2021 Report Share Posted October 13, 2021 Имхо на самом деле некритично Поясню. Нано самый простой дистрибутив идет с СПДС и Механикой, т.е. без фрэймворка 4.5 просто не встанет, т.е. у юзера де факто стоит 4.5, поэтому можно не париться и собирать на 4.5. И даже если выпилить из дистрибутива спдс с механикой.. Останутся таблицы и выноски... это мультикад, фрэмворк 4.5 Но если надо слоев добавить, блоки перетусовать отрезки перкрасить ... работа чисто с объектами платформы, фрэймворка 4.0 за глаза. Как то так понимаю Quote Link to comment Share on other sites More sharing options...
Robink Posted October 14, 2021 Author Report Share Posted October 14, 2021 Собрал. Много с чем надо разбираться. Не работает public override hresult OnEvent(Events ev, object param) у мультикадовских CustomEntity Quote Link to comment Share on other sites More sharing options...
sea Posted October 14, 2021 Report Share Posted October 14, 2021 Что именно не срабатывает и в какой момент? Quote Link to comment Share on other sites More sharing options...
Robink Posted October 14, 2021 Author Report Share Posted October 14, 2021 (edited) public override hresult OnEvent(Events ev, object param) Ну как, он должен запускаться когда с объектом что то происходит, там много разных вариантов может быть, это внутри процедуры уже проверяется, какое именно событие произошло. Он не запускается например при копировании и вставки копии объекта. Исключений не происходит. Точку остановки ставил так и понял, что оно не запускается в принципе. Проверял другое событие, там все останавливается. В 5.1 все работало. У меня перестали обрабатываться скопированные объекты, в отличие от 5.1. Edited October 14, 2021 by Robink Quote Link to comment Share on other sites More sharing options...
Robink Posted October 14, 2021 Author Report Share Posted October 14, 2021 Вот как дошел до этого OnEvent https://developer.nanocad.ru/redmine/boards/4/topics/835?r=838#message-838 Quote Link to comment Share on other sites More sharing options...
sea Posted October 14, 2021 Report Share Posted October 14, 2021 Теперь событие transferred приходит в OnEventEx. 2 Quote Link to comment Share on other sites More sharing options...
Robink Posted October 14, 2021 Author Report Share Posted October 14, 2021 3 минуты назад, sea сказал: Теперь событие transferred приходит в OnEventEx. Он в какой библиотеке? Можно пример кода? добавлено через 0 минут Не обязательно, кстати Transfered. Quote Link to comment Share on other sites More sharing options...
sea Posted October 14, 2021 Report Share Posted October 14, 2021 Рядом - McCustomBase.OnEventEx 1 Quote Link to comment Share on other sites More sharing options...
Robink Posted October 14, 2021 Author Report Share Posted October 14, 2021 6 минут назад, sea сказал: Рядом - McCustomBase.OnEventEx Есть Enum EventEx. Что то не могу найти OnEventEx. добавлено через 4 минут там два объекта в параметрах public override hresult OnEventEx(EventsEx ev, object param1, object param2) Quote Link to comment Share on other sites More sharing options...
Robink Posted October 14, 2021 Author Report Share Posted October 14, 2021 Это сделал. Следующий вопрос: ObjectFilter он по умолчанию все объекты ищет (в том числе обычные примитивы)? Насколько помню он начинал искать все если параметр AllObjects=true. Можно его заставить искать только McEntity? Quote Link to comment Share on other sites More sharing options...
sea Posted October 14, 2021 Report Share Posted October 14, 2021 Можно. Выбор вставок блока с текущего листа: ObjectFilter flt = new ObjectFilter(); objFilter.SetCurrentSheet(); flt.AddType(McBlockRef.TypeID); 2 Quote Link to comment Share on other sites More sharing options...
Robink Posted October 14, 2021 Author Report Share Posted October 14, 2021 1 час назад, sea сказал: Можно. Выбор вставок блока с текущего листа: ObjectFilter flt = new ObjectFilter(); objFilter.SetCurrentSheet(); flt.AddType(McBlockRef.TypeID); ObjectFilter flt = new ObjectFilter(); objFilter.SetCurrentSheet(); flt.AddType(McBlockRef.TypeID); of.AllObjects = false; теперь не работает просто? Это в кучу проблем выливается. Quote Link to comment Share on other sites More sharing options...
Robink Posted October 15, 2021 Author Report Share Posted October 15, 2021 Посмотрел сколько раз в коде встречается вызов ObjectFilter, получилось 62 раза. Совсем грустно все это переделывать. Quote Link to comment Share on other sites More sharing options...
AGL Posted October 15, 2021 Report Share Posted October 15, 2021 Robink, Начиная с версии 5.1 (а сейчас уже 13.5) в API было внесено много изменений. Некоторые из них принципиальные. И старый код без правок работать не будет. Так получилось не из прихоти нашей, а из необходимости. Поэтому предлагаю следующий вариант решения вашей проблемы. Если вы дадите нам пример вашего кода, желательно в виде цельного проекта, то мы внесем в него необходимые правки и вернём его вам обратно. Проект можно сократить до минимального объёма, чтобы просто была возможность воспроизвести проблему на нашей стороне. 1 1 Quote Link to comment Share on other sites More sharing options...
Robink Posted October 15, 2021 Author Report Share Posted October 15, 2021 4 часа назад, AGL сказал: Robink, Начиная с версии 5.1 (а сейчас уже 13.5) в API было внесено много изменений. Некоторые из них принципиальные. И старый код без правок работать не будет. Так получилось не из прихоти нашей, а из необходимости. Поэтому предлагаю следующий вариант решения вашей проблемы. Если вы дадите нам пример вашего кода, желательно в виде цельного проекта, то мы внесем в него необходимые правки и вернём его вам обратно. Проект можно сократить до минимального объёма, чтобы просто была возможность воспроизвести проблему на нашей стороне. Проблема в том, что теперь ObjectFilter, набирает не только McEntity, но и стандартные объекты, раньше для такого поведения надо было поднять флаг AllObjects = true. Собственно теперь в перебор попадают стандартные объекты, что вызывает ошибки. Quote Link to comment Share on other sites More sharing options...
AGL Posted October 15, 2021 Report Share Posted October 15, 2021 Дайте пример кода. в котором вы настраиваете фильтр и получаете все объекты из чертежа. Quote Link to comment Share on other sites More sharing options...
Robink Posted October 16, 2021 Author Report Share Posted October 16, 2021 19 часов назад, AGL сказал: Дайте пример кода. в котором вы настраиваете фильтр и получаете все объекты из чертежа. var of = new ObjectFilter(); var ids = of.GetObjects(); Дальнейшее изучение вопроса показало, что ObjectFilter работает как и ранее, но видимо в нем баг. Запуск процедуры происходит по событию, когда объект выбран, а графика объекта (СustomEntity) состоит из одной полилинии, вот она как раз и попадает в набор. 1 Quote Link to comment Share on other sites More sharing options...
Robink Posted December 21, 2021 Author Report Share Posted December 21, 2021 Продолжаю переводить библиотека. Сейчас чаcть на Teigha и COM. Печатаю через PlotToDevice без каких либо настроек. Столкнулся с: 1. Если ориентация листа альбомная (лист был настроен в NC 5). При программной печати (PlotToDevice) лист выходит повернутым с уменьшенным содержимым. Если в диалоге печати запустить печать вручную - документ выводиться верно. 2. Текст при печати коверкается (изломы). Больше всего беспокоит п. 2. Знаю, что проблема обсуждалась. Исправили ли это в техническом обновлении? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.