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

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

Войти

Полезные программы от Philin (строительство). VBA

Тема в разделе "Autodesk", создана пользователем Philin, 20 ноя 2010.

  1. Палыч

    Форумчанин

    Регистрация:
    16 июл 2007
    Сообщения:
    2.332
    Симпатии:
    176
    Адрес:
    Беларусь
    Да
    --- Сообщения объединены, 10 ноя 2013, Оригинальное время сообщения: 10 ноя 2013 ---
    Но по отдельным слоям
     
    #341
  2. Philin

    Форумчанин

    Регистрация:
    1 фев 2008
    Сообщения:
    2.557
    Симпатии:
    2.084
    Адрес:
    Москва
    А зачем отдельные слои? Интерполированные точки и текст высот к ним чисто вспомогательные, создаются для удобства пользователя при редактировании сложных участков и при стыках горизонталей вручную (позже можно просто удалить этот слой или отключить его). Поэтому они все на одном слое, но высота текста и точек в 3D.

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

    Чисто технически создать такие слои не проблема. Просто я в ужас впаду, когда увижу сотни созданных программой слоёв :) Конечно, свой ужас я переживу - создам программу для автоматического отключения или удаления таких слоёв, но... зачем создавать трудности, а потом героически их преодолевать? ::wink24.gif::

    PS Может быть всё-таки достаточно того, что горизонтали расположены каждая на своей высоте? На одном слое, опять же.
     
    #342
  3. Палыч

    Форумчанин

    Регистрация:
    16 июл 2007
    Сообщения:
    2.332
    Симпатии:
    176
    Адрес:
    Беларусь
    Почему сотни слоев? Всего три. Слой -поверхность,где горизлнтали,слой - отметки где точки и их описание и слой-3Д грани.
    --- Сообщения объединены, 10 ноя 2013, Оригинальное время сообщения: 10 ноя 2013 ---
    Причем слой отметки- можно создать при загрузке данных в Акад Вашей же прогой
     
    #343
  4. Philin

    Форумчанин

    Регистрация:
    1 фев 2008
    Сообщения:
    2.557
    Симпатии:
    2.084
    Адрес:
    Москва
    Так оно так и есть :)
    [​IMG]

    Слой с горизонталями (sГоризонтали)
    Слой интерполированных точек и их имена текстом (GТочки)
    Слой 3D граней (3Dсеть)

    Красным программа красит точки, тексты и горизонтали кратные целым метрам. Синим все остальные точки, тексты и горизонтали.
     
    #344
  5. Палыч

    Форумчанин

    Регистрация:
    16 июл 2007
    Сообщения:
    2.332
    Симпатии:
    176
    Адрес:
    Беларусь
    Ну вот ,здоово.Идем дальше::biggrin24.gif::
     
    #345
  6. Philin

    Форумчанин

    Регистрация:
    1 фев 2008
    Сообщения:
    2.557
    Симпатии:
    2.084
    Адрес:
    Москва
    Насчёт "в контуре" подумаю. А вот насчёт "в контурах"... пока слабо представляю как это организовать математически.
     
    #346
  7. Палыч

    Форумчанин

    Регистрация:
    16 июл 2007
    Сообщения:
    2.332
    Симпатии:
    176
    Адрес:
    Беларусь
    Точнее в контуре строить или не строить горизонтали.
     
    #347
  8. Philin

    Форумчанин

    Регистрация:
    1 фев 2008
    Сообщения:
    2.557
    Симпатии:
    2.084
    Адрес:
    Москва
    С математикой более-менее разобрался (в уме). В любом случае это задача на будущее.
    Теперь надо разобраться какие могут быть варианты и как это предоставить для пользователя. Время есть.

    Сразу могу сказать, что одновременно не более одного контура может быть. Это не коммерческий продукт, чтобы настолько усложнять математику. Даже на LISP не видел программ, которые работают с более чем одним контуром одновременно, а там практически всё делает автокад. В VBA же автокад ничего делать не будет, все функции, включая примитивную TRIM, надо писать самому с нуля.
     
    #348
  9. Палыч

    Форумчанин

    Регистрация:
    16 июл 2007
    Сообщения:
    2.332
    Симпатии:
    176
    Адрес:
    Беларусь
    Я думаю что бкдет достаточно и в одном.Но наверно надо сделать такую функцию как создать контур,а уже в нем рисовать или нет горизлнтали. Просто на большом массиве сьемки не везде нужно отрисовка их(горизонталей)
     
    #349
  10. Philin

    Форумчанин

    Регистрация:
    1 фев 2008
    Сообщения:
    2.557
    Симпатии:
    2.084
    Адрес:
    Москва
    Предполагаю, что так делает коммерческий софт. Им это надо для того чтобы вести базу объектов. Тут же всё гораздо проще и работать будет быстрее. Контур может создать сам пользователь без всяких функций, скажем замкнутую 2D полилинию (наиболее оптимальный вариант), а в программе добавить чекбоксы типа:
    • выбрать контур для отрисовки горизонталей внутри
    • выбрать контур для отрисовки горизонталей снаружи
    Если пользователь ставит галочку в одном из пунктов, то после нажатия кнопки "нарисовать горизонтали" программа просит выбрать пользователя замкнутый контур и только после этого чертит горизонтали. Если контур не требуется, то ничего не запрашивается и горизонтали чертятся по всем точкам съёмки.
    Как-то так.
     
    #350
  11. Палыч

    Форумчанин

    Регистрация:
    16 июл 2007
    Сообщения:
    2.332
    Симпатии:
    176
    Адрес:
    Беларусь
    Хм::biggrin24.gif:: Вообще то я про это и говорю. Но вас мои слова заводят в какие то заоблочные дали. Так может мне лучше помолчать?::biggrin24.gif::
    --- Сообщения объединены, 12 ноя 2013, Оригинальное время сообщения: 12 ноя 2013 ---
    После построения горизонталей она должна самоудалиться. Извените::biggrin24.gif::
     
    #351
  12. Philin

    Форумчанин

    Регистрация:
    1 фев 2008
    Сообщения:
    2.557
    Симпатии:
    2.084
    Адрес:
    Москва
    Никакие не дали, просто смотрю как это выглядит с технической стороны :)

    С этого всё и начинается. А заканчивается тем, что пишешь так как надо только тебе и больше никому это оказывается не нужно.

    Хорошая идея. Это требуется всегда или есть ситуации, когда её надо оставить?
     
    #352
  13. Палыч

    Форумчанин

    Регистрация:
    16 июл 2007
    Сообщения:
    2.332
    Симпатии:
    176
    Адрес:
    Беларусь
    Всегда.Потому что это просто линия ограничивающая обрабатываемую территорию.
     
    #353
  14. Philin

    Форумчанин

    Регистрация:
    1 фев 2008
    Сообщения:
    2.557
    Симпатии:
    2.084
    Адрес:
    Москва
    Что-то получилось с горизонталями... :)

    Программа с названием Gorizontali и две функции к ней GorUnion и GorBreak

    Возможности программы:
    - сгущение существующих планово-высотных точек поверхности с указанным шагом высоты
    - черчение поверхности в виде 3D сети треугольников (3D полилинии)
    - автоматическое черчение горизонталей на плоскости (2D полилинии, высота =0)
    - автоматическое черчение горизонталей с высотой (2D полилинии, высота каждой равна высоте отметки горизонтали)
    - чертит красным горизонтали с отметкой кратной целому числу метров, синим - все остальные горизонтали
    - чертит отдельно на трёх слоях: 3D сеть, горизонтали, точки интерполяции и их высотные отметки текстом.

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

    Вторая функция служит для разделения горизонтали в указанной пользователем точке на две стыкующиеся в этой точке горизонтали. Замены этой функции автокад не имеет. Если попытаться разрезать горизонталь с помощью автокад, то получите в итоге две полилинии, каждая из которых будет состоять из сотен или тысяч мелких кусочков (вместо десятков или сотен изначальных).

    Обе функции цикличны. Для их завершения надо нажать ESC.

    ВНИМАНИЕ! Программа воспринимает планово-высотные точки на указанном слое, другие примитивы автокад на этом слое она игнорирует. Перед началом работы она проверяет все точки на дубли и удаляет ВСЕ дубли точек. Дублями программа считает любую точку в радиусе 2мм от первой найденной, при этом высота точек игнорируется (радиус считается только в координатах X,Y). Если не удалять дубли точек, то треугольники построить не получится.

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

    Если ничего не понятно с установкой и запуском VBA, то качаем пакет программ из первого сообщение этой темы, а в нём есть подробная инструкция в формате pdf.

    Если в акад 2009-2014 хочется прописать кнопки вручную, а не через прилагаемый CUI файл или если у вас автокад версии до 2009, то макросы на кнопку для каждой программы соответственно:
    ^C^C_-vbarun Gorizontali.dvb!Gorizontali.StartProgram
    ^C^C_-vbarun GorUnion.dvb!GorUnion.StartProgram
    ^C^C_-vbarun GorBreak.dvb!GorBreak.StartProgram


    В выложенном архиве: программа, две функции к ней, иконки ко всем трём программам и файл адаптации CUI с помощью которого можно сразу встроить панель с кнопками в AutoCAD версии от 2009 до 2014.

    Краткая (10мин.) видеоинструкция по использованию... на примере съёмки 1500Га поверхности:


    PS Программа удалена. Бета получилась неудачной, первый блин комом :) Вторая бета для скачивания появится в этой теме 24 ноября 2013г.
     
    #354
    Последнее редактирование: 25 ноя 2013
  15. Палыч

    Форумчанин

    Регистрация:
    16 июл 2007
    Сообщения:
    2.332
    Симпатии:
    176
    Адрес:
    Беларусь
    Работать с программой пока не пробовал ,но смотрел ролик. Сразу ввела в задумчивость установка максимальных расстояний для построения треугольников. Может лучше исходить из масштаба съемки.? И тогда по требованиям к топоплану для "чистого поля" пикеты должны находиться не реже чем через 2 см плана.Применяя к масштабу -длина линии будет разная, ну и с "советским запасом прочности" увеличить эту величину в 2 раза -например. И тогдо выбирая масштаб не нужно будет "бить в бубен " подбирая величины. Как - то так.Первые впечатления.::biggrin24.gif::
     
    #355
  16. dkuroch

    Регистрация:
    26 дек 2012
    Сообщения:
    23
    Симпатии:
    1
    добрый день Philin подскажите скачал вашу программку SOFT6 установил ее работает только выноска а все остальные нет выдается ошибка
    --- Сообщения объединены, 22 ноя 2013, Оригинальное время сообщения: 22 ноя 2013 ---
    добрый день Philin подскажите скачал вашу программку SOFT6 установил ее работает только выноска а все остальные нет выдается ошибка
    run-time '75'
    Path/File access orror
    что нужно сделать подскажите пожалуйста у меня акад 2011 Wind 7
    --- Сообщения объединены, 22 ноя 2013 ---
    я просто удалил автокад затем поставил делал все по инструкции но почему то не работает до это все программки работали сей час выдает ошибку если можно отпишитесь
     

    Вложения:

    #356
  17. Philin

    Форумчанин

    Регистрация:
    1 фев 2008
    Сообщения:
    2.557
    Симпатии:
    2.084
    Адрес:
    Москва
    Только не для треугольников, а для интерполирования между точками съёмки. Треугольники вообще тут ни при чём, они чертятся только для большей наглядности и удобства черчения горизонталей вручную. Пользователь не в состоянии управлять черчением треугольников, они всегда полностью перекроют всю поверхность внутри общего контура (без зазоров) и сгладят контур снаружи.
    Оставлю как есть, то, что сделал. Введу дополнительно выпадающий список с масштабами. Причём изменение масштаба будет автоматически влиять на все остальные параметры, но изменение параметров не будет влиять на масштаб.
    Какой список масштабов стоит делать?
    Вот что приходит на ум:
    1:200
    1:500
    1:1000
    1:2000
    1:5000
    1:10000
    Ещё какие-то добавить? При выборе масштаба, все параметры будут автоматически рассчитаны под него с двойным запасом. Например для М 1:500 допустимый шаг между точками будет 20м (вместо 10) и т.п.

    :) Так в него и так не надо бить. Если мы сами делали съёмку, то шаг съёмки мы знаем.
     
    #357
  18. dkuroch

    Регистрация:
    26 дек 2012
    Сообщения:
    23
    Симпатии:
    1
    и еще по программке создания файлов координат примитивов чертежа выдается ошибка Run-taime '5' invalid procedure call or argument запускаю все от имени администратора подскажите пожалуйста Philin
     

    Вложения:

    #358
  19. Philin

    Форумчанин

    Регистрация:
    1 фев 2008
    Сообщения:
    2.557
    Симпатии:
    2.084
    Адрес:
    Москва
    Ошибка 75 скорее всего говорит о том, что Windows запрещает автокад запускать скрипты. Такое может происходить если автокад в Win7 или Win8 запускается с правами пользователя. Надо настроить запуск автокад от имени администратора и всё должно заработать.

    PS В пакете программ №6 некоторые программы далеко не последней версии. Рекомендую скачать и устаановить программы последних версий. Две из них можно скачать из раздела "Ресурсы" форума (кнопка сверху слева страницы форума), а ещё одна была выложена пару страниц выше в этой теме (ссылку на сообщение с обновлённой версией можно увидеть в первом сообщении этой темы сразу после краткого описания программы).
    --- Сообщения объединены, 22 ноя 2013, Оригинальное время сообщения: 22 ноя 2013 ---
    А прочитать не по диагонали первое сообщение этой темы сложно? Вот скрин части того сообщения:
    [​IMG]
     
    #359
  20. Палыч

    Форумчанин

    Регистрация:
    16 июл 2007
    Сообщения:
    2.332
    Симпатии:
    176
    Адрес:
    Беларусь
    По масштабам думаю достаточно. По горизонталям - предварительно у Вас было каждая 4я горизонталь красная остальные синие, в ролике уже через одну.По правилам -каждая четная (четвертая::biggrin24.gif::) горизонталь утолщенная .Цвет роли не играет пока.При выпуске на печать или при передаче файла можно поменять.
    З.Ы. Может по этой программе отдельный топик сделать?
     
    #360

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

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