Автоматизация расчетов на VBA

Обсуждение софта, программ, постпроцессоров...

Модератор: life

Ответить
Аватара пользователя
TK-15
Станкостроитель
Станкостроитель
Сообщения: 123
Зарегистрирован: 22 сен 2010, 00:00
Откуда: Москва
Контактная информация:

Автоматизация расчетов на VBA

Сообщение TK-15 »

Выложил небольшой пример http://cncfiles.su/download.php?id=1326 расчета частоты UART для AVR. Вобщем ничего ценного, но для запуска программы не нужно компилятора - достаточно чтобы на компе был установлен MSOffice. Програмку легко переделать под другие расчеты, т.е. можно использовать как шаблон.

Для работы нужно открыть документ Word - далее Сервис->Макрос->Редактор Visual Basic. В меню File выбираем Import и загружаем файл . Вроде все :)

Должно получиться примерно так: http://cncfiles.su/photo/6455.jpg
Последний раз редактировалось TK-15 06 окт 2010, 10:13, всего редактировалось 1 раз.
Аватара пользователя
TK-15
Станкостроитель
Станкостроитель
Сообщения: 123
Зарегистрирован: 22 сен 2010, 00:00
Откуда: Москва
Контактная информация:

Сообщение TK-15 »

Более 70 - просмотров, 12 - скачиваний и 0 - "гневных замечаний" :ggg: даже непонятно хочет кто-нибудь разобраться с встроенным бейсиком или качали чтоб заполнить место на винте ... мдааааа
Dj_smart
Смотрящий
Сообщения: 7565
Зарегистрирован: 28 авг 2009, 00:00
Имя: Юрий
Откуда: Украина. Межевая.

Сообщение Dj_smart »

Любопытство - не порок:).
Глаза боятся, а руки делают!
Хостинг по CNC http://cncfiles.su/
Аватара пользователя
TK-15
Станкостроитель
Станкостроитель
Сообщения: 123
Зарегистрирован: 22 сен 2010, 00:00
Откуда: Москва
Контактная информация:

Сообщение TK-15 »

2 Dj_smart
Любопытство - не порок :).
Я бы сказал любопытство - начало всех дел :) , вот только плохо, когда оно так и остается всего-лишь любопытством и не вызывает желания научится чему-нибудь.

Ну что-же - попытка №2 :ggg:

http://cncfiles.su/download.php?id=1332

http://cncfiles.su/photo/6469.jpg
aegis
Станкостроитель
Станкостроитель
Сообщения: 1696
Зарегистрирован: 05 сен 2010, 00:00
Имя: Михаил
Откуда: Конотоп=>Запорожье=> Харьков, Украина
Контактная информация:

Сообщение aegis »

TK-15, хмм. чет не вышло с экспортом... по идее импортировать надо прожку. но всеравно не вышло.
в свое время я умудрялся писать прогу-расчетчик на экселе. был у нас курсач "расчет на прочность кессона крыла большого удлинения" 1 раз пришлось формулы понабирать и попотеть. зато потом за пиво уходили готовые расчеты (страниц 5 вроде как получалось печатного текста). надо было знать только исходные данные и дважды статически неопределенная задача решалась быстро. даже проверку проходила и эпюры в полуавтоматическом режиме строила
Аватара пользователя
TK-15
Станкостроитель
Станкостроитель
Сообщения: 123
Зарегистрирован: 22 сен 2010, 00:00
Откуда: Москва
Контактная информация:

Сообщение TK-15 »

2 aegis
да - конечно же импорт ( малость ошибся :sorry: ) у меня стоит Office 2003, хотя по-идее должно работать и на Office97 и на самых новых.
Что там может не выйти неясно - посмотри лог-файл, он создается при проблеме с загрузкой. (*.frm - текстовый файл можно открыть и в обычном блокноте, ну а форму можно и по картинке набросать )
З.Ы Для "эстетов" - кому надо точность расчетов выше поставьте больше цыфирь после запятой у числа PI и будет вам счастье :)
Dj_smart
Смотрящий
Сообщения: 7565
Зарегистрирован: 28 авг 2009, 00:00
Имя: Юрий
Откуда: Украина. Межевая.

Сообщение Dj_smart »

Для "эстетов" - кому надо точность расчетов выше
Для "практиков"- считаем только то, что можно реально использовать. Даст мне прога расчётный размер чего-то 6.34521. А у меня только напильник! И?
Это так, мысли походя:).
Глаза боятся, а руки делают!
Хостинг по CNC http://cncfiles.su/
Аватара пользователя
TK-15
Станкостроитель
Станкостроитель
Сообщения: 123
Зарегистрирован: 22 сен 2010, 00:00
Откуда: Москва
Контактная информация:

Сообщение TK-15 »

Если кто-нибудь из "практиков" изменит программу так, что бы она выдавала лучший результат и продолжала нормально работать, то он очевидно в ней разобрался. Собссно для этого все и затевалось :)
Иначе это просто "Плюшкин с избытком места на винте" . Ну а с хоббийной точностью все ясно - просто всегда лучше иметь альтернативу и получить результат самому (комп то сейчас не проблема)
А у меня только напильник
  Не в тему:   ага - а я папа Римский :ggg: хорош прибедняться :)
Dj_smart
Смотрящий
Сообщения: 7565
Зарегистрирован: 28 авг 2009, 00:00
Имя: Юрий
Откуда: Украина. Межевая.

Сообщение Dj_smart »

Да я что, грю же, просто мысль проскочила... :king:
Глаза боятся, а руки делают!
Хостинг по CNC http://cncfiles.su/
Dj_smart
Смотрящий
Сообщения: 7565
Зарегистрирован: 28 авг 2009, 00:00
Имя: Юрий
Откуда: Украина. Межевая.

Сообщение Dj_smart »

Открыл тему говоришь... Ну вот
Показать/Спрятать
If IsSuchSignal (22) Then
Code "G49"
Fixture_Num = GetOEMDRO(46)
Call SetOEMDRO (46, 202) 'Set to fixture number 202

Tool_Number = GetDRO(24)
code "G91 g31 z-20. f100."
While IsMoving()
Wend

If Tool_Number = 0 Then 'Master tool Cal
z = GetOEMDRO(85) 'get Machine ZPos
Call SetOEMDRO(49,z) 'Set fixture offset
Else

Call SetDRO(24,0) 'Turn off the tool offset by loading tool #0
Height = GetDRO(2) 'Get the pos of the Z axis without the Tool comp on
Call SetDRO(24,Tool_Number) 'Turn the tool Back on so the offset will go to the
Call SetoemDRO(42,Height) 'Set the Tool Height offset
End If

Call SetOEMDRO(46,Fixture_Num) 'Set the Fixture back to what it was

code "G0 G90 G53 Z0.0"
While IsMoving()
Wend
End If
Это скрипт поиска ноля по Z в маче. Комменты по русски можно? Я всунул в переводчик...И чуть со стула не упал :ggg:
Глаза боятся, а руки делают!
Хостинг по CNC http://cncfiles.su/
Аватара пользователя
TK-15
Станкостроитель
Станкостроитель
Сообщения: 123
Зарегистрирован: 22 сен 2010, 00:00
Откуда: Москва
Контактная информация:

Сообщение TK-15 »

Ну как бы это по-понятней объяснить.
Программка пользует внутренний API Macha. Хотя и не разбирался еще с G-кодами и тем более с API Macha

While IsMoving()
Wend
- эти строчки ясно и так - ждут пока отработает перемещение
остается разобраться и понять параметры функций
GetOEMDRO - получение позиции
SetOEMDRO - установка позиции
и аналогичных

вроде здесь что-то есть http://syil.hu/downloads/usingmach3turn.pdf вобщем поищу справку по параметрам функций
на первый взгляд API Macha похоже на "винигрет" из VBA и G-кодов :)
Аватара пользователя
TK-15
Станкостроитель
Станкостроитель
Сообщения: 123
Зарегистрирован: 22 сен 2010, 00:00
Откуда: Москва
Контактная информация:

Сообщение TK-15 »

все - нашел доку http://www.machsupport.com/docs/Mach3_V ... og_Ref.pdf
  Не в тему:    теперь доделаю свой агрегат и замучаю Mach :ggg:
Dj_smart
Смотрящий
Сообщения: 7565
Зарегистрирован: 28 авг 2009, 00:00
Имя: Юрий
Откуда: Украина. Межевая.

Сообщение Dj_smart »

теперь доделаю свой агрегат и замучаю Mach
Ага. А можно это "гестапо" показательно провести? С коментами?
С бейсиком ещё на радио86РК возился, общие понятия есть... Было бы интересно. Типа накидать что-то конкретно под свой станок, примочки всякие:).
Глаза боятся, а руки делают!
Хостинг по CNC http://cncfiles.su/
Аватара пользователя
TK-15
Станкостроитель
Станкостроитель
Сообщения: 123
Зарегистрирован: 22 сен 2010, 00:00
Откуда: Москва
Контактная информация:

Сообщение TK-15 »

С бейсиком ещё на радио86РК возился, общие понятия есть...
Сам когда-то начинал с бейсик-Spectrum, но с той поры много воды утекло и тот бейсик отличается от нынешнего как запорожец от лексуса (OLE, ActiveX, объектная модель и т.д.) :)
Что-бы не быть в разряде "особо одарённых" советую качнуть и почитать какую нибудь из книг:

Профессиональное программирование на VBA в Excel 2002. Джон Уокенбах
Программирование на VBA 2002 Кузьменко В. Г.
Использование макросов в Excel. Роман С.
VBA и программирование в MS Office для пользователей. Михеев Р.

на мой взгляд очень доступно все описано. После прочтения многие вопросы сами отпадут, ну а конкретную "непонятку" можно и обсудить.
Аватара пользователя
TK-15
Станкостроитель
Станкостроитель
Сообщения: 123
Зарегистрирован: 22 сен 2010, 00:00
Откуда: Москва
Контактная информация:

Сообщение TK-15 »

Вот еще link для тех кто хочет разобраться c VBA http://lib.rus.ec/b/133112/read - все разжевано с самых азов и по шагам

  Не в тему:   не знаю по месту ли поместил ссылочку - ежели что, просьба к модераторам перекинуть сообщение в нужное место :)
Аватара пользователя
TK-15
Станкостроитель
Станкостроитель
Сообщения: 123
Зарегистрирован: 22 сен 2010, 00:00
Откуда: Москва
Контактная информация:

Сообщение TK-15 »

Количество скачиваний возросло, а коментов от скачавших 0 - мда....
Даже не знаю какой вывод сделать - я же не ясновидящий
вариантов несколько:
1 Все и так ясно
2 Ничего не понятно
3 А нахрена оно надо...
4 .. ну что то еще

Если 3, то продолжать нет смысла и чтоб не захламлять форум - тему в утиль
Dj_smart
Смотрящий
Сообщения: 7565
Зарегистрирован: 28 авг 2009, 00:00
Имя: Юрий
Откуда: Украина. Межевая.

Сообщение Dj_smart »

TK-15, ну это просто не серьёзно. Как думаешь, сколько людей занимаются басиком? И сколько из них тут? Любопытство, и не более. Коментов нет, и уверяю, не будет. Да и о самом языке... У меня сын- программист. Для примера- наш файлообменник. Он написал его в 16 лет. Сейчас на 2-м курсе универа, и язык программирования для него не имеет ни малейшего значения. Зарабатывает на хлеб, и масло к нему. А на просьбу поковыряться в скриптах... Один взгляд, и... отказ наотрез. Не признаёт как язык в принципе. Вот такие комменты...
Глаза боятся, а руки делают!
Хостинг по CNC http://cncfiles.su/
Аватара пользователя
TK-15
Станкостроитель
Станкостроитель
Сообщения: 123
Зарегистрирован: 22 сен 2010, 00:00
Откуда: Москва
Контактная информация:

Сообщение TK-15 »

Для желающих разобраться в азах программирования выложил "мануал с картинками" - пошаговая инструкция к 1-ому посту :) http://chipdesign.hut2.ru/vba_form1.html
Аватара пользователя
TK-15
Станкостроитель
Станкостроитель
Сообщения: 123
Зарегистрирован: 22 сен 2010, 00:00
Откуда: Москва
Контактная информация:

Сообщение TK-15 »

Решил в ближайшее время "слепить" автономный контроллер (размеры и потребляемая мощность компьютера намного превышают размеры и потребление станочка :() Начал с обработки G-кода. Для "тестирования" использовал Excel. Получилось вот так Изображение
Процедура построения отрезка использует только целочисленную арифметику, ну и разумеется, в коде расчета нет ни одного умножения (используется алгоритм Брезенхема)
Serg
Станкостроитель
Станкостроитель
Сообщения: 628
Зарегистрирован: 10 янв 2010, 01:00
Откуда: Украина, Львов

Сообщение Serg »

Какое-то не правильное построение линии по брезенхему.
Увеличиваем Х, пока величина ошибки не достигла значения.
Откуда взялись такие вертикали ? Масштабную сеточку хоть бы прорисовал.
Gentoo way
Аватара пользователя
TK-15
Станкостроитель
Станкостроитель
Сообщения: 123
Зарегистрирован: 22 сен 2010, 00:00
Откуда: Москва
Контактная информация:

Сообщение TK-15 »

Какое-то не правильное построение линии по брезенхему.
Ну тогда поподробнее с этого момента - столбцы A (ось X), В (ось Y) ... какая именно точка построена неверно ?
Serg
Станкостроитель
Станкостроитель
Сообщения: 628
Зарегистрирован: 10 янв 2010, 01:00
Откуда: Украина, Львов

Сообщение Serg »

TK-15
Сетку координатную построй, если не сложно. Весьма не удобно без неё.
Сейчас до конспектов докопаюсь, года полтора назад работал с графикой под заказ.
Gentoo way
Аватара пользователя
TK-15
Станкостроитель
Станкостроитель
Сообщения: 123
Зарегистрирован: 22 сен 2010, 00:00
Откуда: Москва
Контактная информация:

Сообщение TK-15 »

Не знаю про какие конспекты речь - уравнение прямой изучают в средней школе, кажется в 5-6 классе (+/_ год, но могу ошибаться - уж очень давно это было). Чтобы утверждать правильно/неправильно достаточно сравнить приведенный результат с результатом, полученным по уравнению прямой.
общее уравнение прямой y = kx + b, находим угол наклона k.
k= (22-3)/(11-(-2))=19/13
находим b, b= 3-(-2)*19/13=77/13
теперь осталось сравнить, есть ли различие - загоняем данные в тот же Excel
пишем в Y0 (число 3) в В1
формула для колонки B2 - B1+1 и применяем ее к остальным ячейкам (В3..В20)
формула для колонки А1 - (B1-77/13)/(19/13) и так же применим к диапазону (А2..А20)

ну а теперь для проверки работы работы алгоритма выводим округленные значения, т.е. целые числа в колонку "С". С1= ЦЕЛОЕ(A1+0,5) и снова применяем к остальным.
результат можно посмотреть здесь: http://cncfiles.su/download.php?id=1365 правда никаких расхождений с расчетными нет и что именно неправильно так и не понял?
Ответить