CAD tools for JOSM

Some of my students did this:
https://wiki.openstreetmap.org/wiki/JOSM/Plugins/CADTools

We can make more and modify this plugIn,especially user interface. Any suggestions?

Best regards!
Marek

We have CommandLine plugin, which allows to modify JOSM data externally. And there is set of scripts on Python for some functions. (Some new scripts are described only on Russian page yet, will translate soon)
Some functions of CADTools is also possible in CommandLine, as far as I see:

  • “From irregular polygon to regular polygon” - by scripts Circle and Replace
  • “Cut corners” - by script Fillet
  • “From ellipse/circle to polygon” - to some extent by scripts Circle and Ellipse (center and radius(es) should be specified for these scripts)

“Make wall straight” is a bit strange to my mind. I think it is pretty easy for JOSM user simply to select all nodes between two and delete them without using plugin. :slight_smile:

Suggestions:

  1. Have a look what is possible by CommandLine scripts
    Consider interface features of CommandLine - user may specify points which are not nodes, specify length by drawing interval and so on
  2. Consider writing scripts for CommandLine instead of separate plugin :slight_smile:
  3. Consider writing plugin function or script for:
  • Drawing line, tangent for 1 or 2 circles/ellipses (seen such tools in Visio, for example)
  • Export data from JOSM for printing (with specific scale paper-to-land, b/w friendly, using some line styles and so on)
  • Manual editing list of nodes in selected way, just like members of relation (needed in complex cases when way have loops or other node repeats)

Надеюсь, можно по русски все обсудить?

“From irregular polygon to regular polygon” - удаляет теги с полигона (считаю это багом). Функция нужная. При рисовании церквей в 3д очень много окружностей приходиться рисовать.

“Make wall straight” - какая-то бессмысленная функция. Не сильно сложно выделить промежуточные точки и удалить их. Ожидал, что получиться дом с параллельными стенами и углами в 90 градусов. А если дальше мечтать, то не только с 90, а с одинаковыми углами - т.е. углы от 85 до 95 градусов преобразовать в 90 градусов, а все остальные углы - найти похожие углы и сделать их одинаковыми (т.е. если в доме есть угол в 23 градуса и 25 градусов - сделать их по 24 градуса, если есть 11 градусов и 171 - сделать 10 и 170 соответственно). Ещё примерно параллельные стены можно сделать параллельными. И что бы длины тоже выравнивал. Всего этого не хватает при рисовании церквей. Приходиться рисовать, а потом удалять дополнительные полигоны.

Конечно окно плагина нужно переделать. Хотя бы что бы оно не блокировало выбор точек/полигонов. Наверное лучше будет сделать выпадающее меню, на подобии этих http://www.picshare.ru/view/5684723/

Рисовать с нуля? IMHO, проще скриптом Circle :slight_smile:

Вот бы критерий на математическом уровне.
Кажется, это задача кластеризации.
Я сёдня прикидывал как похожее сделать для линий, чтобы выравнивать “уступы” с разных сторон зданий и т.д. Некоторые типовые многоэтажки иногда явно блочные, их надо по решётке выравнивать, но шаг чтобы сам определялся.

P.S. Marek, please use translator for posts in Russian. :slight_smile: If you can’t understand some blocks using translator - do not hesitate to ask us for translation.

AFAIR, в автоповороте в Replace я использовал алгоритм кластеризации FOREL для определения «основного направления» полигона. :3