Jump to content

Перевод .NET библиотек с NC 5.1 на NC 21


Recommended Posts

26 минут назад, Robink сказал:

Какой Framework использует NC 21?

С мультикадом 4.5 минимум

Link to comment
Share on other sites

Без мультикада голая платформа кажется 4.3 достаточно, если критично завтра уточню

добавлено через 1 минуту
29 минут назад, Robink сказал:

Teigha

Думаю что тоже 4.3 

дома не стоит

Самый требовательный мультикад

добавлено через 4 минут

Скачай сдк и методом интерполяции от минимального фреймворка собирай хеловорд

Как соберется, значит мин фреймворк найден))

добавлено через 6 минут

Обманул тебя..

Для голой релизной платформы нано 21 4.0 достаточно

Edited by doctorraz
Link to comment
Share on other sites

5 минут назад, Robink сказал:

Да. 4.5.

только если подключаешь библиотеки мультикад

mapibasetypes.dll
mapimgd.dll

без них 4.0 должно вполне хватить

по крайней мере у меня на простых операциях с примитивами кад... хватает 4.0

------------

выноски таблицы и прочие плюшки это мультикад, там только 4,5

  • Like 1
Link to comment
Share on other sites

Имхо на самом деле некритично

Поясню.

Нано самый простой дистрибутив идет с СПДС и Механикой, т.е. без фрэймворка 4.5 просто не встанет, т.е. у юзера де факто стоит 4.5, поэтому можно не париться и собирать на 4.5.

 

 

И даже если выпилить из дистрибутива спдс с механикой..

Останутся таблицы и выноски... это мультикад, фрэмворк 4.5

 

Но если надо слоев добавить, блоки перетусовать отрезки перкрасить ... работа чисто с объектами платформы, фрэймворка 4.0 за глаза. 

Как то так понимаю

Link to comment
Share on other sites

Собрал. Много с чем надо разбираться.

Не работает

public override hresult OnEvent(Events ev, object param)

у мультикадовских CustomEntity

Link to comment
Share on other sites

public override hresult OnEvent(Events ev, object param)

Ну как, он должен запускаться когда с объектом что то происходит, там много разных вариантов может быть, это внутри процедуры уже проверяется, какое именно событие произошло. Он не запускается например при копировании и вставки копии объекта. Исключений не происходит. Точку остановки ставил так и понял, что оно не запускается в принципе. Проверял другое событие, там все останавливается. В 5.1 все работало. У меня перестали обрабатываться скопированные объекты, в отличие от 5.1.

Edited by Robink
Link to comment
Share on other sites

3 минуты назад, sea сказал:

Теперь событие transferred приходит в OnEventEx.

Он в какой библиотеке? Можно пример кода?

добавлено через 0 минут

Не обязательно, кстати Transfered.

Link to comment
Share on other sites

6 минут назад, sea сказал:

Рядом - McCustomBase.OnEventEx

Есть Enum EventEx. Что то не могу найти OnEventEx. 

добавлено через 4 минут

там два объекта в параметрах

public override hresult OnEventEx(EventsEx ev, object param1, object param2)

Link to comment
Share on other sites

Это сделал.

Следующий вопрос:

ObjectFilter он по умолчанию все объекты ищет (в том числе обычные примитивы)?

Насколько помню он начинал искать все если параметр AllObjects=true.

Можно его заставить искать только McEntity?

Link to comment
Share on other sites

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;

теперь не работает просто?

Это в кучу проблем выливается.

Link to comment
Share on other sites

Посмотрел сколько раз в коде встречается вызов ObjectFilter, получилось 62 раза. Совсем грустно все это переделывать.

Link to comment
Share on other sites

Robink,

Начиная с версии 5.1 (а сейчас уже 13.5) в API было внесено много изменений. Некоторые из них принципиальные. И старый код без правок работать не будет. Так получилось не из прихоти нашей, а из необходимости.

Поэтому предлагаю следующий вариант решения вашей проблемы. Если вы дадите нам пример вашего кода, желательно в виде цельного проекта, то мы внесем в него необходимые правки и вернём его вам обратно. Проект можно сократить до минимального объёма, чтобы просто была возможность воспроизвести проблему на нашей стороне.

 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

4 часа назад, AGL сказал:

Robink,

Начиная с версии 5.1 (а сейчас уже 13.5) в API было внесено много изменений. Некоторые из них принципиальные. И старый код без правок работать не будет. Так получилось не из прихоти нашей, а из необходимости.

Поэтому предлагаю следующий вариант решения вашей проблемы. Если вы дадите нам пример вашего кода, желательно в виде цельного проекта, то мы внесем в него необходимые правки и вернём его вам обратно. Проект можно сократить до минимального объёма, чтобы просто была возможность воспроизвести проблему на нашей стороне.

 

Проблема в том, что теперь ObjectFilter, набирает не только McEntity, но и стандартные объекты, раньше для такого поведения надо было поднять флаг AllObjects = true. Собственно теперь в перебор попадают стандартные объекты, что вызывает ошибки.

Link to comment
Share on other sites

19 часов назад, AGL сказал:

Дайте пример кода. в котором вы настраиваете фильтр и получаете все объекты из чертежа.

var of = new ObjectFilter();            
var ids = of.GetObjects();

 

Дальнейшее изучение вопроса показало, что ObjectFilter работает как и ранее, но видимо в нем баг. Запуск процедуры происходит по событию, когда объект выбран, а графика объекта (СustomEntity) состоит из одной полилинии, вот она как раз и попадает в набор.

  • Like 1
Link to comment
Share on other sites

  • 2 months later...

Продолжаю переводить библиотека. Сейчас чаcть на Teigha и COM.

 

Печатаю через PlotToDevice без каких либо настроек. Столкнулся с:

1. Если ориентация листа альбомная (лист был настроен в NC 5). При программной печати (PlotToDevice) лист выходит повернутым с уменьшенным содержимым. Если в диалоге печати запустить печать вручную - документ выводиться верно. 

2. Текст при печати коверкается (изломы). 

 

Больше всего беспокоит п. 2. Знаю, что проблема обсуждалась. Исправили ли это в техническом обновлении?

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...