(изменено: Сергей Климкин, 17 декабря 2009г. 12:58:20)

Тема: Программа Strelka10. Отклонения фактических точек от проектных.

Программа Strelka10. Отклонения фактических точек от проектных.
===============================================================
По просьбе коллег, работающих на монолите, переделал программу СТРЕЛКА.
Добавились возможности:
1. работа с миллиметровыми (архитектурными и конструкторскими) чертежами;
2. образмеривание отклонений в мм;
3. в некоторых (разумных) пределах - 10, 5, 2, 1, 0.5, 0.2, 0.1 - менять размеры стрелки и надписей;
4. для различения чисел 6 и 9 при разных углах поворота программа пишет из с точкой: 6. и 9.

Работа начинается с указания:
1) в каких единицах выполнен чертеж: метры (геодезмческие чертежи), мм (архитектурные и конструкторские),
2) в каких величинах выполнить измерения: см или мм.
3) Далее на вопрос в командной строке указать базовую линию: любые 2 точки (или строительную ось),
  относительно которой будут ориентированы (по углу) ординатные измерения/отклонения.
4) Указывать пары проекная/фактическая точка.

Стартовая функция программы Sub Main (в модуле Strelka10.dvb).

Работа протоколируется в *.txt файл и повторные сеансы могут в него дописываться.

Если место для выкладывания программы пропустит архив размером 160 кБ, то в архиве будет тест-пример DWG и протокол работы.
Сергей Климкин, sklimkin1950@yahoo.com
15-11-2009

P.S.
Выложил сегодня на  http://dwg.ru/dnl/ed7047
Через пару дней будет доступно для скачивания.

P.P.S.
17.12.2009г. Исправляю адресс ссылки для скачивания:
http://dwg.ru/dnl/7047

Сергей Климкин.

Re: Программа Strelka10. Отклонения фактических точек от проектных.

Как программу вызвать?

Re: Программа Strelka10. Отклонения фактических точек от проектных.

Всё разобрался:
Макросы VBA -> Выполнить

(изменено: Al_geor, 16 ноября 2009г. 09:48:56)

Re: Программа Strelka10. Отклонения фактических точек от проектных.

Выполнил в AutoCad 2008 RU.Работает.Пока замечаний нет.

Re: Программа Strelka10. Отклонения фактических точек от проектных.

Коллеги спрашивают: "А как запустить VBA-программу (макрос в терминах АутоКАДа) на исполнение?".
Придется повториться (я уже несколько раз излагал эту страшную тайну от АутоДеск):

9. Подробнее о запуске на исполнение VBA-программ и о настройке иконок в AutoCAD'е:
===================================================================================
Самый простой способ (но и самый нудный):
9а. Чтобы запустить ваши VBA-макросы:
* Запустите AutoCAD и откройте новый чертеж.
* Выберите Tools/Macro/Run Macro
* Выберите макрос из падающего окна (в этом окне надо найти местоположение файла макроса на диске).
* Выберите кнопку Run.

или так:
* Выберите Tools/Macro/Open VBA Project
* Выберите макрос из падающего окна (в этом окне надо найти местоположение файла макроса на диске).
* поставьте галочку-флажок "Open Visual Basic Editor"
* в окне VB-редактора выберите стартовую процедуру (Sub) и нажмите кнопку Run
В этом случае загружается и VBA-программа и VB-редактор. В этом режиме пишут/читают/редактируют/отлаживают VBA-программы.

9б. Посложнее (надо создать СВОЮ панельку меню и вставить в нее кнопочки):
Адрес "чисто конкретной" страницы, как это делается - http://vbamaker.narod.ru/index.html
Приведу ее текст, но страничка лучше, бо там с картинками.

~~~~~~~~~~~~~~
НАЧАЛО ЦИТАТЫ!
Создание кнопки для вызова макроса
Откройте диалоговоеокноCustomize(Настройка):View(Вид )> Toolbars(Панели инструментов) или щелкните (кликните) правой кнопкой мыши на любой панели инструментов, и в появившимся контекстном меню выберите Customize(Настройка).

