заполнение контуров условными знаками - Страница 2
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > заполнение контуров условными знаками

заполнение контуров условными знаками

Ответ
Поиск в этой теме
Непрочитано 04.08.2010, 03:47
заполнение контуров условными знаками
АлексЮстасу
 
топограф, технолог
 
Москва
Регистрация: 24.05.2009
Сообщений: 3,072

Есть программы для заполнения контуров площадных объектов условными знаками? Для заполнения регулярного - по прямоугольной сетке и в шахматном порядке, и нерегулярного, но через указанное среднее расстояние? И чтобы знаки не накладывались на границы контуров?
Такая программа очень нужна для картографов-топографов.
Просмотров: 21203
 
Автор темы   Непрочитано 17.08.2010, 22:48
#21
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Цитата:
Сообщение от Nikolays Посмотреть сообщение
граница штриховки должна быть замкнутой полилинией и иметь нулевую отметку,если значки оказываются за пределами площади значит граница имеет какую то отметку по высоте
Это тоже слабость программы. Ведь заранее создавать замкнутые контуры на топографических планах заметно трудоемко. Контуры растительности и т.п. бывают очень замысловатыми, с "островами" и т.д.
Специальная команда Автокада для создания таких границ - Boundary (как я не раз на форумах уже писал, да и совсем не один я) - работает некорректно, неточно или не работает вовсе.
Ненулевая высота контура растительности, согласен, случай, сорее, экзотический, но было бы неплохо и его учесть. И работать не только с полилиниями, но и с 3Дполилиниями.
АлексЮстасу вне форума  
 
Непрочитано 17.08.2010, 22:49
#22
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
работать не только с полилиниями, но и с 3Дполилиниями.
А в какой плоскости и на какой высоте тогда располагать объекты штриховки?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 18.08.2010, 00:03
#23
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
А в какой плоскости и на какой высоте тогда располагать объекты штриховки?
В любом случае, конечно, заполняющие знаки нужно кинуть в сердцах подальше от контура.
АлексЮстасу вне форума  
 
Непрочитано 18.08.2010, 06:30
#24
Nikolays

INJENER
 
Регистрация: 03.05.2007
Kazakhstan
Сообщений: 161


при обработки съёмки надо придерживаться правила, отрисовывать все площадные объекты которые будут заполняться условными знаками замкнутыми полилиниями,перед штриховкой площади нужно обнулить границу контура, если она не нулевая это всё делается элементарно и без проблем
Nikolays вне форума  
 
Непрочитано 18.08.2010, 07:01
#25
ShaggyDoc

Thượng Tá Quân Đội Nhân Dân Việt Nam
 
Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372


Штриховка (хоть "образцами", хоть блоками) - условность черчения. В частном случае - топографического. Разумется такой "условный знак" должен быть выполнен в одной плоскости. Применительно к Автокаду - это плоскость Х-У текущей ПСК (какая бы она не была). 3D полилинии для контуров тут не пойдут. Если хотите в 3D - ставьте каким-то образом и 3D-изображения знаков. Но это сложно и не нужно.

Разумеется и программы должны всегда рисовать плоские изначально изображения в текущей ПСК. Очень часто авторы программ про это забывают и они работают у них только в МСК.
ShaggyDoc вне форума  
 
Автор темы   Непрочитано 18.08.2010, 13:23
#26
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Цитата:
Сообщение от Nikolays Посмотреть сообщение
при обработки съёмки надо придерживаться правила, отрисовывать все площадные объекты которые будут заполняться условными знаками замкнутыми полилиниями,перед штриховкой площади нужно обнулить границу контура, если она не нулевая это всё делается элементарно и без проблем
При создании планов и карт нужно придерживаться правила вычерчивать все границы без дублирования. После вычерчивания полуавтоматическими инструментами обеспечивается примыкание линий границ и разбивание (создание узлов) на пересечениях линий границ. Для получения топологически корректной модели. Которую с помощью полуавтоматических инструментов можно использовать для формирования площадных объектов в виде замкнутых полигонов (или регионов) или в виде центроидов-наборов контуров, составляющих границы или просто наборов контуров, составляющих границы.

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

То, что Автокад не имеет таких наборов инструментов - его беда, и заметная слабость его положения в секторе цифровой картографии.

ShaggyDoc - есть реальные и распространенные случаи, когда 3D полилинии для контуров нужны. Это когда заказчикам нужна гидрография, дорожная сеть и объекты рельефа еще и как структурные линии рельефа. Тогда эти объекты вычерчиваются 3D полилиниями. А все они могут являться границами площадных объектов.

Конечно, заполняющие знаки вполне нормально держать на нулевой высоте. А вот промахиваться этими знаками мимо контура, из чего бы он ни состоял, и на какой бы высоте ни лежал - как то странно.

Уже сейчас почти все заказчики хотят отметки и горизонтали на своей высоте. Часть заказчиков хочет еще и гидрографию с дорожной сетью в виде 3Д объектов. И все больше заказчиков, которые хотят 3Д карту, полную 3Д модель. Почему бы те же заполняющие знаки - каждый - не поместить на высоте модели поверхности? Пусть это сейчас и звучит фантазийно.
АлексЮстасу вне форума  
 
Непрочитано 16.02.2011, 17:39
#27
BadB_85


 
Регистрация: 20.01.2011
Сообщений: 12


я извиняюсь.тут такое дело...искал как раз тоже самое.у меня 4 Га топосъемки.надо ее заполнить условными знаками.вот прочитал,но не до конца все понял.а точнее мало чего понял.сделал ваш лисп который вы посоветовали(надеюсь это не считается за кражу) и что дальше то?как мне это все заполнить тем же сенокосом????
BadB_85 вне форума  
 
Непрочитано 16.02.2011, 18:05
#28
Nikolays

INJENER
 
Регистрация: 03.05.2007
Kazakhstan
Сообщений: 161


в справке всё написано

Последний раз редактировалось Nikolays, 16.02.2011 в 18:12.
Nikolays вне форума  
 
Непрочитано 17.02.2011, 09:58
#29
BadB_85


 
Регистрация: 20.01.2011
Сообщений: 12


эм.в какой справке?и где мне найти эту примочку kelf??
BadB_85 вне форума  
 
Непрочитано 17.12.2015, 17:34
#30
Timbu


 
Регистрация: 11.12.2015
Сообщений: 3


Помогите разобраться с этим кодом, как все таки мне его доделать под свои нужды. Миниатюры Рис1 и Рис 2 это как раз то что мне нужно.
в этих строках мне нужно внесли изменения, в каких еще?
(ru-draw-block-hatch "Штриховка блоком" "land\\ru-lib-topo" "ru_topo_0032" 1 8 8 T 0)
(ru-draw-block-hatch "Штриховка блоком" "common\\ru-lib-common" "ru_circle_and_cross_unit" 1 3 3 NIL 45)
что такое набор утилит kelf , вернее для чего он? в общем можно подробнее описать как сделать из этого рабочий лисп. Просто я слабо пока в этом разбираюсь, но такой лисп был бы крайне полезен.

помогите пожалуйста разобраться с этим кодом. Я очень слабо разбираюсь в этом. Как все таки из этого сделать рабочий лисп? примеры приложенные к описанию кода это как раз то что нужно.
я понимаю что он почти готовый но нужно заменить названия файлов и пути к ним, в этих строках :
(ru-draw-block-hatch "Штриховка блоком" "land\\ru-lib-topo" "ru_topo_0032" 1 8 8 T 0)
(ru-draw-block-hatch "Штриховка блоком" "common\\ru-lib-common" "ru_circle_and_cross_unit" 1 3 3 NIL 45)
где еще? в общем можно подробнее расписать что нужно отредактировать ?
Миниатюры
Нажмите на изображение для увеличения
Название: topo_hatch_block.png
Просмотров: 84
Размер:	5.1 Кб
ID:	162480  

Последний раз редактировалось Кулик Алексей aka kpblc, 17.12.2015 в 19:52.
Timbu вне форума  
 
Автор темы   Непрочитано 17.12.2015, 17:58
#31
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 3,072


Цитата:
Сообщение от Timbu Посмотреть сообщение
в общем можно подробнее расписать что нужно отредактировать ?
Ответ от автора кода:
Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Ну, ты же не сможешь этим воспользоваться. Это фактически - алгоритм. Все подробности были в книге "САПР на базе AutoCAD - как это делается".
Поищите работающие альтернативы. Например: http://geodesist.ru/forum/threads/za...kom-vlx.14717/
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 17.12.2015, 22:25 заполнение контуров условными знаками
#32
Nikolays

INJENER
 
Регистрация: 03.05.2007
Kazakhstan
Сообщений: 161


скачай menuGEO и будет тебе хорошо
Nikolays вне форума  
 
Непрочитано 03.01.2024, 12:02
#33
Ingpro


 
Регистрация: 11.07.2022
Сообщений: 756


Возможно ли упростить код из поста #12, убрав из него блоки и пути к ним и заменить блоки на окружности или точки?
Заполнить выбранные объекты (rectangle, circle, lwpolyline, polyline) окружностями ∅50 (или точками, если это проще)
в шахматном порядке, с выбором шага (если возможно, с указанием отступа, но можно и без него).
В прямоугольниках, конечно, можно применить массив, но в круге или многоугольнике надо потом
удалять лишние окружности за пределами фигуры, что не очень удобно.
Код:
[Выделить все]
 
(defun ru-draw-block-hatch (header 
                            block_lib
                            block_name
                            scale
                            dx
                            dy
                            is_chess
                            ang_deg
                            / contour_ent lstbox lstver lx ly nx nxt ny nyt sm t0 tmax tt x x0 xmax y y0 ymax)
    
  ;|
 Штриховка блоком. Аргументы:
 Header	- заголовок
 block_lib       - макроблок
 block_name       - блок
 scale    - масштаб блока мм/бум
 dx	    - интервал по Х мм/бум
 dy       - интервал по У мм/бум
 is_chess     - признак шахматности
 ang_deg - поворот блока
 Примеры:
(ru-draw-block-hatch "Штриховка блоком" "land\\ru-lib-topo"  "ru_topo_0032"  1 8 8 T 0)
(ru-draw-block-hatch "Штриховка блоком" "common\\ru-lib-common" "ru_circle_and_cross_unit" 1  3  3 NIL 45)

|;
    (ru-app-begin)
    (if (ru-block-lib-insert block_lib block_name)
        (progn
            (setq dx    (ru-conv-millimeter-in-paper-to-unit dx)
                  dy    (ru-conv-millimeter-in-paper-to-unit dy)
                  scale (ru-conv-millimeter-in-paper-to-unit scale)
            ) ;_ end of setq
            ;; между рядами
            (if is_chess
                (setq sm (/ dy 2.0))
                (setq sm 0)
            ) ;_ end of if
            (if (setq lstVer (ru-pline-make-any-contour Header t NIL))
                (progn
                    (setq contour_ent (entlast))
                    ;; рисуем сетку
                    (princ "\nЖдите, рисую...\n")
                    (setq lstBox (ru-geom-bound-box (car lstVer))
                          t0     (cadr lstbox)
                          x0     (car t0)
                          y0     (cadr t0)
                          tmax   (car lstbox)
                          xmax   (car tmax)
                          ymax   (cadr tmax)
                          x      x0
                          y      y0
                          lx     (- xmax x0)
                          ly     (- ymax y0)
                          nx     (fix (/ lx dx))
                          ny     (fix (/ ly dy))
                          nxt    0
                          nyt    0
                    ) ;_ end of setq
                    (repeat (1+ nx)
                        (setq nxt (1+ nxt))
                        (repeat (1+ ny)
                            (setq nyt (1+ nyt)
                                  tt  (list X Y)
                            ) ;_ end of setq
                            (if (ru-match-is-even nyt)
                                (setq tt (polar tt 0 sm))
                            ) ;_ end of if

                            (if (ru-geom-is-point-in-contour tt (car lstVer))
                                (ru-block-insert-obj
                                    block_name
                                    tt
                                    scale
                                    scale
                                    scale
                                    (ru-conv-deg-to-rad ang_deg)
                                ) ;_ end of ru-block-insert-obj
                            ) ;_ end of if
                            (setq Y (+ Y dy))

                        )                                                      
                        (setq y   y0
                              nyt 0
                              X   (+ x dx)
                        ) ;_ end of setq
                    )                                                     
                    (if (ru-dlg-yes-cml "Стереть контур")
                        (entdel contour_ent)
                    ) ;_ end of if
                ) ;_ end of progn
            ) ;_ end of if
        ) ;_ end of progn
    ) ;_ end of if
    (ru-app-end)
    (princ)
) ;_ end of defun
Миниатюры
Нажмите на изображение для увеличения
Название: Image 2.png
Просмотров: 12
Размер:	28.4 Кб
ID:	260823  
Ingpro вне форума  
 
Непрочитано 03.01.2024, 12:36
#34
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406


https://www.autodesk.com/blogs/autoc...ls-superhatch/ ?
Всю тему не пересматривал, может, уже и показывали.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 03.01.2024, 14:13
#35
Ingpro


 
Регистрация: 11.07.2022
Сообщений: 756


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
https://www.autodesk.com/blogs/autoc...ls-superhatch/ ?
Там кучу всего надо указать... и непонятно поддерживается ли шахматный порядок... блоки не нужны...
Да и Express есть или нет...
Хотелось бы просто указать объекты, указать шаг и end... Потом мне нужно будет выбрать подобные и посмотреть количество.
Можно ли всё-таки подправить код?

Последний раз редактировалось Ingpro, 03.01.2024 в 14:34.
Ingpro вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > заполнение контуров условными знаками