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


- - - - -

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

autosave

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

#1 Robink

    Активист

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

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

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

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

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

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


#2 Ivanco

    Дилер

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

Отправлено 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
  • 452 сообщений
  • Пол:Мужчина
  • Город:Краснодар

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

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

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

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

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

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

#5 Ivanco

    Дилер

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

Отправлено 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
  • 237 сообщений
  • Пол:Мужчина
  • Город:Красноярск
  • Интересы:САПР

Отправлено 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





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

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