Перейти к содержанию

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


Рекомендуемые сообщения

Отрисовка условного обозначения откосов дороги с возможностью регулировать расстояние между штрихами (2,4).

Ролик снят в nanoCAD 20.1

otkgp_1.lsp

Ссылка на сообщение
Поделиться на другие сайты
  • 3 месяца спустя...

Добрый день!

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

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

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

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

Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

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

 

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

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

Спойлер

image.png.1426c646f3d0028783b4745866330cd2.png

 

 

Спойлер

image.thumb.png.8dc2dc6d856ebf2fb4ddf8216089252a.png

 

Здесь:

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

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

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

 

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

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

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

 

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

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

 

Ссылка на сообщение
Поделиться на другие сайты

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

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

Изменено пользователем kirill85
Ссылка на сообщение
Поделиться на другие сайты
1 час назад, kirill85 сказал:

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

 

nanoCAD Геоника,

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

 

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

(Откосы)

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

Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

Изменено пользователем kirill85
Ссылка на сообщение
Поделиться на другие сайты
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.

Ссылка на сообщение
Поделиться на другие сайты
1 час назад, A.Kudrjashov сказал:

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

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

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

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

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

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

Ссылка на сообщение
Поделиться на другие сайты
4 часа назад, EdwardSt сказал:

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

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

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


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

Ссылка на сообщение
Поделиться на другие сайты
36 минут назад, A.Kudrjashov сказал:

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

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

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

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

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

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

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

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

Ссылка на сообщение
Поделиться на другие сайты

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

Спойлер

01.thumb.PNG.88241827d4eac86ae35fc5c0a764d68a.PNG

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

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

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

Изменено пользователем kirill85
Ссылка на сообщение
Поделиться на другие сайты
5 минут назад, kirill85 сказал:

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

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

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

 

Ссылка на сообщение
Поделиться на другие сайты

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

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

Спойлер

02.thumb.PNG.ff6af38e0536b2808300a446688a4779.PNG

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

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

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

Спойлер

03.thumb.PNG.273956bbb272035153a5258baa68c615.PNG

 

Ссылка на сообщение
Поделиться на другие сайты

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

 

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

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

 

Ссылка на сообщение
Поделиться на другие сайты
Цитата

Т.е. штрихи обычно перпендикулярны к нижней кромке,

А нужно чтобы были перпендикулярны верхней.

Сама по себе программа отличная!

 

Ссылка на сообщение
Поделиться на другие сайты

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

Спойлер

632908538_.png.4a20c99f0e1d60917b6500107e106555.png

 

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

Спойлер

446333490_2.png.cef89bc815d71b32bebb507002c4ed29.png

 

 

Изменено пользователем VitBor
Ссылка на сообщение
Поделиться на другие сайты
45 минут назад, VitBor сказал:

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


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

Спойлер

image.thumb.png.4c538b3d932408d9be600a10ee135b23.png

 

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

 

Ссылка на сообщение
Поделиться на другие сайты
39 минут назад, A.Kudrjashov сказал:

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

Спойлер

1000984802_3.png.f51890a1c918bcf403635541724751ce.png

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

Изменено пользователем VitBor
Ссылка на сообщение
Поделиться на другие сайты
Цитата

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

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

Ссылка на сообщение
Поделиться на другие сайты
28 минут назад, kirill85 сказал:

ради откосов ставить монструозную Геонику

Спойлер

967390253_4.thumb.png.74e1e7de0730c7a8651ec4c1e6ffbd62.png

в 3d то же красиво !

Изменено пользователем VitBor
Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, VitBor сказал:

в 3d то же красиво !

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

Ссылка на сообщение
Поделиться на другие сайты
5 минут назад, kirill85 сказал:

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

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

Изменено пользователем VitBor
Ссылка на сообщение
Поделиться на другие сайты
3 минуты назад, VitBor сказал:

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

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

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

Ссылка на сообщение
Поделиться на другие сайты
6 минут назад, kirill85 сказал:

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

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

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

Спойлер

1982250819_5.png.205ea65edf7860468a65e32d91552013.png

 

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Расскажите друзьям

    Нравится Официальный форум компании Нанософт? Расскажите друзьям!
  • Похожий контент

    • От Vozhich
      Есть программы которая считывает атрибуты блока и заполняет таблицу (например: общие данные).
      Случайно заметил глюк. При очередном открытии файла (после просмотра его автокадом) атрибуты блоков немного "поплыли".
      Помогает команда в командной строке "атробновить". Атрибуты в пространстве модели после этого выглядят нормально. Но программное чтение атрибута не видить его значения.
      При этом в свойствах блока значения атрибутов видно. Чтобы исправить ситуацию приходится ручками заходить в редактирование атрибута блока и не редактируя выйти.
      Что это может быть? и как избежать?
    • От A.Kudrjashov
      В AutoLISP различие результата выполнения функций print и prin1 заключается в частности в том, что функция print предваряет вывод очередной порции текста переводом строки.
      В nanoCAD этого не происходит ! 

       
      TestPrint.lsp
       
      test-print_nanoCAD.txt
       
      test-print_AutoCAD.txt
    • От Танюха
      Значения координат точек (X,Y,Z) выводятся в системе координат nanoCAD, округленные до двух знаков после запятой. Вывод координаты Z можно отрегулировать. 
      geo_koord_mleader_adapt.lsp
    • От Танюха
      Нумерация точек чертежа вручную с возможностью задавать префикс, суффикс и угол поворота текста.
       
      Num_Nc.lsp
    • От Танюха
      Экспорт координат указанных точек, выбранных объектов: точек, блоков, полилиний, сплайнов в текстовый файл или Excel. Округление координат происходит в соответствии с текущими настройками команды _UNITS
      coorN_nano.LSP
×
×
  • Создать...