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

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

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

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

Есть программы для заполнения контуров площадных объектов условными знаками? Для заполнения регулярного - по прямоугольной сетке и в шахматном порядке, и нерегулярного, но через указанное среднее расстояние? И чтобы знаки не накладывались на границы контуров?
Такая программа очень нужна для картографов-топографов.
Просмотров: 21193
 
Непрочитано 04.08.2010, 04:20
#2
KAI

геологоразведка, строительство
 
Регистрация: 14.10.2003
Магадан
Сообщений: 311


Может поможет. Программа MINS_HATCH из пакета KAI-2001.
__________________
Лень - великий двигатель прогресса!
KAI вне форума  
 
Непрочитано 04.08.2010, 04:22
#3
n0str0m0

геолог
 
Регистрация: 02.09.2009
Тында, Дальний Восток
Сообщений: 413
<phrase 1=


Такая программа есть. Это Геоникс. Там в панели УТИЛИТЫ есть инструмент ШТРИХОВКА КОНТУРА БЛОКОМ. Выбираешь блок, выбираешь контур, указываешь шаг по Х, шаг по Y, угол штрихования и вперед. Блоки никогда не вылезут на контур, а при изменении контура штриховка тоже изменится, будет заполнять весь новый контур. Очень удобно.
http://www.csoft.ru/catalog/soft/geo...eonics-10.html
или на торренте
n0str0m0 вне форума  
 
Непрочитано 04.08.2010, 07:02
#4
MCAD


 
Блог
 
Регистрация: 05.01.2005
Сообщений: 1,715


В СПДСе есть 2 команды:
spardarray - Массив по области
sppltarray - Раскладка плитки
MCAD вне форума  
 
Автор темы   Непрочитано 04.08.2010, 18:14
#5
АлексЮстасу

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


Спасибо ответившим
Только покупать или ставить целый пакет из-за одной-двух функций нецелесообразно. Да и наверняка эти функции как-то будут связаны с идеологией пакета, т.е. потребуется что-то дополнительно учитывать, менять (это я про Геоникс).
АлексЮстасу вне форума  
 
Непрочитано 04.08.2010, 19:00
#6
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


_superhatch из комплекта Express Tools опробована?
Хмурый вне форума  
 
Автор темы   Непрочитано 04.08.2010, 19:16
#7
АлексЮстасу

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


Цитата:
Сообщение от Хмурый Посмотреть сообщение
_superhatch из комплекта Express Tools опробована?
Пытался. Но моего умища не хватает получить иной результат, кроме зависания Автокада.
superhatch позволит заполнить нерегулярно?
АлексЮстасу вне форума  
 
Непрочитано 04.08.2010, 19:18
#8
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


не позволяет
Хмурый вне форума  
 
Автор темы   Непрочитано 04.08.2010, 19:44
#9
АлексЮстасу

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


Итого: ничего отдельного, самостоятельной программки заполнения площадей условными знаками нет?
АлексЮстасу вне форума  
 
Непрочитано 04.08.2010, 19:44
#10
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
superhatch позволит заполнить нерегулярно?
Для заполнения superhatch создай третий блок, в котором заполнены только четные или нечетные места матрицы и штрихуй им
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 05.08.2010, 04:09
#11
АлексЮстасу

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


Цитата:
Сообщение от VVA Посмотреть сообщение
Для заполнения superhatch создай третий блок, в котором заполнены только четные или нечетные места матрицы и штрихуй им
"третий" - это как? А второй блок какой?

Наконец, получилось хоть раз заполнить
Можно ли задать расстояния (строки/колонки) цифрами, а не прямоугольником?
И блоки все-таки наложились на границу, и обрезались ей. Что в топографии делаться не должно.
Заполнить двумя разными блоками одновременно (например, через один) вроде бы тоже нельзя.
АлексЮстасу вне форума  
 
Непрочитано 05.08.2010, 06:39
#12
ShaggyDoc

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


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Итого: ничего отдельного, самостоятельной программки заполнения площадей условными знаками нет?
А те, кто делает подобное, и не будут разрабатывать самостоятельные "программки". Сейчас тебе надо штриховку блоком, потом откосы, потом дороги потом - все остатьные пять сотен топографических обозначений. А это все делается в комплексе.

Так что "программки" делай сам. Это просто. Например:
Код:
[Выделить все]
(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
Во время работы см. рис.1, результат - рис 2.
Миниатюры
Нажмите на изображение для увеличения
Название: xml_topo_hatch_block.png
Просмотров: 679
Размер:	9.8 Кб
ID:	43279  Нажмите на изображение для увеличения
Название: topo_hatch_block.png
Просмотров: 679
Размер:	5.1 Кб
ID:	43280  
ShaggyDoc вне форума  
 
Автор темы   Непрочитано 05.08.2010, 11:41
#13
АлексЮстасу

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


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Так что "программки" делай сам. Это просто. Например:
[code](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)
Этот "block_lib - макроблок" - это что такое? Остальное вроде бы все понятно.
Это название файла с блоками ("ru-lib-topo")? А "land\\" - это какое-то место, где лежит этот файл с блоками?
И как правильно задать этот параметр block_lib, если блок описан в самом рабочем файле?
АлексЮстасу вне форума  
 
Непрочитано 05.08.2010, 14:46
#14
ShaggyDoc

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


Цитата:
Этот "block_lib - макроблок" - это что такое? Остальное вроде бы все понятно.
Это название файла с блоками ("ru-lib-topo")? А "land\\" - это какое-то место, где лежит этот файл с блоками?
И как правильно задать этот параметр block_lib, если блок описан в самом рабочем файле?
Ну, ты же не сможешь этим воспользоваться. Это фактически - алгоритм. Все подробности были в книге "САПР на базе AutoCAD - как это делается".

"land\\", естественно, какое-то место, о котором знает программа.
block_lib - макроблок, библиотека блоков - dwg-файл, в котором есть куча маленьких блочишек.
block_name - имя конкретного блочишки которым надо "штриховать".

А в "рабочем файле" этого блока может и не быть. Кто его там опишет? Если есть - будет использован, а нету - прилетит из библиотеки.
ShaggyDoc вне форума  
 
Автор темы   Непрочитано 05.08.2010, 17:07
#15
АлексЮстасу

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


Цитата:
Сообщение от ShaggyDoc Посмотреть сообщение
Ну, ты же не сможешь этим воспользоваться. Это фактически - алгоритм. Все подробности были в книге "САПР на базе AutoCAD - как это делается".

"land\\", естественно, какое-то место, о котором знает программа.
block_lib - макроблок, библиотека блоков - dwg-файл, в котором есть куча маленьких блочишек.
block_name - имя конкретного блочишки которым надо "штриховать".

А в "рабочем файле" этого блока может и не быть. Кто его там опишет? Если есть - будет использован, а нету - прилетит из библиотеки.
Т.е. я использовать данный лисп не смогу?
Файл с малюсенькими блочишечками у меня, конечно ж, есть. Только как его для этой программы подключить?

Последний раз редактировалось АлексЮстасу, 05.08.2010 в 17:26.
АлексЮстасу вне форума  
 
Непрочитано 15.08.2010, 15:52
#16
Nikolays

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


есть набор утилит kelf называется посмотри в загрузках
Nikolays вне форума  
 
Автор темы   Непрочитано 15.08.2010, 23:56
#17
АлексЮстасу

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


Цитата:
Сообщение от Nikolays Посмотреть сообщение
есть набор утилит kelf называется посмотри в загрузках
Сейчас не могу его найти.
Но я его когда-то скачал. Жаль только, что он не ставится из-за отсутствия файла интерфейса Kelf.cui
АлексЮстасу вне форума  
 
Непрочитано 16.08.2010, 06:18
#18
Nikolays

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


Загружай файл меню kite.mns, а файл kite.cui сам образуется,если надо сброшу на email, у меня стоит и нормально работает включая и 2009 АКАД
Nikolays вне форума  
 
Автор темы   Непрочитано 16.08.2010, 12:25
#19
АлексЮстасу

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


Цитата:
Сообщение от Nikolays Посмотреть сообщение
Загружай файл меню kite.mns, а файл kite.cui сам образуется,если надо сброшу на email, у меня стоит и нормально работает включая и 2009 АКАД
Получилось, заработало, спасибо!
Интересный пакет.
О заполнении знаками:
1. нет нерегулярного заполнения
2. знаки почему-то вылезают за указанную границу. В некоторых случаях вообще все заполняющие знаки оказываются за пределами площади. (похоже, что за базовую точку программа принимает точку вставки образца знака или что-то в этом роде)
АлексЮстасу вне форума  
 
Непрочитано 17.08.2010, 06:32
#20
Nikolays

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


граница штриховки должна быть замкнутой полилинией и иметь нулевую отметку,если значки оказываются за пределами площади значит граница имеет какую то отметку по высоте
Nikolays вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > заполнение контуров условными знаками