Спасибо.
Табы там из исходного скрипта, я обычно стараюсь максимально сохранить синтаксис исходного файла. #малоличо
Вот я тоже хотел об этом написать. Только я хотел предложить вписывать ссылки на свои скрипты в вики про CommandLine, но репа - явно более прогрессивный вариант.
Могу сделать на github-е, но я не очень рублю в Git-е…
Прошу Hind-а как-то прокомментировать, ИМХО, логичнее, если репа будет его.
Все тактично промолчали, а репозиторий-то уже давно есть.
Залил свои скрипты, нарисовав к ним иконки и ещё spline.png. Pull request.
Hind, прошу сделать merge или как-нибудь прокомментировать.
Также я вижу
Pull request от Xmypblu с grid2m и wipe был закрыт без merge
Файл от chnav (Tagcopy и Tagchange) уже удалён
Addres2.py от “Семён Семёнов” (без XML-ки?)
В общем я готов позаниматься репозиторием сторонних скриптов, как минимум в своём форке собрать всякое.
У кого что есть?
P.S. Ещё ща попробую сделать скрипт tagcalc - для конкатенации имеющихся тэгов и фикс.строк в новый тэг
Можно проставить, например, name := Высота #tag=ele#
При использовании с Regexp и Selection можно накручивать довольно сложные вычисления на тэгах.
Если кому-то интересно - пишите.
“Ух, ответственность” (c)
Спасибо, буду действовать аккуратно.
Лишний параметр - лишнее действие для всех пользователей. Переименовал свой в “Replace2 (no rotation)”.
Добавил ещё скрипты от Xmypblu, подкорректировав их.
Залил всё в master, можно тестировать.
Спасибо. Только Implode некорректно отменяется. Там сначала удаляются точки, а потом вей — а так делать нельзя. :3
Да, автор команд не должен бы о таком задумываться, и надо править сам плагин. Но пока что есть то, что есть.
# Deleting
for relation in self.relations.items():
if relation[1].get(ACTION) != DELETE:
continue
targetStream.write(self.xmlrelation(relation))
for way in self.ways.items():
if way[1].get(ACTION) != DELETE:
continue
targetStream.write(self.xmlway(way))
for node in self.nodes.items():
if node[1].get(ACTION) != DELETE:
continue
targetStream.write(self.xmlnode(node))
for text in self.comments:
targetStream.write("<!--" + text + "-->\n")
Вроде ошибка перестала выпадать. Буду ещё тестировать, но если сразу видишь что это некорректно - сообщи.
P.S. Ещё до меня сегодня дошло, что разные xml-ки могут дёргать один скрипт с разными параметрами, поэтому я уберу circle.py и replace2.py, сделаю Arc с осями и ещё свой path_ortho затащу.
Большое спасибо! И ещё раз отдельная благодарность за Ellipse: если у круга указать чётное число точек, то квадрат вписывается точка в точку. Ни чем другим, так точно круг не разделить, что очень ценно для последующих построений и встраивания этого самого круга.
Сделал альтернативный ортогонализатор на скрипте.
Возможности:
Лучше ловит базовое направление объектов (алгоритм path_ortho отточен в проекте обрисовки зданий Эстонии)
Можно зафиксировать несколько точек чтобы они не были подвинуты (нужно выделить их)
Можно задать базовый вектор двумя точками (как в JOSM) или вручную - дополнительно к фиксированию N точек (выделить ещё линию из двух точек с тэгом fixme=ortho2_py_base_vector)
Таким образом будет проще рисовать здания, где есть как прямые углы, так и не прямые.
Скриншоты и тестовые объекты тут: http://ge.tt/5QMUbC72?c
В планах: удаление промежуточных точек на прямых, удаление малых уступов и выступающих отрезков (линия туда-сюда)
Есть идеи как повесить скрипт на хот-кей?
UPD: Скрипт вешается на хот-кей, например, через добавление скрипта на toolbar. Себе поставил на Q вместо встроенного
Скриншот с наглядным результатом ортогонализации при фиксировании точек
Точки со знаком STOP - были зафиксированы (выделены) перед вызовом скрипта.
(где их две - там была ещё выделена третья из другой линии, чтобы базовый вектор вычислялся)
Можно попросить в “родной” ортогонализатор добавить фиксирование многих точек.
Думаю, это не очень сложно, раз у них фиксирование двух есть. Но м мне пришлось несколько дополнительных обработок вносить в остальной алгоритм (корректировать уравнение прямой если только одна точка на ней зафиксирована; если - больше одной; выбрасывать из обработки рёбра, у которых обе точки зафиксированы и т.п.)
А как подцепить? CommandLine же выбранные объекты и зависимости отправляет на stdin, а exttools, насколько я вижу, только ожидает выход от внешней проги.
Род рукой JOSM нет, точно только в понедельник смогу. И что-то вспоминаеться, что, вроде, если комманд лайн плагин вынести на панель быстрого запуска, то и на него можно хоткей навесить.