| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Не работают средства выбора объектов в модели из VBA Autocad на "другом" компьютере.

Не работают средства выбора объектов в модели из VBA Autocad на "другом" компьютере.

Ответ
Поиск в этой теме
Непрочитано 20.05.2018, 14:24 #1
Не работают средства выбора объектов в модели из VBA Autocad на "другом" компьютере.
Theodor
 
Петрозаводск
Регистрация: 16.04.2009
Сообщений: 323

Коллеги, доброго времени суток.
Есть такая проблема:
на одном компьютере сделаны макросы на VBA в которых используются средства и методы получения объектов из области модели, например такие:
ThisDrawing.Utility.GetEntity .....
setMy.SelectOnScreen ....
Все замечательно работает, но вот те же макросы не работают на другом компе, спотыкаются именно на этих командах!

На первом компе Win10 64бит, автокад 2012. На втором компе Win7 64бит, автокад 2012.

на "setMy.SelectOnScreen" в командной строке пишет "ошибка при выполнении", при этом запрос с пространства даже не происходит.

на "ThisDrawing.Utility.GetEntity" выдает ошибку "Method 'GetInteger' of object 'IAcadUtility' failed"

может с настройками что-то накосячено? С библиотеками?
на данный момент что в первом, что во втором компе подключены такие библиотеки:

- Visual Basic For Applications
- OLE Automation
- Microsoft Forms 2.0 Object Library
- AutoCad 2012 Type Library

Что делать? Где косяк забрался?

Удалось вспомнить, что проблема могла появиться, когда с первого компьютера на второй была перенесена адаптация (менюшки с вызовом процедур). Но тем не менее, запуск процедур через "Сервис-Макросы-Макросы..." проблему не исключает.
Просмотров: 4583
 
Непрочитано 20.05.2018, 14:45
#2
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


Забудь про VBA
AutoCAD 2012 вообще не должен на Win10 работать
trir вне форума  
 
Автор темы   Непрочитано 20.05.2018, 14:56
#3
Theodor


 
Регистрация: 16.04.2009
Петрозаводск
Сообщений: 323


Цитата:
Сообщение от trir Посмотреть сообщение
Забудь про VBA
AutoCAD 2012 вообще не должен на Win10 работать
Что не так с VBA? Простое решение для незначительной автоматизации. По отношению к Lisp - в VBA формы есть.
2012 прекрасно на Win10 работает! Проблема как раз на Win7 вылезла.
Theodor вне форума  
 
Непрочитано 20.05.2018, 15:00
#4
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


Цитата:
Что не так с VBA?
всё
trir вне форума  
 
Автор темы   Непрочитано 20.05.2018, 15:02
#5
Theodor


 
Регистрация: 16.04.2009
Петрозаводск
Сообщений: 323


Предлагаю не продолжать неаргументированную полемику.
Theodor вне форума  
 
Непрочитано 20.05.2018, 15:17
#6
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


пиши разный код под разные версии
trir вне форума  
 
Автор темы   Непрочитано 20.05.2018, 15:24
#7
Theodor


 
Регистрация: 16.04.2009
Петрозаводск
Сообщений: 323


Цитата:
Сообщение от trir Посмотреть сообщение
пиши разный код под разные версии
с VBA я сталкивался только с двумя проблемами связанными с версиями:
- создание пунктов меню методами VBA в 2008 и в 2012 отличается. Тут кроме как проверкой версии и написанием двух процедур не решить.
- подключение библиотек. 2012 постоянно прикручивал свои, а 2007 не мог самостоятельно их отключить...

Но в моей проблеме и код одинаковый, и библиотеки, и версии када...
Что менять? Что переписывать?
Или с ноля создать новый VBA пакет на втором компьютере?
Theodor вне форума  
 
Непрочитано 20.05.2018, 15:48
#8
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,000


Theodor, поверьте практическому опыту - я тоже начинал с 2012 х64 акада на VBA, но правда под семерку:
1. Нет нормального 64-битного VBA под этот акад, есть лишь x32 и работающие не очень стабильно обертки под х64.
2. Когда в рандомном порядке VBA стал сообщать при каждом запуске макросов, что он не знает таких базовых функций как Mid и прочих (причем это могла быть любая строка кода) - плюнул и ушел в Interop: тот же VBA по сути (если не углубляться в .Net), но пишется в любой бесплатной студии на VB.NET и после компиляции подгружается в акад как *.dll. Код фактически один в один с VBA, стабильность работы на порядок выше.

----- добавлено через ~3 мин. -----
Вот, кстати, немаленькая тема про это на форуме.
Сергей812 вне форума  
 
Автор темы   Непрочитано 20.05.2018, 17:42
#9
Theodor


 
Регистрация: 16.04.2009
Петрозаводск
Сообщений: 323


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
плюнул и ушел в Interop
Я одно время ломал голову, как бы мне создать процедурки совместимые для разных версий, но понял, что это отожмет у меня много времени от основной деятельности - проектирования.. Не полез в VBNET. Пока хватает возможностей штатного VBA. Но все же подумаю.

Цитата:
Сообщение от Сергей812 Посмотреть сообщение
огда в рандомном порядке VBA стал сообщать при каждом запуске макросов, что он не знает таких базовых функций как Mid и прочих
Такая фигня у меня вылетала, когда 2012 автокад что-то переписывал в файлах макросов, а 2008 кад чего-то после этого не понимал. Приходилось ручками отключать/подключать библиотеки.. Но при моей проблеме с библиотеками вроде проблем нет.
Theodor вне форума  
 
Непрочитано 20.05.2018, 18:02
#10
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,000


если быть точнее, я начинал писать на x32 машине, потом ушел сотрудник-старожил и мне админ отдал его более мощную машинку х64 (дружите с админами) - и я получил на уже частично написанном на старой машине (и нормально работающим) коде постоянные ошибки. Не было смысла продолжать разработку приложения при такой рандомной нестабильности.

Цитата:
Сообщение от Theodor Посмотреть сообщение
процедурки совместимые для разных версий,
не гонитесь за этим) А если даже используя Interop, но при этом немного изучите несколько глав учебника по .Net - коллекции, LINQ и т.п. - приятно удивитесь экономии времени. VBA в плане обработки и хранения информации все таки очень ограниченный язык.
Сергей812 вне форума  
 
Непрочитано 20.05.2018, 22:07
#11
trir


 
Регистрация: 18.12.2010
Сообщений: 5,047


Там где не работает - создай новый проект и скопируй туда код
trir вне форума  
 
Непрочитано 20.05.2018, 22:40
#12
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,000


И просто интересная информация - если еще не видели: AutoCAD, VBA и производительность
Сергей812 вне форума  
 
Автор темы   Непрочитано 21.05.2018, 13:04
#13
Theodor


 
Регистрация: 16.04.2009
Петрозаводск
Сообщений: 323


Цитата:
Сообщение от trir Посмотреть сообщение
Там где не работает - создай новый проект и скопируй туда код
Попробовал, не помогает. Создал новый проект, закинул туда несколько строк - automation error на .selectonscreen...


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
А если даже используя Interop, но при этом немного изучите несколько глав учебника по .Net - коллекции, LINQ
Ох зачем вы меня склоняете в изучение новых языков... Кто ж тогда проектировать то будет?
Но на досуге посмотрю, что за зверь такой, этот Interop.

Цитата:
Сообщение от Сергей812 Посмотреть сообщение
И просто интересная информация
Я читал нечто подобное, когда с 2008 на 2012 перелез. Скажу честно, VBA в Acad2008 долго и надежно работал у меня на старенькой машинке с WinXP. И в разы быстрее, чем сейчас 2012 на условно новом компе с Win7.
На данном этапе, несколько дней назад, отдал старый комп в ремонт. Походу придется вернуться в 2008, пока .NET не овладею.
Theodor вне форума  
 
Непрочитано 21.05.2018, 13:27
#14
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,000


Цитата:
Сообщение от Theodor Посмотреть сообщение
Ох зачем вы меня склоняете в изучение новых языков... Кто ж тогда проектировать то будет?
Но на досуге посмотрю, что за зверь такой, этот Interop.
смысл этого Interop - что сам код из VBA можно перенести с незначительными переделками в студию в VB.NET. Сам .Net можно по факту и не использовать, самые азы изучить - как создавать сборку (выбирается при создании программы один раз, а заготовку создаст сама студия), как подключать библиотеки акада к проекту, как создать командный метод (чтобы после загрузки сборки в акад можно было вызывать как команды из комстроки/кнопки).
Сергей812 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Не работают средства выбора объектов в модели из VBA Autocad на "другом" компьютере.

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание чертежей с модели в Autocad 2013 Vitalii314 AutoCAD 3 09.12.2015 10:36
Экспорт модели в Ansys из Autocad S_M ANSYS 22 25.01.2013 19:57
Востановление модели из листа AUTOCAD 2012 fabsher AutoCAD 13 17.05.2012 08:40
Программа просчета объектов в AutoCad. Связь с MySQL. gash90 Программирование 30 06.07.2010 22:05
Не работают динблоки в AutoCAD 2006 Artiznov AutoCAD 2 28.09.2007 10:55