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

Robink

Пользователи
  • Публикаций

    477
  • Зарегистрирован

  • Посещение

  • Победитель дней

    18

Сообщения, опубликованные Robink

  1. Только что, ISL сказал:

    У меня всё просто. Ваша 32-битная библиотека грузится только в 32-битный nanoCAD, и через APPLOAD и через load.config. Аналогично, моя 64-битная грузится только в 64-битный nanoCAD.

     

    Точно никакой путаницы с этим нет?

    С этим нет путаницы. Моя библиотека, которую перенес с 5 на 21, она загружается прекрасно через Netload и работает в 21 x64, но через load.config загрузка происходит видимо с каким то сбоем, что приводит к ее неработоспособности.

  2. А как мне дальше свою проблему изучать, запускать NC из среды разработки и ловить исключения?

    Попробовал из инициализации убрать регистрацию событий - не помогло. Библиотека увесистая, через Netload загружается и работает, через load.config видимо загружается, но по какой то причине не работает.

  3. 1 минуту назад, ISL сказал:

    Видны какие-либо отличия, если превратить работающий и оригинальный модули обратно в исходники, например, при помощи ILSpy?

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

  4. 57 минут назад, ISL сказал:

    И с моим модулем так же? Это 64-битный, проверял на 64-битном nanoCAD-е 21.0.5699.3427.5753.

    CustomObjects.dll 9 \u043a\u0411 · 1 загрузка

    Аналогично. Нанокад такой же. Ваши файлы использовал. Вин7.

     

    Оказалось, что я забыл убрать из APPLOAD свою библиотеку, а в ней оказывается такая же команда была - textinbox. Вообщем ни библиотека из SDK не работает (даже через NETLOAD), ни Ваша не работает.

  5. 1 час назад, ISL сказал:

    "Чемодан" автозагрузки в APPLOAD срабатывает после загрузки первого документа, что для работы с первым документом, действительно, не особо подходит.

     

    Создал приложенный load.config в "c:\ProgramData\Nanosoft\nanoCAD x64 21.0\DataRW", пример CustomObjects.dll из SDK грузится на старте, примитив TextInBox в переданном на старте документе живой, и команда TEXTINBOX тоже работает.

     

    @Robink, у Вас не работает только на Вашем модуле или и на примере из SDK тоже?

    load.config 201 \u0411 · 3 загрузки

    Скачал SDK, скомпилировал с AnyCPU, поменял путь в файле load.config. Поведение аналогичное, как и с моей библиотекой.

    load.config

  6. 1 минуту назад, Ivanco сказал:

    в чем смысл? как нужно чтобы работало, можно подробнее?

    так загрузка библиотеки происходит до открытия в NC документов, соответственно объекты в них будут "живые". Если загрузка произойдет позже, то они будут прокси. Эта метода прекрасно работала в 5.

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

    Собственно через NETLOAD загружается библиотека и работает. Автозагрузка через load.config не проходит и дает сбой.

  7. 9 минут назад, Ivanco сказал:

    APPLOAD - и там "автозагрузка" менюшка. это не то?

    Проверил. Не то

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

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

  8. Поместил в папку

    C:\ProgramData\Nanosoft\nanoCAD x64 21.0\DataRW

     

    load.config:

     

    <?xml version="1.0" encoding="utf-8"?>
    <root>
        <list>
            <module path="D:\DLL2\NC21\DynamicConnector\obj\Debug\Sheme1.dll"/>
        </list>
    </root>

     

    Что то не запускается. В 21 работает как то по другому?

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

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

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

     

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

    • Like 1
  10. 4 часа назад, AGL сказал:

    Robink,

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

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

     

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

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

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

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

  12. Это сделал.

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

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

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

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

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

    Рядом - McCustomBase.OnEventEx

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

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

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

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

  14. public override hresult OnEvent(Events ev, object param)

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

×
×
  • Создать...