Команда: _viewbase через VBA AutoCAD2016

Автор Тема: Команда: _viewbase через VBA AutoCAD2016  (Прочитано 4862 раз)

0 Пользователей и 4 Гостей просматривают эту тему.

Оффлайн yurmsАвтор темы

  • ADN OPEN
  • Сообщений: 5
  • Карма: 0
Добрый день
хочу автоматизировать _viewbase
есть другие способы работы с этой командой в VBA кроме как через ThisDrawing.SendCommand "_viewbase _m;;\;"
 не могу найти ни примеров ни описания... а то что нахожу относится к Inventor

Отмечено как Решение yurms 04-07-2018, 13:44:11

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Команда: _viewbase через VBA AutoCAD2016
« Ответ #1 : 04-07-2018, 12:11:08 »
есть другие способы работы с этой командой в VBA кроме как через ThisDrawing.SendCommand "_viewbase _m;;\;"
Нет. В VBA только через ThisDrawing.SendCommand, кстати ";" нужно заменить на пробел.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн yurmsАвтор темы

  • ADN OPEN
  • Сообщений: 5
  • Карма: 0
Re: Команда: _viewbase через VBA AutoCAD2016
« Ответ #2 : 07-07-2018, 09:30:19 »
ThisDrawing.SendCommand
Столкнулся с проблемой! один  и тот-же код работает на одном компьютере, и не работает на другом, выбивая ошибку - Run-time error '-2145386296 (802000c8) Недопустимый контекст выполнения
       может команда требует особых установок системных переменных? -References одинаковы

или тут виновата русская локализация? параметр "Г"-как сделать универсальным?

Код - Visual Basic [Выбрать]
  1. Public Function Explode1CopyObjectInTemp(solidObj As Acad3DSolid, layerObj As AcadLayer) As Boolean
  2.  
  3. 'On Error GoTo ERRfun
  4.    Dim copyObj As AcadEntity
  5.     Set copyObj = solidObj.Copy() ' создаем копию триде тела
  6.    copyObj.layer = layerObj.Name
  7.     Dim forExGroup As AcadGroup
  8.     Dim todos(0 To 0) As AcadEntity
  9. '    If ThisDrawing.Groups.Count > 0 Then ThisDrawing.Groups.Delete
  10.    Set forExGroup = ThisDrawing.Groups.Add("EXPLOD_SOLID")
  11.     Set todos(0) = copyObj
  12.     forExGroup.AppendItems todos
  13.     ThisDrawing.SendCommand "_EXPLODE" & vbCr & "Г" & vbCr & forExGroup.Name & vbCr & vbCr
  14.     forExGroup.Delete
  15.     Explode1CopyObjectInTemp = True
  16.     Exit Function
  17. 'ERRfun:
  18. '  Explode1CopyObjectInTemp = False
  19. '  forExGroup.Delete
  20. End Function
  21.  
« Последнее редактирование: 07-07-2018, 11:55:00 от Александр Ривилис »

Оффлайн yurmsАвтор темы

  • ADN OPEN
  • Сообщений: 5
  • Карма: 0
Re: Команда: _viewbase через VBA AutoCAD2016
« Ответ #3 : 07-07-2018, 09:56:02 »
таки да!! проблема в локализации. замена ключа "Г" на "_g" - решает вопрос

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Команда: _viewbase через VBA AutoCAD2016
« Ответ #4 : 07-07-2018, 11:56:10 »
yurms,
Пожалуйста прочитай у меня в подписи о том как следует форматировать код на форуме и в дальнейшем соблюдай это правило!
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение