Jump to content

Lisp. Автоматическая отрисовка откосов дороги


Recommended Posts

  • 3 months later...

Добрый день!

Лисп протестировал.

Работает медленно при большой протяженности линий бровки и подошвы откоса. Данная особенность сильно влияет на производительности при оформлени планов линейных сооружений.

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

На сколько понял штрихи попадают в слой по умолчанию?

Link to comment
Share on other sites

Данная программа, выполняет некоторые рутинные операции, которые разработчик устал делать вручную.

Поэтому не стоит быть очень строгим к производительности, да и к работоспособности.

 

Что касается производительности, то использование функции (command …) по определению не может давать быстрых результатов.

Чаще всего используется тогда, когда пользователь-разработчик знает какую-либо функцию када, но не знает подходящую функцию лиспа.

 

Что касается функциональности:

программа не совсем корректно работает на "кривых" границах

Спойлер

image.png.1426c646f3d0028783b4745866330cd2.png

 

 

Спойлер

image.thumb.png.8dc2dc6d856ebf2fb4ddf8216089252a.png

 

Здесь:

     1 - точка схождения длинных штрихов, совпадает с центром задающей дуги-границы

     2 - область точек пересечения коротких штрихов.

Сходу определить принцип именно такого направления коротких штрихов не смог, необходимо более детально анализировать код

 

Штрихи создаются на собственном слое otkos, а вот цвет почему-то не устанавливается "по слою".

Предполагаю, что программа была написана для автокада, но в нано она работает чуть по-другому.

Отсюда и не очень понятный запрос насчет направления (если 0, то ничего не происходит, но программа чего-то ждет), и создание блоков otk, которые не используются.

 

Но есть одно неоспоримое достоинтсво - программа работает хотя бы на более-менее ровных примитивах.

Так же, может использоваться в качестве заготовки для доработки.

 

  • Like 1
Link to comment
Share on other sites

Есть еще какие-либо варианты решения задачи построения откосов?

Пока что лучше alxddike ничего не встречал. Само собой для Нано Кад не вариант.

Edited by kirill85
Link to comment
Share on other sites

1 час назад, kirill85 сказал:

Есть еще какие-либо варианты решения задачи построения откосов?

 

nanoCAD Геоника,

(Ситуация/Топознаки - Знак откоса)

 

nanoCAD СПДС Стройплощадка.

(Откосы)

Вряд ли разработчики будут заводить этот функционал в базовом nanoCAD.

Link to comment
Share on other sites

Это все понятно.

Я имел ввиду lisp-утилитки.

Может быть кто-то умеет такие штуки делать.

.vlx-то Нанокад по понятным причинам не умеет.

Edited by kirill85
Link to comment
Share on other sites

2 часа назад, kirill85 сказал:

Я имел ввиду lisp-утилитки.


Можно править LSP файл в начале поста. Слегка выравненный вариант, чтобы лучше читалось, прикладываю.

otkgp_1_nano.lsp

 

Можно править вот этот LSP файл. Довёл до принципиально работоспособного состояния, дальше надо колдовать и доводить до ума.
Slope-Line_nano.lsp
Первоисточник был здесь
https://www.cadtutor.net/forum/topic/19901-draw-slope-lines/#comments


Там почти всё достаточно прозрачно. (print) и (princ) добавил для отладки.
 

Просто, если работающая функция в Приложении, то стоит ли тратить время ?
А подавляющая часть выложенных в Интернете решений в VLX.

  • Like 2
Link to comment
Share on other sites

1 час назад, A.Kudrjashov сказал:

Можно править вот этот LSP файл. Довёл до принципиально работоспособного состояния, дальше надо колдовать и доводить до ума.
Slope-Line_nano.lsp

Этот лисп будет по-современнее)))

Не используется мощная, но медленная функция (command, а используется скоростная (entmake.

Ну vl-функции в довесок.

Кроме того, алгоритм штриховки несколько другой: от точки наверху до ближайшей точки на нижней кромке (обычно, но не всегда совпадает с перпендикуляром к нижней кромке). В первоначальном варианте от автора ветки штрихи были по перпендикуляру от верхней кромки до пересечения с нижней.

Не знаю, это существенно или нет, должны ответить генпланисты.

  • Like 1
Link to comment
Share on other sites

4 часа назад, EdwardSt сказал:

Этот лисп будет по-современнее)))

Не используется мощная, но медленная функция (command, а используется скоростная (entmake.

Ну vl-функции в довесок.


... если очень нужно, то можно довести до ума. Не быстро, конечно.

Link to comment
Share on other sites

36 минут назад, A.Kudrjashov сказал:

... если очень нужно, то можно довести до ума. Не быстро, конечно.

Тут самое сложное - определиться с алгоритмом.

Даже в текущей ветке обе программы используют разный вид отрисовки (не по исполнению программы, а по конечному виду штрихов).

Можно еще предложить, например, пропорциональное распределение штрихов вдоль линий.

Наверняка, кто-то может предложить еще чего-нибудь.

Думаю, что это тот случай, когда специалисты предметной области (автор ветки?) должны подсказать, какой результат должен быть.

Когда будет определен принцип отрисовки, то подправить все можно было бы достаточно быстро.

Особенно с учетом наличия вашей последней заготовки-прототипа. 

  • Like 1
Link to comment
Share on other sites

Здравствуйте! Протестировал Slope-Line_nano.lsp

Спойлер

01.thumb.PNG.88241827d4eac86ae35fc5c0a764d68a.PNG

Хороший результат получился. Даже на изломах бровки и подошвы более-менее приемлемо.

Из замечаний пока только то, чтобы класть отрезки в активный слой, а не в "0", да в группы объединять, чтобы при необходимости удалять все скопом.

В случае штрихов, всегда проблема на углах. Например на углу площадки, или как в случае скриншота, при размещении уширения для трансформаторной подстанции в обочине дороги

Edited by kirill85
Link to comment
Share on other sites

5 минут назад, kirill85 сказал:

Из замечаний пока только то, чтобы класть отрезки в активный слой, а не в "0"

А у вас случайно слой 0 не является ли активным? :D

Программа как раз и использует активный слой.

 

Link to comment
Share on other sites

Пардон, виноват!

Беру замечание о слое назад. Вот еще пример.

Спойлер

02.thumb.PNG.ff6af38e0536b2808300a446688a4779.PNG

Отличный результат

добавлено через 4 минут

А на этом примере при текущем алгоритме не верно строится. Должен быть перпендикуляр от бровки.

Спойлер

03.thumb.PNG.273956bbb272035153a5258baa68c615.PNG

 

Link to comment
Share on other sites

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

 

А так эта программа значительно современнее и легко может быть адаптирована под модифицированные алгоритмы.

Я бы посоветовал автору ветки именно пост с данной программой закрепить в качестве лучшего ответа.

 

Link to comment
Share on other sites

Для меня - великолепно.

Спойлер

632908538_.png.4a20c99f0e1d60917b6500107e106555.png

 

Кстати команда GcTcSlope2d Геоники не "ест" сглаженные полилинии

Спойлер

446333490_2.png.cef89bc815d71b32bebb507002c4ed29.png

 

 

Edited by VitBor
Link to comment
Share on other sites

45 минут назад, VitBor сказал:

Кстати команда GcTcSlope2d Геоники не "ест" сглаженные полилинии


... вроде как всё нормально.

Спойлер

image.thumb.png.4c538b3d932408d9be600a10ee135b23.png

 

Откосы_Геоника_20_1.dwg

 

Link to comment
Share on other sites

39 минут назад, A.Kudrjashov сказал:

... вроде как всё нормально

Спойлер

1000984802_3.png.f51890a1c918bcf403635541724751ce.png

nanoCAD Геоника x64 11.0, варианты качества отрисовки очевидны )

Edited by VitBor
Link to comment
Share on other sites

Цитата

nanoCAD Геоника x64 11.0, варианты качества отрисовки очевидны )

Спору нет. Только вот ради откосов ставить монструозную Геонику не вижу никакого смысла. Вероятно можно работать в Геонике вообще. Но опять же зачем запускать такую мощную платформу с модулями трасс, сечений и т.п. только для того чтобы чуть-чуть дооформить план и нарисовать штрихи откосов.

Link to comment
Share on other sites

5 минут назад, kirill85 сказал:

Может быть разработчики Геоники подбросят несколько строк кода... Для общественности...

Прикол в том, что Геоника не строит ( не рисует  3d отрезки ) откосы в 3d, картинка выше - результат работы SLOPE-LINE со сплайн сглажеными 3d полилиниями !

Edited by VitBor
Link to comment
Share on other sites

3 минуты назад, VitBor сказал:

Прикол в том, что Геоника не строит ( не рисует  3d отрезки ) откосы в 3d, картинка выше - результат работы SLOPE-LINE со сплайн сглажеными 3d полилиниями !

Т.е. вы хотите сказать, что эти пространственные штрихи рисует чудо-лисп SLOPE-LINE???

Это ж просто чудесно!

Link to comment
Share on other sites

6 минут назад, kirill85 сказал:

Т.е. вы хотите сказать, что эти пространственные штрихи рисует чудо-лисп SLOPE-LINE???

Это ж просто чудесно!

Но к сожалению мне не удается отрисовать 3d выемку, видать с замкнутыми полилиниями SLOPE-LINE не работает (

Спойлер

1982250819_5.png.205ea65edf7860468a65e32d91552013.png

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Tell a friend

    Love Официальный форум компании Нанософт Разработка? Tell a friend!
×
×
  • Create New...