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

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

  1. Палыч

    Палыч Форумчанин

    Да
    --- Сообщения объединены, 10 ноя 2013, Оригинальное время сообщения: 10 ноя 2013 ---
    Но по отдельным слоям
     
  2. Philin

    Philin Форумчанин

    А зачем отдельные слои? Интерполированные точки и текст высот к ним чисто вспомогательные, создаются для удобства пользователя при редактировании сложных участков и при стыках горизонталей вручную (позже можно просто удалить этот слой или отключить его). Поэтому они все на одном слое, но высота текста и точек в 3D.

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

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

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

    Палыч Форумчанин

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

    Philin Форумчанин

    Так оно так и есть :)
    [​IMG]

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

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

    Палыч Форумчанин

    Ну вот ,здоово.Идем дальше::biggrin24.gif::
     
  6. Philin

    Philin Форумчанин

    Насчёт "в контуре" подумаю. А вот насчёт "в контурах"... пока слабо представляю как это организовать математически.
     
  7. Палыч

    Палыч Форумчанин

    Точнее в контуре строить или не строить горизонтали.
     
  8. Philin

    Philin Форумчанин

    С математикой более-менее разобрался (в уме). В любом случае это задача на будущее.
    Теперь надо разобраться какие могут быть варианты и как это предоставить для пользователя. Время есть.

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

    Палыч Форумчанин

    Я думаю что бкдет достаточно и в одном.Но наверно надо сделать такую функцию как создать контур,а уже в нем рисовать или нет горизлнтали. Просто на большом массиве сьемки не везде нужно отрисовка их(горизонталей)
     
  10. Philin

    Philin Форумчанин

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

    Палыч Форумчанин

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

    Philin Форумчанин

    Никакие не дали, просто смотрю как это выглядит с технической стороны :)

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

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

    Палыч Форумчанин

    Всегда.Потому что это просто линия ограничивающая обрабатываемую территорию.
     
  14. Philin

    Philin Форумчанин

    Что-то получилось с горизонталями... :)

    Программа с названием 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г.
     
    Последнее редактирование: 25 ноя 2013
  15. Палыч

    Палыч Форумчанин

    Работать с программой пока не пробовал ,но смотрел ролик. Сразу ввела в задумчивость установка максимальных расстояний для построения треугольников. Может лучше исходить из масштаба съемки.? И тогда по требованиям к топоплану для "чистого поля" пикеты должны находиться не реже чем через 2 см плана.Применяя к масштабу -длина линии будет разная, ну и с "советским запасом прочности" увеличить эту величину в 2 раза -например. И тогдо выбирая масштаб не нужно будет "бить в бубен " подбирая величины. Как - то так.Первые впечатления.::biggrin24.gif::
     
  16. добрый день Philin подскажите скачал вашу программку SOFT6 установил ее работает только выноска а все остальные нет выдается ошибка
    --- Сообщения объединены, 22 ноя 2013, Оригинальное время сообщения: 22 ноя 2013 ---
    добрый день Philin подскажите скачал вашу программку SOFT6 установил ее работает только выноска а все остальные нет выдается ошибка
    run-time '75'
    Path/File access orror
    что нужно сделать подскажите пожалуйста у меня акад 2011 Wind 7
    --- Сообщения объединены, 22 ноя 2013 ---
    я просто удалил автокад затем поставил делал все по инструкции но почему то не работает до это все программки работали сей час выдает ошибку если можно отпишитесь
     

    Вложения:

  17. Philin

    Philin Форумчанин

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

    :) Так в него и так не надо бить. Если мы сами делали съёмку, то шаг съёмки мы знаем.
     
  18. и еще по программке создания файлов координат примитивов чертежа выдается ошибка Run-taime '5' invalid procedure call or argument запускаю все от имени администратора подскажите пожалуйста Philin
     

    Вложения:

  19. Philin

    Philin Форумчанин

    Ошибка 75 скорее всего говорит о том, что Windows запрещает автокад запускать скрипты. Такое может происходить если автокад в Win7 или Win8 запускается с правами пользователя. Надо настроить запуск автокад от имени администратора и всё должно заработать.

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

    Палыч Форумчанин

    По масштабам думаю достаточно. По горизонталям - предварительно у Вас было каждая 4я горизонталь красная остальные синие, в ролике уже через одну.По правилам -каждая четная (четвертая::biggrin24.gif::) горизонталь утолщенная .Цвет роли не играет пока.При выпуске на печать или при передаче файла можно поменять.
    З.Ы. Может по этой программе отдельный топик сделать?
     
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление