Добро пожаловать!

Войдите или зарегистрируйтесь сейчас!

Войти

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

Тема в разделе "Autodesk", создана пользователем Alexandr-GR, 6 дек 2012.

  1. Alexandr-GR

    Форумчанин

    Регистрация:
    9 июн 2011
    Сообщения:
    1.192
    Симпатии:
    945
    Адрес:
    Новосибирск
    Аналоги, которые попадались, не совсем устраивают – написал свой вариант, может кому еще пригодится.

    ВЕРСИЯ 2.8
    Раскрыть Спойлер
    Окно2.8.2.png
    Это версия по сравнению с более ранними версиями претерпела значительные видоизменения и изменения функционала. Поэтому опишу ее более подробно.
    1. В порядке заполнения теперь отсутствует случайное нанесение (перемещено в настройку блока).
    Появилось заполнение на пересечениях координатных линий, т.е. крестами. Необходимо указать соответствующий масштабу интервал, выбрать блок(крест), указать масштаб (если блок не аннотативный) и выбрать(обвести) область заполнения.
    Также появилось заполнение 1х2х1, включение опции возможно только при наличии выбора второго блока.
    В целом же существует 3 варианта двойного заполнения.
    Раскрыть Спойлер
    Порядок.png
    2. Интервал, по-прежнему, можно указать число, а можно определить значение с помощью мыши.
    3. По ряду причин в последней версии отсутствует выбор примитивов в качестве условных знаков. Работа ведется непосредственно с блоками. И первое на что хочу обратить внимание – при отсутствии блоков в чертеже кнопки выбора контура неактивны, однако блоки можно вставить из внешних файлов по средствам опции «поиск».
    Появилось возможность поворачивать блоки как на определённое пользователем значением, так и на случайный угол.
    Неравномерность теперь находится в настройке параметров блока. Применяется как к шахматному, так и прямоугольному порядку. Значения коэффициента устанавливается пользователем и остается неизменным от сеанса к сеансу.
    Окошко «Блок2» вызывается нажатием галочки, снимается же галочка без появления этого окошка. В этом окне аналогичные Блоку1 настройки, за исключением отсутствия возможности изменения коэффициента.
    4. Масштабировать блоки. Сразу скажу, что корректным масштабирование будет при условии, что сами блоки отрисованны в масштабе 1:1 (1:1000) и не являются аннотативными.
    5. Группировать. Если Вы хотите чтобы в результате группировки подсвечивались ручки условных знаков, а не одна ручка группы, проверьте значение системной переменной _GROUPDISPLAYMODE, должно быть «0», также в настройках, во вкладке выбор проверьте установленное значение количества подсвечиваемых ручек (по-умолчанию: 100)
    6. Ну и сам выбор контура. Появилась возможность исключать, так называемые, острова.
    Выбор контуров заполнения цикличен, как и исключение островов, т.е. выбираете необходимое количество контуров для заполнения, затем исключаете необходимые острова.
    Раскрыть Спойлер
    введение.gif
    При завершении каждого цикла выбора нажатием пр.кн. мыши появляются следующие варианты: 1. Ввести (Enter) – будет произведен выход в диалоговое окно, 2. Прервать (Esc) – Выход из приложения, 3. Заполнить – новый цикл заполнения контуров, 4. Исключить – новый цикл исключения условных знаков из контуров.
    Раскрыть Спойлер
    Варианты.png

    ** хочу обратить внимание, что контур из которого исключаются условные знаки необязательно должен быть замкнутым.
    Предыдущие версии:
    ВЕРСИЯ 2.4
    Раскрыть Спойлер

    В основу алгоритма легла функция - проверка (не)вхождения точки в многоугольник.
    Zalivka.png
    Описание:
    1. Интервал
    - определяется пользователем (ввести или указать)
    - в соответствии с масштабом аннотаций, т.е. при М 1:1000(1:1) значение интервала будет составлять 7ед., при М 1:500(1:0.5) будет 3.5ед. и т.д.
    2.Порядок – Шахматный, Прямоугольный, Случайный
    - для реализации случайного порядка был использован генератор случайных чисел
    3. Условный знак
    - есть возможность выбора примитивов из чертежа с указанием базовой точки
    - выбор из списка блоков в чертеже
    - указав имя - поиск блоков, будет осуществляться вне чертежа в соответствующих каталогах, прописанных в «Путь к вспомогательным файлам»
    Путь_доступа.png
    4. Контур
    - можно выбрать такие примитивы как полилиния, 3d полилиния, характерная линия.
    - обвести контур, т.е. после определения области, сам контур будет удален.

    ВЕРСИЯ 2.6
    Раскрыть Спойлер
    [​IMG]
    - Добавил возможность многократного выбора или отрисовки контура;
    - Заменил командные методы при вставке условного знака, т.е. при нажатии Ctrl+Z(Отмена) отменяется вся предыдущая заливка, а не один условный знак;
    - в «порядок нанесения» добавил «пересечения координатных линий» [​IMG] для нанесения крестов (теперь нет необходимости настраивать шаг, достаточно указать соответствующий масштабу интервал, выбрать крест и определить область).

    Запуск: FILLTOPO

    версия обновлена до 2.8.4
     

    Вложения:

    #1
    Jahell, victori*a, kozakan и 15 другим нравится это.
  2. Палыч

    Форумчанин

    Регистрация:
    16 июл 2007
    Сообщения:
    2.332
    Симпатии:
    176
    Адрес:
    Беларусь
    В пункт -Порядок нанесения- добавить что-то типа -надпись- чтоб можно было легко заполнять контура где пишется пашня, пустырь,дв., А , Ц и т.д. Это же тоже контура
    Хотя это можно сделать простым копированием
     
    #2
  3. anton253

    Форумчанин

    Регистрация:
    15 фев 2011
    Сообщения:
    501
    Симпатии:
    306
    У меня после загрузки приложения и ввода filltopo ничего не происходит, а в командной строке появляется нолик. Что неизвестная команда не говорит. Акад2007.
     
    #3
  4. Alexandr-GR

    Форумчанин

    Регистрация:
    9 июн 2011
    Сообщения:
    1.192
    Симпатии:
    945
    Адрес:
    Новосибирск
    Не предусмотрел я)) В 2007 нет масштаба аннотаций. Поправлю, выложу…
     
    #4
  5. Alexandr-GR

    Форумчанин

    Регистрация:
    9 июн 2011
    Сообщения:
    1.192
    Симпатии:
    945
    Адрес:
    Новосибирск
    Поправил... Проверял на 2004, 2007 - работает...
     
    #5
    anton253 нравится это.
  6. anton253

    Форумчанин

    Регистрация:
    15 фев 2011
    Сообщения:
    501
    Симпатии:
    306
    Благодарю!
    Сейчас у меня утилита работает, но не даёт выбирать уже нарисованную область: говорит, что нету выбранных. Когда обводишь, всё получается и в шахматном и в случайном порядке.
     
    #6
  7. Alexandr-GR

    Форумчанин

    Регистрация:
    9 июн 2011
    Сообщения:
    1.192
    Симпатии:
    945
    Адрес:
    Новосибирск
    Пробуй..
     
    #7
    anton253 нравится это.
  8. anton253

    Форумчанин

    Регистрация:
    15 фев 2011
    Сообщения:
    501
    Симпатии:
    306
    Всё шикарно работает! Спасибо ещё раз.
    Оффтоп
    Был один заказчик, который хотел видеть именно заливки. Пробовал тогда пользоваться штриховками, но не понравилось. Отдельный блок я могу легко подвинуть, а со штриховкой такого варианта нет. Кто-нибудь пользуется штриховками для заливок? Объясните преимущества?
     
    #8
  9. Alexandr-GR

    Форумчанин

    Регистрация:
    9 июн 2011
    Сообщения:
    1.192
    Симпатии:
    945
    Адрес:
    Новосибирск
    Пожалуйста...
    Тестируйте, в случае чего, доработаю….
     
    #9
  10. 2fkmbyfrolru

    Форумчанин

    Регистрация:
    20 янв 2012
    Сообщения:
    267
    Симпатии:
    1
    Адрес:
    Кострома
    я в восхищении, спасибо за прогу.
     
    #10
  11. sergtor

    Форумчанин

    Регистрация:
    23 сен 2012
    Сообщения:
    1.715
    Симпатии:
    601
    Адрес:
    Ухта
    Alexandr-GR, спасибо за программку. Очень удобная. Вы как всегда на высоте! Так держать!
     
    #11
  12. Alexandr-GR

    Форумчанин

    Регистрация:
    9 июн 2011
    Сообщения:
    1.192
    Симпатии:
    945
    Адрес:
    Новосибирск
    Маленькая рекомендация:
    ! При заполнении контура блоками необязательно каждый раз настраивать размер блока под соответствующий масштаб.
    Если блок аннотативный (а как сделать блок аннотативным рассматривали, например, вот здесь), то при заполнении контура размер самого блока будет в соответствии с масштабом аннотаций.

    P.S. НО… Данная информация будет полезна для тех у кого Автокад 2008 или более свежая версия, в поздних версиях нет масштабов аннотаций..
     
    #12
  13. Alexandr-GR

    Форумчанин

    Регистрация:
    9 июн 2011
    Сообщения:
    1.192
    Симпатии:
    945
    Адрес:
    Новосибирск
    Обновленная версия 2.6 в первом сообщении
     
    #13
    anton253 и 2fkmbyfrolru нравится это.
  14. sergtor

    Форумчанин

    Регистрация:
    23 сен 2012
    Сообщения:
    1.715
    Симпатии:
    601
    Адрес:
    Ухта
    Доброго времени суток.
    Alexandr-GR, может бы есть резон дополнить программу функцией группировки блоков по выбору (желанию) "объединять в группу" и "не объединять в группу"). Я думаю это создаст дополнительную комфортность при редактировании.
     
    #14
  15. АлексЮстасу

    Форумчанин

    Регистрация:
    28 май 2012
    Сообщения:
    1.870
    Симпатии:
    668
    Адрес:
    Маськва
    Присоединяюсь к предыдущему мнению - было бы здорово сгруппировать заполняющие знаки, чтобы легче было удалять, менять свойства, сдвигать и т.п. все разом.
    Некоторые соображения:
    - Если контур был выбран до запуска программы, то она ничего не делает.
    - Что нужно указывать при запросе программы "Укажите базовую точку:"? У блоков есть своя точка вставки. А при других способах определения заполняющего блока базовая точка не запрашивается.
    - Интервал не запоминается при следующем вызове, хотя все остальные параметры запоминаются.
    - Случайное заполнение у меня получилось слишком неравномерно.
    - Похоже, что не учитывается нужность зазора между габаритами заполняющих знаков и границей - с учетом толщины границы хотя бы 0.5 мм в масштабе.
    - Бывает нужно заполнять двумя знаками одновременно. Например, кустарничко-моховая растительность, фруктово-виногдный сад и т.п.
    (Пардон за такое "нападение". Сейчас участвую в написании одной программки, и там список ко мне гораздо больше :) )
     
    #15
  16. Krovlaf

    Форумчанин

    Регистрация:
    15 дек 2009
    Сообщения:
    207
    Симпатии:
    42
    Адрес:
    Хабаровск
    Большое Человеческое СПАСИБО за долгожданную вещь!!! В особенности за координатные кресты!
    Плюсую за:
    - Группировку блоков
    - Заполнение контура несколькими блоками и выборе шага чередования (1х1, 1х2х1) (заполнение крапом литологических разрезов (гравийно-песчаные, галечно-гравийно-песчаные и пр.))если это технически возможно и не потребует значительных затрат времени и сил!
    - Поворот блока в контуре (заданный или случайный)
     
    #16
  17. Alexandr-GR

    Форумчанин

    Регистрация:
    9 июн 2011
    Сообщения:
    1.192
    Симпатии:
    945
    Адрес:
    Новосибирск
    Добавлю..
    А что должна сделать? (хотя само выделение, безусловно, будет сниматься. поправлю)
    Эта опция для выбора любых примитивов в качестве условного знака и базовая точка нужна для этого набора..
    Интервал берется с масштаба аннотаций, если версия ACADa, конечно, его содержит. Для меня, лично, удобно - работая в масштабе аннотаций 1:500 интервал при запуске программы будет 3.5, при 1:1000 - 7, при 1:2000 - 14 и т.д. В предыдущей версии можно было выбирать использовать масштаб аннотаций или нет, но т.к. я не сторонник нагромождений решил оптимизировать вышеизложенным способом.
    а сколько от "слишком неравномерно" до "неравномерно" )) Пробовали интервалом регулировать?
    А если серьезно, то это самая обсуждаемая позиция в этой программе (обсуждаемая, правда, не на форумах). Есть мнение, что в соответствии с "зеленой книжкой" даже при случайном порядке есть закономерность. В таком случае эту закономерность предстоит выявить и написать отдельную функцию.
    Ни какой зазор не учитывается. Программа просто проверяет вхож ли условный знак (вернее его базовая точка) в контур или нет. Сомневаюсь в необходимости такой позиции, хотя подумать над этим можно.
    Бывает.. Но на сколько часто, чтобы добавлять такой функционал (я надеюсь Вы понимаете усложнится представление)? И, скажем, для масштаба 1:1000 заполнение одним условным знаком с интервалом 14ед. и другим усл. знаком с интервалом 7ед. - не вариант?
    Я наоборот рад, когда пользователи высказывают свои мнения и пожелания. Ведь прежде всего я выкладываю свои наработки для хорошего теста, поиска уязвимых мест и дальнейшей доработки. Гораздо хуже, когда безмолвно скачивают, порой и непонятно работает вообще программа или нет. Другой вопрос ( и это не раз уже обсуждалось), что из легкой полезной программки можно сделать многофункциональную, но громоздкую и крайне неудобную прогу и вот эту тонкую грань не хочется переходить
     
    #17
  18. Alexandr-GR

    Форумчанин

    Регистрация:
    9 июн 2011
    Сообщения:
    1.192
    Симпатии:
    945
    Адрес:
    Новосибирск
    Рад, что "в кассу"))
    Буду разбираться с предложениями и возможными реализациями.
    На счет предложения АлексЮстасу и (1х1, 1х2х1) буду думать, как лучше реализовать.
    На счет заполнения крапом - а в этом случае штриховка не лучше ли подходит или есть какие то подводные камни? Я просто такими заполнениями, практически, и не пользовался. И думал, что стандартная штриховка некорректно заполняет только точечными условными знаками - обрезает по контуру. Если необходимость все-таки есть, будет здорово, если Вы выложите примеры с описаниями закономерностей.
    Возможность поворота блока добавить не сложно.
    Со случайным поворотом не понятно, во-первых зачем? а во-вторых: в каких пределах? а если повернет "вверх ногами" на 180)) и у всех УЗ в контуре одинаковый (случайный) угол или у всех разные углы?
     
    #18
  19. BearDyugin

    BearDyugin Модератор
    Форумчанин

    Регистрация:
    30 ноя 2007
    Сообщения:
    2.749
    Симпатии:
    2.505
    Адрес:
    Сибирь
    А как ты сейчас заполняешь "случайно"?
    Если сначало заполнить не случайно с шагом d, а потом случайно изменить положение каждого "заполнителя" в пределах, скажем 0.2*d
    Случайно.gif
     
    #19
  20. Alexandr-GR

    Форумчанин

    Регистрация:
    9 июн 2011
    Сообщения:
    1.192
    Симпатии:
    945
    Адрес:
    Новосибирск
    у меня 0.4d
     
    #20

Поделиться этой страницей

  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление