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

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

Войти

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

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

  1. Philin

    Форумчанин

    Регистрация:
    1 фев 2008
    Сообщения:
    2.557
    Симпатии:
    2.084
    Адрес:
    Москва
    pashich_y, я подумаю над этим... Но скорого решения проблемы не ожидайте. Была бы в наличии эта операционная система - решил бы быстро...
     
    #101
  2. Андрей Р.

    Форумчанин

    Регистрация:
    24 июл 2008
    Сообщения:
    4.004
    Симпатии:
    932
    Адрес:
    Калуга - Владивосток.
    to, Philin прошу помощи. Ставлю программу не 2004, создал новую панельку "геодезия", но никак не могу найти места где ее редактировать, и создавать кнопки. Всю голову уже сломал... ::sad24.gif:: Вот какая панелька открывается у меня...
     

    Вложения:

    #102
  3. Philin

    Форумчанин

    Регистрация:
    1 фев 2008
    Сообщения:
    2.557
    Симпатии:
    2.084
    Адрес:
    Москва
    Вам подойдёт инструкция по установке для автокад 2005 (она есть в pdf инструкции).

    Действия следующие:

    - Автокад при выполнении нижеуказанных действий НЕ ДОЛЖЕН быть запущен!

    - находим файл меню автокад. Он находится примерно по следующему пути C:\Documents and Settings\Администратор\Application Data\Autodesk\AutoCAD2004\R16.1\enu\Support\acad.mns (выделенные цветом участки пути к файлу меню могут отличаться для вашей версии и локализации автокад, а также от пользователя от имени которого установлен автокад). Красным выделено имя файла-меню автокад (оно неизменно, можно воспользоваться поиском файлов и папок автокад).

    - открываем этот файл в текстовом редакторе (стандартный блокнот Windows подойдёт)

    - находим в файле строки:
    ***IMAGE
    **IMAGE_3DOBJECTS
    и непосредственно ПЕРЕД ними пишем (добавляем) следующие строки:

    **Geodesy
    ID_Geodesy_0 [_Toolbar("Геодезия", _Floating, _Show, 0, 2, 1)]
    ID_UserButton_0 [_Button("Плановая_исполнительная", "AxeAndPointZ.bmp", "RCDATA_16_SELADD")]^C^C_-vbarun
    AxeAndPointZ.dvb!AxeAndPointZ.StartProgram
    ID_UserButton_1 [_Button("Высотная_исполнительная", "PloskH.bmp", "RCDATA_16_BLANK")]^C^C_-vbarun
    PloskH.dvb!PloskH.StartProgram
    ID_UserButton_2 [_Button("Высотная_по_пандусу", "PloskHi.bmp", "RCDATA_16_BLANK")]^C^C_-vbarun
    PloskHi.dvb!PloskHi.StartProgram
    ID_UserButton_3 [_Button("Выноска", "Vinoska.bmp", "RCDATA_16_BLANK")]^C^C_-vbarun
    Vinoska.dvb!Vinoska.StartProgram
    ID_UserButton_4 [_Button("Прием_данных", "Vinoska.bmp", "RCDATA_16_BLANK")]^C^C_-vbarun
    COM2ACAD.dvb!COM2ACAD.StartProgram

    - в итоге в файле меню должно получиться следующее:

    **Geodesy
    ID_Geodesy_0 [_Toolbar("Геодезия", _Floating, _Show, 0, 2, 1)]
    ID_UserButton_0 [_Button("Плановая_исполнительная", "AxeAndPointZ.bmp", "RCDATA_16_SELADD")]^C^C_-vbarun
    AxeAndPointZ.dvb!AxeAndPointZ.StartProgram
    ID_UserButton_1 [_Button("Высотная_исполнительная", "PloskH.bmp", "RCDATA_16_BLANK")]^C^C_-vbarun
    PloskH.dvb!PloskH.StartProgram
    ID_UserButton_2 [_Button("Высотная_по_пандусу", "PloskHi.bmp", "RCDATA_16_BLANK")]^C^C_-vbarun
    PloskHi.dvb!PloskHi.StartProgram
    ID_UserButton_3 [_Button("Выноска", "Vinoska.bmp", "RCDATA_16_BLANK")]^C^C_-vbarun
    Vinoska.dvb!Vinoska.StartProgram
    ID_UserButton_4 [_Button("Прием_данных", "Vinoska.bmp", "RCDATA_16_BLANK")]^C^C_-vbarun
    COM2ACAD.dvb!COM2ACAD.StartProgram

    ***IMAGE
    **IMAGE_3DOBJECTS

    - сохраняем изменённый файл-меню и после этого запускаем автокад


    PS В принципе тут ничего сложного нет. Добавленные нами первые две строки описывают название и параметры новой панели инструментов. Следующие строки описывают каждую кнопку панели (от 0 до 4). Для каждой кнопки указывается её название, присвоенная ей картинка bmp, параметры, скрипт-команда вызова VBA программы.
    PPS В автокад версий с 2000 по 2005 я делал именно так. Можно это всё сделать и из самого автокад, но не задумывался как это там реализовано (вручную добавить строки в файл гораздо быстрее). А вот для версий 2006 и более новых приходится делать из автокад т.к. файлы меню я не нашёл в удобочитаемом виде, похоже они пожаты чем-то и не рассчитаны на изменения вручную.
     
    #103
  4. Андрей Р.

    Форумчанин

    Регистрация:
    24 июл 2008
    Сообщения:
    4.004
    Симпатии:
    932
    Адрес:
    Калуга - Владивосток.
    Говорили же мне читай до конца... :) А то я уперся в проблему и бросил... ::sad24.gif:: Спасибо буду разбираться!!! ::smile24.gif::
     
    #104
  5. Андрей Р.

    Форумчанин

    Регистрация:
    24 июл 2008
    Сообщения:
    4.004
    Симпатии:
    932
    Адрес:
    Калуга - Владивосток.
    Снова проблема с настройкой, на этот раз все честно дочитал до конца...
    Все добавил кнопочки появились и радуют глаз, но при нажатие на любую вылезает запрос "macro name:" курсор приобретает форму креста, при вводе какой либо цифры говорит "Macro not found." буквы "Execution error". Из мануала я понял, что ошибка скорее всего в это месте
    Но я чего уже только не перепробовал, и «-», и «_» и «_-», во втором случае только изменилось, вылезло окно выбора макроса.
    to, Philin Может поможете еще разочек. мне неразумному...
     

    Вложения:

    #105
  6. Philin

    Форумчанин

    Регистрация:
    1 фев 2008
    Сообщения:
    2.557
    Симпатии:
    2.084
    Адрес:
    Москва
    Специально для этого установил Автокад 2004 Английскую версию. Операционная система Windows XP SP3 Rus.

    Теперь устанавливаю программы.

    Мои действия:

    1. Нахожу папку Support в месте установки автокад. У меня он установился в "C:\Program Files\AutoCAD 2004\Support"
    [​IMG]

    2. Копирую туда все файлы программ и иконок к ним.
    [​IMG]

    3. Нахожу файл-меню автокад 2004. У меня он находится по пути "C:\Documents and Settings\Simeon\Application Data\Autodesk\AutoCAD 2004\R16.0\enu\Support"
    [​IMG]

    4. Редактирую (добавляю строки) файл-меню автокад. ВНИМАНИЕ!!!!! Строки форум обрезает и надо чтобы у вас строки для кнопок были одной строкой для каждой кнопки!!!! Т.е. после ^C^C_-vbarun должен быть пробел и сразу за ним скрипт загрузки VBA-программы!!! Как видно из примера, я применил «_-» и такой способ сработал в Английской версии автокад 2004, по идее он универсален и должен сработать также и в Русской версии.
    [​IMG]

    5. Всё работает без проблем.. Запустил с кнопки программу "выноска"
    [​IMG]

    PS Иконки для COM2ACAD пока нет и вместо неё я применил иконку для программы Выноска.

    PPS
    Ошибка возникает из-за того что после команды автокад не видит скрипта для запуска программы. В вашем случае это возникает из-за того что вы скопировали строки из форума, а он вместо пробела установил CrLf (возврат каретки и перевод строки, что заменяет на клавиатуре клавишу Enter). Сделайте строки полными (уберите перевод строки и верните пробел после ^C^C_-vbarun... И всё у вас заработает.)

    Спасибо Вам за то, что столкнувшись с проблемой, не бросили всё на полпути, а обратились за помощью к тому кто может её предоставить. Я отлично понимаю что пользователь не обязан быть программистом и знать тонкости работы программ и операционных систем. Ответы на ваши вопросы я в ближайшее время оформлю и добавлю в инструкцию. Надеюсь что это облегчит установку программ для следующих пользователей.
     
    #106
  7. Андрей Р.

    Форумчанин

    Регистрация:
    24 июл 2008
    Сообщения:
    4.004
    Симпатии:
    932
    Адрес:
    Калуга - Владивосток.
    Ура заработало!!! ::smile24.gif:: ::smile24.gif:: ::smile24.gif::
    Philin [big]ОГРОМНОЕ СПАСИБО!!![/big]
    Да все дело было в возврате каретки!
    Буду разбираться!!! ::-ph34r.gif::
     
    #107
  8. Philin

    Форумчанин

    Регистрация:
    1 фев 2008
    Сообщения:
    2.557
    Симпатии:
    2.084
    Адрес:
    Москва
    Выкладываю обновлённую инструкцию для программ в формате PDF. В ней подробно описан способ установки VBA-программ для Автокад версий 2000-2005. Других изменений нет.

    PS Инструкция удалена в связи с тем, что она устарела. Новую инструкцию можно скачать вместе с пакетом программ из первого сообщения текущей темы форума.
     
    #108
  9. Андрей Р.

    Форумчанин

    Регистрация:
    24 июл 2008
    Сообщения:
    4.004
    Симпатии:
    932
    Адрес:
    Калуга - Владивосток.
    Хорошая программа, реально порадовала! Хорошо устроена работа с окружностями, правда элипс программа не поняла. ::smile24.gif:: Особенно порадовала высотная исполнительная, обычно такой гемор все в ручную вычитать, и подписывать, а тут все автоматом!!! ::smile24.gif:: Так и не разобрался с высотной по пандусу, но как говорится всему свое время!
    А можно еще в программу встроить функцию экспорта-импорта координат, что-бы каталоги для разбивки делать? Не я не наглею это я так спрашиваю... ::smile24.gif:: ::smile24.gif:: ::smile24.gif::
     
    #109
  10. Philin

    Форумчанин

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

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

    Импорт из файлов координат Sokkia SDR33 встроен в программу COM2ACAD. Хотя изначально я не рассчитывал на работу программы с файлами (она затачивалась под прямую кабельную передачу автокад<-->тахеометр). Экспорт точек из автокад напрямую в тахеометр, с одновременным созданием каталога координат в файле, планирую реализовать в этой же программе (кнопка там есть, но пока заблокирована т.к. код написан только на треть). Программа работает в операционных системах Windows от 95 до XP.
     
    #110
  11. Philin

    Форумчанин

    Регистрация:
    1 фев 2008
    Сообщения:
    2.557
    Симпатии:
    2.084
    Адрес:
    Москва
    Новая версия программы COM2ACAD 0,6 Бета

    Что нового:
    - исправлены ошибки чтения из файла настроек
    - добавлен COM порт 43
    - в сильно тестовом режиме добавлена поддержка формата данных Trimble M5

    За работу с приборами передающими в формате M5 не отвечаю. Пока это предварительные наброски и при попытке приёма могут быть любые последствия вплоть до закрытия автокад во время приёма данных (БЕЗ сохранения изменений в открытых рабочих чертежах). Прежде чем пытаться передавать с прибора в M5 формате... рекомендую закрыть ВСЕ запущенные программы, а также открыть в автокаде КОПИЮ рабочего чертежа (от греха подальше, вдруг испортится оригинал). Если с первого раза всё будет работать, то в дальнейшем можете спокойно принимать данные в формате M5 в автокад. Если работает, то скажите мне об этом.

    PS Как закончу с Trimble M5 Форматом, так сразу же приступаю к Nikon формату данных.
    PPS Программа удалена в связи с выходом новой версии.
     
    #111
  12. Дмитрин

    Форумчанин

    Регистрация:
    5 ноя 2010
    Сообщения:
    77
    Симпатии:
    4
    Philin Cпасибо большое за программы ::wink24.gif::
    Только в программе AxeAndPointZ хотелось бы что бы была еще привязка "центр" окружности.
     
    #112
  13. Philin

    Форумчанин

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

    Можно поинтересоваться какой у Вас прибор? А то может быть и привязку делать не потребуется.

    Я так понимаю что привязка нужна потому что точки в автокад передаются через какую-то стороннюю программу, программа вместо точек (point, node, узел) отрисовывает окружности.
    Какой программой пользуетесь для передачи?
     
    #113
  14. Дмитрин

    Форумчанин

    Регистрация:
    5 ноя 2010
    Сообщения:
    77
    Симпатии:
    4
    Я пользуюсь этой программой, т.к. у меня тахеометр Sokkia 550RX, там есть возможность скидывать данные с флешки. Но в этой программе отрисовывает круг, только поэтому нужна привязка. А кабеля не было в комплекте.
     
    #114
  15. Philin

    Форумчанин

    Регистрация:
    1 фев 2008
    Сообщения:
    2.557
    Симпатии:
    2.084
    Адрес:
    Москва
    А чем COM2ACAD не устраивает? Он тоже может читать данные из тахеометра через кабель, либо считывать данные с флешки SokkiaRX (читает файлы только в формате Sokkia, для других приборов только передача по кабелю из прибора в активный чертёж автокад). И ставит эта программа именно точки т.к. заточена под другие мои программы.
     
    #115
  16. BearDyugin

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

    Регистрация:
    30 ноя 2007
    Сообщения:
    2.761
    Симпатии:
    2.518
    Адрес:
    Сибирь
    На самом деле там не только круг, для построения по координатам доступны так же: точки, блоки, 2D и 3D полилинии. Нужный тип объекта можно выбрать из списка "Пикет"
     

    Вложения:

    • Geo_import.jpg
      Geo_import.jpg
      Размер файла:
      47,1 КБ
      Просмотров:
      377
    #116
  17. Дмитрин

    Форумчанин

    Регистрация:
    5 ноя 2010
    Сообщения:
    77
    Симпатии:
    4
    Disney Спасибо большое за программу, очень полезная, я выбирал точки, но меня тогда смутило что они очень маленькие и их будет трудно найти ::smile24.gif::, теперь всё ок!

    COM2ACAD 0,6 Бета - тоже хорошая программа, но там почему то при считывании разных .sdr возникают некоторые ошибки, так у меня из файла где 128 точень считалось только 16... некоторые файлы всё же грузятся правильно.
    P.S. Автокад следует загружать в режиме администратора что б запустить эту программу.
    AutoCaD2009, ОС Windows 7 Ultimate x86 Russian.
     
    #117
  18. Philin

    Форумчанин

    Регистрация:
    1 фев 2008
    Сообщения:
    2.557
    Симпатии:
    2.084
    Адрес:
    Москва
    А вот в таких случаях желательно передавать мне такие файлы. Уже второй человек это говорит, но не видя ваших файлов с данными я не могу понять в чём дело. У меня принимаются 100% всех точек съёмки и ни разу не было такого что какие-то точки не были приняты. Смоделировать ситуацию когда точки не принимаются у меня не вышло.
    (Добавление)
    Хорошо когда к дискуссии присоединяется разработчик программы. Получается что добавлять центр окружности не надо т.к., при желании, точки съёмки могут отображаться в виде точек.

    Центр окружности не хотелось бы вводить. Я проверял программу в таком режиме, если объект съёмки имеет много окружностей, то такая привязка начинает мешать при отрисовке съёмки т.к. курсор прилипает к центру окружности, если оказывается ближе к дуге окружности чем к точке съёмки.
     
    #118
  19. Мельник

    Форумчанин

    Регистрация:
    19 мар 2012
    Сообщения:
    41
    Симпатии:
    0
    Philin, подскажите когда планируете закончить программу для тахеметрв Trimble?
     
    #119
  20. Philin

    Форумчанин

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

    Поясню на примере.
    Представьте, что вы 5 лет занимались ремонтом и обслуживанием автомобилей определённой марки. Знаете каждую гайку и болт и с закрытыми глазами можете разобрать/собрать автомобиль. Потом вы пару лет не видели в глаза этих автомобилей и решили написать книгу по ремонту и обслуживанию авто НЕ ИМЕЯ ДОСТУПА к этим авто. В итоге можете упустить какую-то мелочь в описании и читатель книги не сможет снять какую-то деталь из-за одной единственной не открученной гайки.

    Вот здесь примерно тоже самое. С приборами работал, очень долго работал. Знаю досконально формат данных M5 и как происходит связь у Trimble. Но без доступа к приборам написание работающей программы маловероятно.

    Мне нужна обратная связь или другим языком - бета тестер. Это человек с доступом к таким приборам и готовый проверять работоспособность программы и указывать на ошибки и недочёты. В противном случае работа бессмысленна.

    С бета-тестером программа может быть закончена через неделю, а без него... может через год, а может быть через 5 лет (когда получу доступ к таким приборам) что-то получится (90% уже написано, остальное лень писать т.к. похоже, что никому это не нужно, а попусту тратить своё время глупо).
     
    #120

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

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