Перейти к содержимому


- - - - -

Альтернативный autosave

autosave

Сообщений в теме: 13

#1 Robink

    Активист

  • Пользователи
  • PipPipPipPip
  • 348 сообщений
  • Пол:Мужчина
  • Город:Казань
  • Интересы:САПРостроение

Отправлено 28 Апрель 2017 - 09:24

github.com/RobinKzn/CustomAutosaveNanoCad
Работает в отделе больше 2х месяцев. Нареканий не было.

Прикрепленные изображения

  • Прикрепленное изображение: AutosaveAlgorithm.jpg
  • Прикрепленное изображение: CustomAutosaveSettings.jpg

Сообщение отредактировал Robink: 28 Июль 2017 - 10:41


#2 Ivanco

    Дилер

  • Дилеры
  • PipPipPipPip
  • 266 сообщений
  • Пол:Мужчина
  • Город:Красноярск
  • Интересы:САПР

Отправлено 28 Апрель 2017 - 11:12

надоел глючный стандартный? Вероятно там как то сложно все внутри, иначе бы уже реализовали корректный.

Просмотр сообщенияRobink (28 Апрель 2017 - 09:24) писал:

Куда и как сохранять, когда удалять старое, настройки
1.Куда - две опции в текущую папку с файлом(причем создавать отдельный Autosave) папку + возможность выбирать папку общую для всех автосохранений.
2. Как - исходя из текущей настройки формата файла. В имени дописывать время сохранения.
3.Возможно хорошо бы было так: сделать сохранение "по кругу" нескольких .dwg .Например 3,4 .dwg которые перезаписываются по кругу. А образуются они из одного активного .dwg.
( ну и тут создается проблема разрастания занимаемого места, т.к. автосейвы вроде как надо бы удалять, а вот это как раз и не всегда нужно , вообще это принципиальный момент наверное. Т.е. что делать с автосейвами удалять или нет.).
4.Из настроек точно надо это пользовательский выбор времени сохранения.
_________________
Кстати у меня как то была мысль , а почему не реализовывают автосейв , от процента изменений в .dwg( вероятно сложно отследить/оценить), ведь результатом работы является не сколько файл "висел" по времени, а именно количество внесенных изменений.

Сообщение отредактировал Ivanco: 28 Апрель 2017 - 11:22

"ИнфоИндастри" г.Красноярск,г.Иркутск,г.Владивосток-официальный дилер Нанософт
YouTube,GitHub - Ivanco21, using:C#/MultiCAD.NET

#3 Vladimir-omsk

    Посетитель

  • Пользователи
  • PipPip
  • 26 сообщений

Отправлено 28 Апрель 2017 - 11:24

Идея очень хорошая. Я хотел разработчикам предложить ввести в настройки такую же настраиваемую опцию (рядом с автосохранением), но по итогам форума энтузиазм пропал.
Хотелки и предложения:
1. Делать "Сохранить как" сразу при открытии файла. (Пояснение - не раз сталкивались со следующей ситуацией: файл с сервера открывают на одном РС, начинают в нём работать, периодически сохраняясь. В какой-то момент этот же файл открывают с другого РС (только для чтения) и используют "чтобы посмотреть". Потом на первом РС файл сохраняют и закрывают. Через некоторое время на втором РС закрывают весь NC (со всеми вкладками) и "на автомате" на все вопросы "Файл существует. Переписать?" отвечают "Да". Получаем, ессно, файл по состоянию его открытия на втором РС).
2. Сохранять версии по умолчанию в той же папке.
3. К имени в конце добавлять "vNN", где NN - номер версии 01-99. Важное дополнение - предыдущий № брать из состояния в папке, т.к. при одновременном открытии файла (как я описал в п.1) возможно, что версии с разных РС будут "через одну".
4. Период "сохранения как" - настраиваемый (10мин...60 мин) с интервалом в 10мин.
5. Период стирания минорных версий - настраиваемый от "0"(не стирать-ручное стриание) до 10 суток с интервалом 1 сутки.

Надо также понимать, что такой режим "сохранить как" сделает возможным одновременное открытие файла любым количеством пользователей, причём предупреждений о том, что файл уже открыт, - не будет. Т.е. потенциально можно также получить проблему.

Сообщение отредактировал Vladimir-omsk: 28 Апрель 2017 - 11:27


#4 Kreator

    Активист

  • Пользователи
  • PipPipPipPip
  • 630 сообщений
  • Пол:Мужчина
  • Город:Краснодар

Отправлено 28 Апрель 2017 - 12:56

Докину свои мысли.

1. Настройки таймера:
  • Время между сохранениями.
  • Галка Сброс таймера при сохранении вручную.
  • Галка Делать автосейв сразу после открытия.

2. Галка Сохранить без доп. настроек.
3. Галка Сохранить копию как.
  • Настройка расположения файлов - путь к папке (с обработкой относительных путей).
  • Настройка количества файлов автосейвов. Удаление по принципу FIFO (если ограничение установлено).
  • Настройка имён файлов с подставновкой {T} - время, {D} - дата, {N} - имя, {X} - номер по порядку.
  • Настройка удаления всех (либо всех, кроме X последних) автосейвов при зыкрытии файла.
Уважаемые пассажиры! Пристегните ремни, сейчас пилот первого класса Иван Сидоров постарается поднять всю эту бандуру в воздух :)
По проблемам:
  • ХЗ, не сталкивался. В настройках пути и имени давать предупреждение по этому поводу, а при неудачной настройке (если по факту получилось длинее) заставлять что-то менять. Можно, конечно, имя файла резать, но тут уже ИИ надо подключать, это лишнее.
  • Рядом с DLL в любом удобном виде - что легче прочитать и записать. Я в XML храню - можно при необходимости в Calc'e открыть.
  • Надо думать. Какого рода проблемы? Если ФС (нехватка места, отсутствие прав) - можно показать уведомление и открыть настройки для изменения на рабочие.

Сообщение отредактировал Kreator: 28 Апрель 2017 - 13:00

Полховский А.В. Проектирование железнодорожных путей
nanoCAD Plus 10.1.4409.0232; MultiCAD.NET; Печатаем просто и быстро

#5 Ivanco

    Дилер

  • Дилеры
  • PipPipPipPip
  • 266 сообщений
  • Пол:Мужчина
  • Город:Красноярск
  • Интересы:САПР

Отправлено 02 Май 2017 - 08:48

Просмотр сообщенияRobink (28 Апрель 2017 - 22:23) писал:

x64 никак не могу получить nanoCAD.Application. Ну и фиг с ним. Всех с первомаем!
у меня на x64 Win10 вроде подключилось. но VS попросила добавить ссылку на Microsoft.CSharp.dll.
первая обнаружившаяся проблема, это то что автосейв "сработал" в "другом" нанокаде, т.е. в том который в данный момент зарегистрирован последним(насколько я понимаю), а не в том в котором я открыл чертеж и планировал протестировать.
Возможно проблема в коде ниже, или я чего то не понимаю.зачем создавать новый Instance, нужно ведь пользоваться имеющимся?
Type t1 = Type.GetTypeFromProgID("nanoCAD.Application");
NC = (nanoCAD.Application)Activator.CreateInstance(t1);

"ИнфоИндастри" г.Красноярск,г.Иркутск,г.Владивосток-официальный дилер Нанософт
YouTube,GitHub - Ivanco21, using:C#/MultiCAD.NET

#6 Ivanco

    Дилер

  • Дилеры
  • PipPipPipPip
  • 266 сообщений
  • Пол:Мужчина
  • Город:Красноярск
  • Интересы:САПР

Отправлено 02 Май 2017 - 09:55

может так?
nanoCAD.Application ncApp = Marshal.GetActiveObject("nanocad.Application") as nanoCAD.Application;
опять же если разные nanoCAD что получится в итоге, вероятно последнее зарегистрированное все равно.

Сообщение отредактировал Ivanco: 02 Май 2017 - 09:56

"ИнфоИндастри" г.Красноярск,г.Иркутск,г.Владивосток-официальный дилер Нанософт
YouTube,GitHub - Ivanco21, using:C#/MultiCAD.NET

#7 alexey77

    Новичок

  • Пользователи
  • Pip
  • 8 сообщений

Отправлено 09 Февраль 2018 - 08:58

Доброго дня!
Подскажите пожалуйста по шагам как внедрить Ваш вариант автосохранения в имеющийся NanoCad 5.1 бесплатный вариант?
ОС - Win 10 Pro x64.

#8 Robink

    Активист

  • Пользователи
  • PipPipPipPip
  • 348 сообщений
  • Пол:Мужчина
  • Город:Казань
  • Интересы:САПРостроение

Отправлено 09 Февраль 2018 - 09:15

Просмотр сообщенияalexey77 (09 Февраль 2018 - 08:58) писал:

Доброго дня!
Подскажите пожалуйста по шагам как внедрить Ваш вариант автосохранения в имеющийся NanoCad 5.1 бесплатный вариант?
ОС - Win 10 Pro x64.
Скачайте проект
CustomAutosaveNanoCad/autosave2/obj/Debug
отсюда возьмите
autosave51.dll
Interop.OdaX.dll
Interop.nanoCAD.dll
Положите их в одну папку
Или можете оставить как есть все лежать, куда положите скачанный проект
Потом загрузить через команду Netload autosave51.dll
Для того чтобы при загрузке программы подгружалась библиотека автоматом надо ее вписать в nApp.ini
Для настройки команда customausosavesettings


#9 alexey77

    Новичок

  • Пользователи
  • Pip
  • 8 сообщений

Отправлено 16 Февраль 2018 - 10:52

Доброго времени суток всем!
В общем пробовал установить по данной схеме на Win8 x64 с правами админа. но в дальнейшем надо будет это все проделать на Win10 x64.
В разделе с программой C:\Program Files (x86)\Nanosoft\nanoCAD 5.1\ создал файл nApp.ini
[\NetModules]
autosave51.dll
Interop.nanoCAD.dll
Interop.OdaX.dll

в nCad.ini пока оставил так
[\NetModules]
hostdcl.dll
outdvbutils.dll

#include "nApp.ini"
#include "userdata.ini"

Сами 3 dll положил в папку C:\Program Files (x86)\Nanosoft\nanoCAD 5.1\bin - вопрос надо их как-то регистрировать, чтобы НаноКад мог с ними работать или достаточно разместить их в нужном каталоге?

Далее ввожу в командной строке НаноКада: NetLoad
Команда: NETLOAD
тут выбираю нужный файл autosave51.dll
NetLoad - NetLoad
Команда: CUSTOMAUTOSAVESETTINGS
Неправильный ключ или команда. Введите (') для команды или (?) для математического выражения: CUSTOMAUTOSAVESETTINGS

Вопрос: почему может не работать .net библиотека?

#10 Robink

    Активист

  • Пользователи
  • PipPipPipPip
  • 348 сообщений
  • Пол:Мужчина
  • Город:Казань
  • Интересы:САПРостроение

Отправлено 16 Февраль 2018 - 10:59

Interop.nanoCAD.dll
Interop.OdaX.dll
эти не надо вписывать

#11 Robink

    Активист

  • Пользователи
  • PipPipPipPip
  • 348 сообщений
  • Пол:Мужчина
  • Город:Казань
  • Интересы:САПРостроение

Отправлено 16 Февраль 2018 - 12:12

Вообще в bin можно класть? Вот Interop.nanoCAD.dll, Interop.OdaX.dll они и так там лежат :)

#12 Robink

    Активист

  • Пользователи
  • PipPipPipPip
  • 348 сообщений
  • Пол:Мужчина
  • Город:Казань
  • Интересы:САПРостроение

Отправлено 16 Февраль 2018 - 12:19

Удали их оттуда, похоже от этого весь сыр бор

#13 alexey77

    Новичок

  • Пользователи
  • Pip
  • 8 сообщений

Отправлено 16 Февраль 2018 - 14:04

Не. изначально этих файлов не было в bin - и все равно не давало запустить настройки автосохранения.
Сейчас опять удалил из bin эти файлы - результат такой же.

#14 Robink

    Активист

  • Пользователи
  • PipPipPipPip
  • 348 сообщений
  • Пол:Мужчина
  • Город:Казань
  • Интересы:САПРостроение

Отправлено 16 Февраль 2018 - 14:05

а autosave51.dll где лежит?
они должны лежать рядом с ней
Interop.nanoCAD.dll
Interop.OdaX.dll
все это не в bin
:mellow:





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых пользователей