Перейдите на вкладку Commands(Команды), в поле Categories (Категории) выберите All Commands (Все команды) или User Defined(Определенная пользователем). В окне справа выберите понравившуюся Вам кнопку и перетащите ее (не отпуская левой кнопки мыши) на экран или на любую существующую панель инструментов.
Можно, также, перейдя в том же диалоговом окне Customize (Настройка) на вкладку Toolbars(Панель инструментов), создать Новую панель инструментов(New Toolbar) с помощью кнопки New(Новая).

Макрос, связанный с кнопкой
Не закрывая диалоговое окно Customize(Настройка) щелкните (кликните) левой кнопкой мыши на созданной Вами кнопке, после чего вы должны очутится на вкладке Button Properties(Свойства кнопки).

В поле Name(Имя) задайте имя своей кнопки. В поле Description(Описание), можно задать пояснение, которое будет отображаться в строке состояния, когда курсор подведен к кнопке). В поле Macro associated with this button (Макрос связанный с этой кнопкой) должен быть записан текст для вызова макроса. Например:

^C^C-vbarun "C:/VBA Macro/MyMacro.dvb!Module1.Example"

Этот текст, по сути, сам является макросом, поэтому необходимо придерживаться определенных правил и использовать спецсимволы, при его написании. Здесь:
^C^C - Отменяет предыдущую команду.
-vbarun - Команда AutoCAD для запуска макроса
MyMacro.dvb!- Имя файла с расширением *.dvb (восклицательный знак обязателен)
Module1- Имя модуля проекта
Example- Имя процедуры
Обратите внимание, обратная косая черта “\” означает паузу в макросе, поэтому при указании пути к файлу нужно использовать косую черту ”/”. Кавычки необходимо ставить, если внутри имен есть пробелы.
Путь поиска файла поддержки
Если макрос поместить в папку Support(С:/Program Files/AutoCAD 200…/Support), то путь к файлу указывать не надо. Достаточно написать:

^C^C-vbarun MyMacro.dvb!Module1.Example

Также можно поместить макрос в любую другую папку, но при этом нужно указать путь поиска файла поддержки. Для этого необходимо:
Открыть диалоговое окно Options(Настройка): Tools(Инструменты)> Options(Настройка), или вызвать его при помощи контекстного меню, вызываемого по щелчку правой кнопкой мыши.

Перейти на вкладку Files(Файлы) и в поле Search paths, file names, and file locations(Пути Поиска, файловых имен, и размещения файлов) выберите Support File Search Path(Путь поиска файла поддержки). Дальше необходимо нажать кнопку Add(Добавить), затем с помощью кнопки Browse(Обзор) выбрать, интересующую Вас папку. Теперь, при написании текста макроса для кнопки, не нужно указывать путь к файлу.
Создание изображения для кнопки
Откройте диалоговое окно Customize(Настройка):View(Вид) > Toolbars(Панели инструментов) и передите на вкладку Button Properties(Свойства кнопки). С помощью щелчка мыши выберите кнопку на экране или на панели инструментов, для которой нужно изменить изображение. На той же вкладке Button Properties(Свойства кнопки), справа, в области Button Image (Пиктограмма) можно выбрать картинку, в списке с полосой прокрутки.
С помощью кнопки Edit(Редактировать) открывается окно Button Editor(Редактор кнопки).

Здесь можно изменить изображение кнопки.Так же с помощью кнопки Open(Открыть) можно найти на жестком диске и открыть существующее изображение с расширением *.bmp , для последующего редактирования и сохранения.
КОНЕЦ ЦИТАТЫ!

В цитате я намеренно пропустил кусок под заголовком "Автоматическая загрузка макроса", на мой взгляд это коварный путь.

Если пользоваться VBA-программами приходится часто, то лучше один раз обустроить дополнительную панельку меню.
Конечно удобнее поместить и VBA-программы и иконки в каталог .\Support, или .\Express - они прописаны в путях поиска А-Када.
Командная строка для иконки (в ее свойствах, когда поместите иконку в любую панельку меню АвтоКАДа) такая:
^C^C_-vbarun c:\\temp\\VBA_Work\\DrawSurface_1.dvb!Module1.DrawSurface
Это для ЛЮБОГО местоположения VBA-файла,
а для путей AutoCAD .\Support, или .\Express строка короче: ^C^C_-vbarun DrawSurface_1.dvb!Module1.DrawSurface

Если знаете как ввести текст в командную строку A-CAD, тогда так:
Command: (command "_-vbarun" "c:\\temp\\VBA_Work\\DrawSurface_1.dvb!Module1.DrawSurface")

Примечание:
Вместо temp и VBA_Work пропишите СВОЙ путь к реальному месту файла DrawSurface_1.dvb или ExportACADtoCREDO.dvb

Для выгрузки приложения VBA строка в свойствах иконки UnloadVBA.BMP такая: ^C^C_VBAMAN
(Эта иконка не связана ни с какой программой, но по ее свойствам вызывается функция-диалог AutoCADа).
Появляется диалог VBA-менеджера, где указываете какое приложение выгрузить и жмете кнопку UNLOAD.
По другому пока не знаю.

9в. АЛЬТЕРНАТИВНЫЙ МЕТОД: Настройка своей панели инструментов в АутоКАД'е:
==========================================================================
В ACAD2000 под Windows98 моя панелька инструментов выглядит так:
В файле C:\Program Files\ACAD2000\Support\acad.mns вставить строки:

**GEOD_SNK
ID_Geod_SNK_0 [_Toolbar("Geod_SNK", _Left, _Show, 0, 2, 1)]
ID_UserButton_0 [_Button("Draw_Surface", "RCDA.bmp", "RCDATA_16_SELADD")]^C^C-vbarun DrawSurface_1.dvb!Module1.DrawSurface
ID_UserButton_1 [_Button("ExportACADtoCREDO", "RCDA1352.bmp", "RCDATA_16_BLANK")]^C^C-vbarun ExportACADtoCREDO.dvb!Module1.ExportACADtoCREDO
ID_UserButton_2 [_Button("Strelka9", "RCDA5184.bmp", "RCDATA_16_BLANK")]^C^C-vbarun Strelka9.dvb!Module1.PlineCalc
ID_UserButton_3 [_Button("Axe_and_Points", "ICON.bmp", "RCDATA_16_BLANK")]^C^C-vbarun Axe&Points_1.dvb!Module1.AxeAndPoints
ID_UserButton_4 [_Button("Zasechka2", "ICON5724.bmp", "RCDATA_16_BLANK")]^C^C-vbarun Zasechka2-2.dvb!Module1.Main
ID_UserButton_5 [_Button("Export-SDR", "RCDA5061.bmp", "RCDATA_16_BLANK")]^C^C-vbarun Export-SDR.dvb!Module1.Main
ID_UserButton_6 [_Button("Otkos_3d", "Otkos_2.bmp", "RCDATA_16_BLANK")]^C^C-vbarun Otkos_3d.dvb!Module1.Offset3dPoly
ID_UserButton_7 [_Button("Road1", "RCDA5200.bmp", "RCDATA_16_BLANK")]^C^C-vbarun Road1.dvb!Module1.Main
ID_UserButton_8 [_Button("Unload_VBA", "RCDA5062.bmp", "RCDATA_16_BLANK")]^C^C_vbaman

Здесь прописаны строки моих VBA-программ с их иконками-кнопками и кнопка выгрузки VBA-программ (она состоит только из команды).

Вставлять их надо непосредственно перед строками:
***IMAGE
**IMAGE_3DOBJECTS

В ACAD2005 под Windows_XP это выглядит примерно так:
C:\Documents and Settings\Администратор\Application Data\Autodesk\Autodesk Land Desktop 2005\R16.1\enu\Support\acad.mns

**GEOD_SNK
ID_Geod_SNK_0 [_Toolbar("Geod_SNK", _Left, _Show, 0, 2, 1)]
ID_UserButton_0 [_Button("Draw_Surface", "RCDA.bmp", "RCDATA_16_SELADD")]^C^C-vbarun DrawSurface_1.dvb!Module1.DrawSurface
ID_UserButton_1 [_Button("ExportACADtoCREDO", "RCDA1352.bmp", "RCDATA_16_BLANK")]^C^C-vbarun ExportACADtoCREDO.dvb!Module1.ExportACADtoCREDO
ID_UserButton_2 [_Button("Strelka9", "RCDA5184.bmp", "RCDATA_16_BLANK")]^C^C-vbarun Strelka9.dvb!Module1.PlineCalc
ID_UserButton_3 [_Button("Axe_and_Points", "ICON.bmp", "RCDATA_16_BLANK")]^C^C-vbarun Axe&Points_1.dvb!Module1.AxeAndPoints
ID_UserButton_4 [_Button("Zasechka2", "ICON5724.bmp", "RCDATA_16_BLANK")]^C^C-vbarun Zasechka2-2.dvb!Module1.Main
ID_UserButton_5 [_Button("Export-SDR", "RCDA5061.bmp", "RCDATA_16_BLANK")]^C^C-vbarun Export-SDR.dvb!Module1.Main
ID_UserButton_6 [_Button("Otkos_3d", "Otkos_2.bmp", "RCDATA_16_BLANK")]^C^C-vbarun Otkos_3d.dvb!Module1.Offset3dPoly
ID_UserButton_7 [_Button("Road1", "RCDA5200.bmp", "RCDATA_16_BLANK")]^C^C-vbarun Road1.dvb!Module1.Main
ID_UserButton_8 [_Button("Unload_VBA", "RCDA5062.bmp", "RCDATA_16_BLANK")]^C^C_vbaman

***IMAGE
**IMAGE_3DOBJECTS

Файлы программ *.dvb и файлы иконок-кнопочек *.bmp надо поместить в папку \Support (можно также в папку Express).
Тогда, открыв АутоКАД надо войти в настройку панелей меню и поставить галочку на панельке GEOD_SNK для ее активизации.
Эту панельку поместить куда удобно. Тогда при каждом запуске АутоКАД'а будет видна панелька этих пользовательских инструментов.
Имя панельки конечно надо назвать по своему вкусу (не "Geod_SNK" а как-нибудь "GeodeticBuilding" или еще круче).
Имя в пути к файлу acad.mns в Windows_XP \Autodesk\Autodesk Land Desktop 2005\ скорее всего окажется \Autodesk\ACAD2005\

Этому тексту 2 или 3 года. Скопировал и вставил.
смотри также: https://www.caduser.ru/forum/topic22747.html
Прошу прощения за "МНОГО БУКВ" - короче будет, если читать учебники.

Сергей Климкин.

(изменено: Сергей Климкин, 28 января 2012г. 01:40:08)

Re: Программа Strelka10. Отклонения фактических точек от проектных.

Вариант программы Стрелка, написанный на VB (не VBA) - т.е. независимо от присутствия/отсутствия в КАДе бейсика (VBA). Сначала загружается А-КАД 2005 или 2007 и необходимый для работы чертеж.
Затем один из STRELKA2005.exe или STRELKA2007.exe и далее делается все то же, что и в Strelka10.dvb.
Отличие от *.dvb в том, что не требуется в КАДЕ манипуляций в меню с макросами и программа может находиться в любом месте на компьютере (например на рабочем столе).
Проблема лишь в том, что под каждую версию КАДа надо компилировать программу отдельно, имея эту версию на компьютере.

Файл Strelka-exe_2.zip - 50kB - лежит по адресу:
http://www.mediafire.com/?tqvgfklotgy8byu