Прошу помощи с кодом. VBA

Автор Тема: Прошу помощи с кодом. VBA  (Прочитано 25437 раз)

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

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Прошу помощи с кодом. VBA
« Ответ #30 : 11-02-2019, 01:47:43 »
DMA,
Мне нужен чертеж, с которым ты проверял и номер версии AutoCAD
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 35
  • Карма: 0
Re: Прошу помощи с кодом. VBA
« Ответ #31 : 11-02-2019, 01:51:37 »
Мне нужен чертеж, с которым ты проверял и номер версии AutoCAD
F.205.0.0 Autocad 2012 russian sp2
чертеж абсолютно пустой, проставляю размер в пустоту и запускаю макрос.

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Прошу помощи с кодом. VBA
« Ответ #32 : 11-02-2019, 10:15:46 »
Мне нужен чертеж, с которым ты проверял и номер версии AutoCAD
F.205.0.0 Autocad 2012 russian sp2
чертеж абсолютно пустой, проставляю размер в пустоту и запускаю макрос.
Специально проверил в AutoCAD 2012 SP2 (у меня английский, но это не должно влиять). Всё работает как надо:


Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 35
  • Карма: 0
Re: Прошу помощи с кодом. VBA
« Ответ #33 : 11-02-2019, 10:32:21 »
Еще раз перепроверил на рабочем компьютере, здесь тоже 2012. Не работает.
В чем Вы , кстати, видео записываете?
Есть ли сервайс пак 3 на 2012 интересно?

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Прошу помощи с кодом. VBA
« Ответ #34 : 11-02-2019, 10:33:58 »
В чем Вы , кстати, видео записываете?
Прочитай у меня в подписи.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 35
  • Карма: 0
Re: Прошу помощи с кодом. VBA
« Ответ #35 : 11-02-2019, 10:38:29 »
Проверил в 2015, тоже не работает.
Вряд ли это некорректная работа обеих версий. Тут видимо что-то еще...

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

  • ADN OPEN
  • Сообщений: 35
  • Карма: 0
Re: Прошу помощи с кодом. VBA
« Ответ #36 : 11-02-2019, 10:46:29 »
Прочитай у меня в подписи.
если нужно, вечером запишу и отправлю.

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Прошу помощи с кодом. VBA
« Ответ #37 : 11-02-2019, 12:49:08 »
Прочитай у меня в подписи.
если нужно, вечером запишу и отправлю.
Не помешает понять что у тебя происходит. Возможно взаимодействие с какими-то другими программами. Я проверил даже в древнем AutoCAD 2008 - всё работает. Немного модифицировал код, так как похоже у тебя не завершается команда EXPLODE до того как отрабатывает дальнейший код.

Код - Visual Basic [Выбрать]
  1.     Option Explicit
  2.      
  3.     Sub XplodeDims()
  4.      
  5.         Dim objDim As AcadEntity
  6.         Dim pt As AcadPoint
  7.         Dim strCmd As String
  8.          
  9.         strCmd = "_.Explode" & vbCr
  10.          
  11.         On Error Resume Next
  12.        
  13.         ThisDrawing.Utility.GetEntity objDim, pt, "Выберите размер"
  14.          
  15.         If Err.Number <> -2147352567 Then
  16.          
  17.           If InStr(1, TypeName(objDim), "IAcadDim") = 0 Then
  18.            ' Это не размер
  19.           MsgBox "Это не размер!", vbCritical
  20.           Else
  21.            strCmd = strCmd & "(handent " & Chr(34)
  22.            strCmd = strCmd & objDim.Handle & Chr(34)
  23.            strCmd = strCmd & ")" & vbCr
  24.           End If
  25.          
  26.         End If
  27.          
  28.         On Error GoTo 0
  29.         ' Находим последний элемент до расчленения
  30.        Dim nLastEnt As Integer
  31.         nLastEnt = ThisDrawing.ModelSpace.Count - 1
  32.          
  33.         ' Запускаем _EXPLODE
  34.        ThisDrawing.SendCommand strCmd
  35.         ' Выполняем до завершения команды
  36.        While ThisDrawing.GetVariable("CMDNAMES") = "EXPLODE"
  37.           ThisDrawing.SendCommand vbCr
  38.         Wend
  39.        
  40.          
  41.         ' Находим последний элемент после расчленения
  42.        Dim nLastEntNew As Integer
  43.         nLastEntNew = ThisDrawing.ModelSpace.Count - 1
  44.          
  45.         MsgBox ("Новых элементов: " & CStr(nLastEntNew - nLastEnt + 1))
  46.          
  47.         Dim i As Integer
  48.          
  49.         For i = nLastEnt To nLastEntNew
  50.           ' Очередной расчленённый объект
  51.          MsgBox (ThisDrawing.ModelSpace.Item(i).ObjectName)
  52.         Next
  53.     End Sub
« Последнее редактирование: 11-02-2019, 14:33:14 от Александр Ривилис »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 35
  • Карма: 0
Re: Прошу помощи с кодом. VBA
« Ответ #38 : 11-02-2019, 14:14:04 »
нет, тоже самое. + в конце выбор еще одного размера для разбивки без вывода информации...

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 738
Re: Прошу помощи с кодом. VBA
« Ответ #39 : 11-02-2019, 14:43:33 »
Я проверил даже в древнем AutoCAD 2008 - всё работает.
Проверил в AutoCAD as Civil 3D 2014 - работает. Видео:

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

  • ADN OPEN
  • Сообщений: 35
  • Карма: 0
Re: Прошу помощи с кодом. VBA
« Ответ #40 : 11-02-2019, 14:49:15 »
Проверил в AutoCAD as Civil 3D 2014 - работает.
ё-моё, почему интересно у меня-то не хочет. Вечером еще до 2-х компов с Автокадом дойду, попробую.

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

  • ADN OPEN
  • Сообщений: 35
  • Карма: 0
Re: Прошу помощи с кодом. VBA
« Ответ #41 : 11-02-2019, 17:21:19 »
в 2018-ом работает правильно...
на той же машине где 2012,2015

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Прошу помощи с кодом. VBA
« Ответ #42 : 11-02-2019, 17:26:28 »
в 2018-ом работает правильно...
на той же машине где 2012,2015
Значит, как я и предположил, что-то мешает этому коду правильно выполнятся. Например, какие-то установленные приложения к AutoCAD.
Или нестандартное состояние системных переменных.
Можно попробовать создать новый профиль AutoCAD, переключится на него, выполнить его сброс и проверить код.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 35
  • Карма: 0
Re: Прошу помощи с кодом. VBA
« Ответ #43 : 11-02-2019, 20:13:40 »
Значит, как я и предположил, что-то мешает этому коду правильно выполнятся.
при экспортировании в Автокад 2018 панелек с кнопками макросов, через какое-то время (или сразу) , перестал работать данный код :)))
сброс настроек профиля ни к чему не привел  (хотя я возможно сделал не то что нужно).

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Прошу помощи с кодом. VBA
« Ответ #44 : 11-02-2019, 20:47:14 »
Значит, как я и предположил, что-то мешает этому коду правильно выполнятся.
при экспортировании в Автокад 2018 панелек с кнопками макросов, через какое-то время (или сразу) , перестал работать данный код :)))
сброс настроек профиля ни к чему не привел  (хотя я возможно сделал не то что нужно).

Ну теперь становится ясно, что проблема в этих панельках.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение