Форум Trainsim

Форум Trainsim (http://www.trainsim.ru/forum/index.php)
-   MSTS - Маршруты (http://www.trainsim.ru/forum/forumdisplay.php?f=19)
-   -   Перенос объектов из маршрута в маршрут (макрос) (http://www.trainsim.ru/forum/showthread.php?t=19016)

E69 19.07.2024 23:51

Перенос объектов из маршрута в маршрут (макрос)
 
Всем привет!
Может, я где-то изобретаю велосипед - но, строя маршруты в МСТС, всегда хотелось иметь достаточно легкий способ собрать объекты из нескольких маршрутов в свой.

Чтобы решить проблему, сделал макрос для Excel, который умеет читать ref-файлы из любого маршрута, создавая общий список объектов.

Этот список можно править руками, используя все средства Excel.
Наконец, главное - есть возможность [B]сгенерировать по нему новый общий .ref[/B],
а также [B]скопировать все упомянутые объекты в другой маршрут[/B],
в том числе с сезонными текстурами при их наличии.

[URL=https://fastpic.org/view/123/2024/0720/b21a8c7c8acef230c092f19cbf1c9721.png.html][IMG]https://i123.fastpic.org/thumb/2024/0720/21/b21a8c7c8acef230c092f19cbf1c9721.jpeg[/IMG][/URL]
[B]Скачать и попробовать можно тут:[/B]
[B][url]https://disk.yandex.ru/i/CzC2v5LyjhIJHw[/url][/B]

Да, на втором листе в этой книге уже сразу собрал объекты из десятка маршрутов, имеющихся в даунлоаде trainsim.ru, отсмотрел их, удалил непригодное для переиспользования в русских трассах, и классифицировал все объекты по единой системе - может, не идеальной, но хотя бы общей для всех (что, кстати, оказалось значительно дольше, чем собственно запрограммировать кнопки на листе).
Have fun) :russian:

По быстродействию особо не оптимизировал, но вряд ли массовое копирование объектов будет нужно вам каждый день.

Системные требования: русскоязычный Excel 2007 и новее, МСТС.

Паштет 20.07.2024 08:31

Спасибо! А создавать ref заново, если в папке с маршрутом он удалён, сможет сделать?

E69 20.07.2024 09:10

В смысле, по файлам, которые нашлись в папке shapes? Пока нет, но не очень сложно будет добавить такое. Как-нибудь обновлю.

Часть информации (форма тени, группа и описание объекта, анимация как переезд) при этом, конечно, потеряется. Если этот шейп ранее был импортирован в табличку, можно будет восстановить описание по ней. А иначе "восстановленные" объекты будут уходить в группу "прочее".

КЕ 20.07.2024 09:15

А можно сделать функцию удаления неиспользованных шейпов?

Паштет 20.07.2024 13:47

[QUOTE=E69;612009]В смысле, по файлам, которые нашлись в папке shapes? [/Quote]Да, я иногда находил нужные модели, но они не были прописаны в ref или же когда два человека одновременно делают маршрут, то ref у каждого свой получается.
[QUOTE=E69;612009]
Часть информации (форма тени, группа и описание объекта, анимация как переезд) при этом, конечно, потеряется. Если этот шейп ранее был импортирован в табличку, можно будет восстановить описание по ней. А иначе "восстановленные" объекты будут уходить в группу "прочее".[/QUOTE]
А напомни, где она хранится? Ее нельзя считывать откуда-то? Эксель правда может повеситься от этого...

[size="1"][color="Silver"]Добавлено через 2 минуты[/color][/size]
Я кстати всё хочу также на Экселе сделать редактор расписаний, но времени нет.

[size="1"][color="Silver"]Добавлено через 3 минуты[/color][/size]
[QUOTE=КЕ;612010]А можно сделать функцию удаления неиспользованных шейпов?[/QUOTE]
Здесь на сайте в разделе разное есть прога древняя MSTSConv, которая чистит маршрут. Правда старожилы говорят, порой зачищает и нужное, хотя странно.

E69 20.07.2024 15:39

[QUOTE]А напомни, где она хранится? Ее нельзя считывать откуда-то? Эксель правда может повеситься от этого...[/QUOTE]Это собственно то, что хранится как раз только в .ref.
Когда скачиваешь объект себе в маршрут, то в реф надо вручную добавить строки типа таких:
[CODE]LevelCr ( <<< статический или анимированный
Class ( "<Level Crossings>" ) <<< имя категории (можно менять)
Shadow ( "Dynamic" ) <<< наличие тени (OR вроде игнорирует)
Filename ( DepotGatesGreen.s ) <<< имя шейпа
Description ( "Ворота депо зеленые" ) <<< описание для человека (можно менять)
)[/CODE]
Вот мой макрос импортирует всё это в таблицу и хранит у себя. Для него 8000 объектов из десятка маршрутов это немного))
[URL=https://fastpic.org/view/123/2024/0720/7e7e072a115d91532d688e85776b42af.png.html][IMG]https://i123.fastpic.org/thumb/2024/0720/af/7e7e072a115d91532d688e85776b42af.jpeg[/IMG][/URL]
Если в маршруте есть просто .s, то по имени файла я не знаю в какую категорию его сунуть. Вместо комментария просто имя файла можно подставить.
Лишь если у меня в табличке взятого из других маршрутов найдется объект с тем же именем, тогда удастся восстановить описание.

Так-то это не беда, кататься по маршруту оно никак не помешает (только про анимацию ворот и шлагбаумов не вполне уверен). Но редактировать маршрут станет неудобно, если все в одну кучу свалится.

[size="1"][color="Silver"]Добавлено через 23 минуты[/color][/size]
[QUOTE]А можно сделать функцию удаления неиспользованных шейпов?[/QUOTE] Теоретически можно написать и такое, раз уж разжимать и читать файлы я его научил.

Просто эта функция где-то уже была, я видел давно-давно помнится вот тут: [url]https://www.digital-rails.com/route_riter.html[/url] .
Да, проверил, есть функция Compact Route, которая сжимает все файлы, которые можно сжать, и также выносит неиспользумое в отдельную папочку.
А если MSTSconv такое умеет из командной строки, могу сделать у себя кнопку, которая его запускает в заданный маршрут через командную строку.

[size="1"][color="Silver"]Добавлено через 9 минут[/color][/size]
О, кстати, в RouteRiter уже есть кнопочка "Make .REF" для генерации .ref, а также редактирование списка объектов в виде таблицы и ещё кое-что полезное.

Но вот грабить объекты из одного маршрута в другой он так легко не позволяет :cool:

КЕ 20.07.2024 17:50

[QUOTE=Паштет;612011]
Здесь на сайте в разделе разное есть прога древняя MSTSConv, которая чистит маршрут. Правда старожилы говорят, порой зачищает и нужное, хотя странно.[/QUOTE]
Да, есть такая, но в новых ОС-ях глючит..

E69 28.07.2024 23:32

Обновил макрос, советую перекачать: [url]https://disk.yandex.ru/i/CzC2v5LyjhIJHw[/url]

- По просьбе Паштета добавлена опция генерации .REF по фактически имеющимся файлам.
Если данные об объекте были ранее импортированы в список из другого маршрута, описание берется оттуда. Все остальное летит в категорию Unclassified.
- При копировании автоматически создаются сезонные папки
- Исправлена ошибка, когда .REF читался не до конца

Пока при копировании файлов .s, сжатых при помощи zlib (таких около 5% в маршрутах), автоматически не переносятся их текстуры.
PS Понял как это прочитать, надо отбросить первые 16 байт, чтобы работал стандартный алгоритм zlib. Позже обновлю еще раз.


Текущее время: 05:40. Часовой пояс GMT +4.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2001-2019, Администраторы и разработчики Клуба Trainsim