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

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

Войти

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

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

  1. Philin

    Форумчанин

    Регистрация:
    1 фев 2008
    Сообщения:
    2.557
    Симпатии:
    2.084
    Адрес:
    Москва
    Новая версия программы aCAD2TXT ver.Beta2

    Добавлено создание SDR файла координат для приборов Sokkia с флешкой. Этот файл не обязательно будет распознаваться другими программами как SDR файл, он предусмотрен для заливки его на флешку, и тахеометр Sokkia с флешки примет этот файл как родной.
    Т.е. в этой версии автоматически создаются два файла координат: SDR, TXT.

    [​IMG]

    PS Программа удалена в связи с выходом новой версии.
     
    #221
  2. Philin

    Форумчанин

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

    Избегайте при черчении пересечение полилинией саму себя (см. скрин)
    [​IMG]

    PS В ближайшее время будет выложена новая версия программы с возможностью получения файла координат полилиний без смещения.
     
    #222
  3. Philin

    Форумчанин

    Регистрация:
    1 фев 2008
    Сообщения:
    2.557
    Симпатии:
    2.084
    Адрес:
    Москва
    Новая версия программы aCAD2TXT ver.Beta4

    Изменения:
    - теперь, если программа обнаружит полилинию, которая пересекает саму себя, то сбоя не будет. Программа отработает со всеми объектами корректно. Но не рекомендую чертить полилинии которые пересекают сами себя, нет полной гарантии, что с этой полилинией программа отработает правильно. Есть очень малая вероятность того, что пересекающуюся полилинию не получится правильно вынести.
    - начиная с этой версии программа чертит на чертеже объекты автокад по-другому. Ближайшее вам понятное определение этих объектов - "геоточки". В текущей версии программы это не имеет важного значения, но последующие версии будут брать данные из объектов, начерченных ранее программой, и восстанавливать утерянный файл координат по этим данным.
    - в связи с предыдущим пунктом... это значит, что даже если вы изменили положение текстов, точек, полилиний начерченных программой, то будущие версии программы всё равно смогут полностью восстановить первоначальный файл координат. Каталог координат подлежит восстановлению даже если вы создадите новый чертёж, скопируете все объекты со слоёв созданных программой, вставите их в новый чертёж в любую точку, развернёте на любой угол, отмасштабируете объекты... то всё равно программа сможет восстановить первоначальный файл координат.

    Выкладываю архив. Внутри архива программа и иконка программы для панели инструментов автокад.

    PS Программа удалена в связи с выходом новой версии
     
    #223
  4. geoandmar

    Форумчанин

    Регистрация:
    27 июн 2010
    Сообщения:
    42
    Симпатии:
    18
    Адрес:
    питер-москва
    пробовал aCAD2TXT запустить на 12 каде- выдал ошибку, хотя предыдущие программы работают. вид ошибки пришлю позже, на работе ставил
     
    #224
  5. Philin

    Форумчанин

    Регистрация:
    1 фев 2008
    Сообщения:
    2.557
    Симпатии:
    2.084
    Адрес:
    Москва
    Только что запустил и всё работает.
    Автокад 2012 Русский, версия программы Бета 4
    [​IMG]

    Если не работает, то вероятно причина проблемы в:
    - программа прописана на панель, но путь к программе или её название неверны (должно быть: ^C^C_-vbarun aCAD2TXT.dvb!aCAD2TXT.StartProgram )
    - программа правильно прописана на панель автокад, но вы забыли её поместить в папку Support текущей версии автокад
    - программа не прописана на кнопку, а запускается через редактор или диспетчер VBA или каким иным способом (это касается ТОЛЬКО Windows 7/8 и автокад версий с 2010 по 2014), тогда это нормально (автокад 2012 и 2013 называет эту ошибку "ошибка 5"). Система безопасности запрещает работу VBA-программы (которая создаёт файлы и использует напрямую систему) если её запускать не с кнопки, а любым другим способом. Программу надо прописать на кнопку на панели автокад, запускать только с этой кнопки... при этом автокад должен запускаться с правами администратора и никак иначе
    - ну и как последний вариант - не установлен VBA Enabler для автокад версии 2010-2014, но если другие программы работают, то дело не в нём
    - ещё, как вариант - попытка заменить файл программы при запущенном автокад может привести к ошибке. В этом случае и старый и новый файл станут одинаковыми, а вот какая версия получится.... 50х50, ведомо только странной логике разработчиков автокад
     
    #225
  6. geoandmar

    Форумчанин

    Регистрация:
    27 июн 2010
    Сообщения:
    42
    Симпатии:
    18
    Адрес:
    питер-москва
    спасибо за исчерпывающий ответ. буду разбираться.версия была бета2.
    последние 2 варианта , в моём случае, исключены.

    интересный момент- polskH- запускалась через запуск макроса, была прописана на кнопке, но лежала на флешке(не была прописана в вспомогательных файлах )
     
    #226
  7. Philin

    Форумчанин

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

    Форумчанин

    Регистрация:
    19 июл 2007
    Сообщения:
    1.557
    Симпатии:
    473
    Привет, классная программка AxePointZ. Однако на прикрепленном чертеже она строит стрелку смещения и задаёт его величину неправильно. В качестве линии выбираем красную полилинию, точка смещения - точка номер 902, вторая справа. Направление смещения указывается неверно, так же как и его абсолютная величина. Успехов :)
     

    Вложения:

    • Тест.dwg
      Размер файла:
      1,4 МБ
      Просмотров:
      14
    #228
  9. Philin

    Форумчанин

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

    [​IMG]

    PS Я бы назвал это фичей программы, но не багом ;) Вероятность обнаружить эту фичу стремится к нулю. Вам повезло ;)
    PPS Версия программы у вас старая. В новой версии значения отклонений выглядят уже не так.
    [​IMG]
     
    #229
  10. Philin

    Форумчанин

    Регистрация:
    1 фев 2008
    Сообщения:
    2.557
    Симпатии:
    2.084
    Адрес:
    Москва
    Новая версия программы IspoRand ver. 0.6 (программа для автоматического изменения значений отклонений в пределах указанных допусков)

    Изменение:
    - изменена логика работы генерируемых значений. Теперь они менее предсказуемы.

    [​IMG]

    PS Программа удалена в связи с её включением в общий пакет программ. Пакет программ можно скачать в первом сообщении текущей темы.
     
    #230
  11. Максим

    Форумчанин

    Регистрация:
    19 июл 2007
    Сообщения:
    1.557
    Симпатии:
    473
    Я скачивал последнюю версию, которая была на сайте, специально, чтобы проверить.
     
    #231
  12. Максим

    Форумчанин

    Регистрация:
    19 июл 2007
    Сообщения:
    1.557
    Симпатии:
    473
    Сегодня столкнулся со следующим довольно нередким явлением: программа стирает полилинию, от которой она должна строить отклонения. Попытайтесь нарисовать одно отклонение, после этого полилиния исчезнет.
     

    Вложения:

    • Тест -2.dwg
      Размер файла:
      1,4 МБ
      Просмотров:
      3
    #232
  13. Philin

    Форумчанин

    Регистрация:
    1 фев 2008
    Сообщения:
    2.557
    Симпатии:
    2.084
    Адрес:
    Москва
    Это не проблема, а невнимательность. Мои программы создают разные слои и работают в них, НО не надо в этих слоях пытаться что-то чертить!!! Создав слой, программа считает его своим и делает с ним что угодно. Может удалять, изменять, создавать на нём объекты, может даже удалить слой и создать заново. Эти слои НЕ ДЛЯ ЧЕРЧЕНИЯ в них пользователем!!! Эти слои ДЛЯ РАБОТЫ ПРОГРАММЫ!!!

    Ваша полилиния начерчена на слое созданном программой AxeAndPointZ, на этом слое она допускает нахождение только двух типов объектов: точки, текст.
    [​IMG]

    PS Программа AxeAndPointZ считает ВСЕ ПОЛИЛИНИИ на слое "***_Ц_ОТКЛОНЕНИЯ" МУСОРОМ и удаляет их автоматически при своём запуске.
    PPS Ни одна моя программа никогда и ни при каких условиях НЕ УДАЛЯЕТ И НЕ ИЗМЕНЯЕТ НИКАКИХ ОБЪЕКТОВ ПОЛЬЗОВАТЕЛЯ НА СЛОЯХ СОЗДАННЫХ ПОЛЬЗОВАТЕЛЕМ! Если удалился какой-то объект, то значит этот объект находится на слое, созданном программой!

    PS dwg файлы это хорошо, но в следующий раз можно их сохранять в какой-нибудь более старой версии автокад? (версии, не новее 2008) А то файл 1,5Мб, а в нём при этом всего 1 полилиния, 1 точка, 2 текста и 1 окружность. Я понимаю что у многих гигабитный интернет, процессоры i7, оперативы терабайт, винчестер на 100 терабайт, операционная система x64... Но как-то на нормальных версиях автокад этот файл занимал бы 10 килобайт и качался бы полсекунды даже на медленном модеме 64к.
     
    #233
  14. Максим

    Форумчанин

    Регистрация:
    19 июл 2007
    Сообщения:
    1.557
    Симпатии:
    473
    Возможно, Ваша программа аварийно зввершает работу при текущем служебном слое.
     
    #234
  15. Philin

    Форумчанин

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

    Что подразумевается под служебными слоями? Служебные слои автокад: 0 и defpoints? Или служебные слои программы?
    Программе абсолютно всё равно какой слой в данный момент активный рабочий.
    В последнем вашем чертеже будет сбой потому что вы начертили полилинию на рабочем слое программы. С этого слоя удаляются все лишние объекты и он не предусмотрен для черчения на нём. Вы указываете объект на том слое, а его там быть не может, и в итоге программа сбоит, т.к. не находит указанного объекта (она его удалила).

    Слой *Ц* вообще в программе нечто вроде буфера, она часто там что-то чертит и удаляет (сам автокад работает аналогично, создавая слой defpoints). Только во время работы на слое не может находиться ничего кроме точек и текста, всё остальное в любом случае будет удалено. Попытка скрывать или блокировать этот слой ни к чему не приведёт, он автоматически разблокируется и снимутся все до единого атрибуты. Он важен для нормальной работы программы. Чертить на этом слое тоже бесполезно, при запуске программы с этого слоя будут удалены все объекты кроме точек и текста.
     
    #235
  16. Максим

    Форумчанин

    Регистрация:
    19 июл 2007
    Сообщения:
    1.557
    Симпатии:
    473
    Семен, программа после запуска и окончания работы оставляет текущим слой *_Ц_ОТКЛОНЕНИЯ. Надо, чтобы она восстанавливала текущим тот слой, который был текущим до её запуска. А раз вы используете слой *_Ц_ОТКЛОНЕНИЯ как буфер, то лучше бы его удалять вообще, когда программа закончит работу.
     
    #236
  17. Philin

    Форумчанин

    Регистрация:
    1 фев 2008
    Сообщения:
    2.557
    Симпатии:
    2.084
    Адрес:
    Москва
    Держите AxeAndPointZ версии 4.4. Она оставляет текущим тот слой, который был до её запуска. НО предполагается что текущим слоем был рабочий слой со снятыми атрибутами, т.е. он: видимый, размороженный, разблокированный. Если это не так, то программа снимает все атрибуты с этого слоя и делает его: видимым, размороженным, разблокированным.

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

    PS Программа удалена в связи с её включением в общий пакет программ. Пакет программ можно скачать в первом сообщении текущей темы.
     
    #237
  18. Максим

    Форумчанин

    Регистрация:
    19 июл 2007
    Сообщения:
    1.557
    Симпатии:
    473
    Вот еще один пример неожиданного поведения программы.
     

    Вложения:

    #238
  19. Максим

    Форумчанин

    Регистрация:
    19 июл 2007
    Сообщения:
    1.557
    Симпатии:
    473
    И еще один.
     

    Вложения:

    #239
  20. Максим

    Форумчанин

    Регистрация:
    19 июл 2007
    Сообщения:
    1.557
    Симпатии:
    473
    Семен, просьба сделать слои с отклонениями толщиной линии 0.09, т.к. толстые по умолчанию (0.25) рамки вокруг букв загромождают чертеж.
     
    #240

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

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