Видеоуроки AutoCAD VBA

Автор Тема: Видеоуроки AutoCAD VBA  (Прочитано 16086 раз)

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

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

  • Administrator
  • *****
  • Сообщений: 7235
  • Карма: 831
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Видеоуроки AutoCAD VBA
« Ответ #60 : 17-07-2017, 19:38:34 »
Я отделил сообщения в отдельную тему: Пакетная печать блоков-форматов в PDF  на LISP
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн shaftler

  • ADN OPEN
  • Сообщений: 2
  • Карма: 0
Re: Видеоуроки AutoCAD VBA
« Ответ #61 : 01-11-2017, 19:12:28 »
Добрый день!
Подскажите, возможно ли при пакетной печати выводить печатаемые блоки не в отдельные файлы, а в один файл на отдельные листы? Если да, то как?
Благодарю за понимание.

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 718
  • Карма: 109
Re: Видеоуроки AutoCAD VBA
« Ответ #62 : 01-11-2017, 19:39:54 »
Ну вроде бы весь код открыт... Наверняка можно разобраться (просто я на VBA не пишу). Может быть, дело в настройках виртуального плоттера.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн shaftler

  • ADN OPEN
  • Сообщений: 2
  • Карма: 0
Re: Видеоуроки AutoCAD VBA
« Ответ #63 : 01-11-2017, 19:49:50 »
Ну вроде бы весь код открыт... Наверняка можно разобраться (просто я на VBA не пишу). Может быть, дело в настройках виртуального плоттера.
Я немного знаю VBA но вот с автокадом совсем не знаком, все больше в екселе приходилось. Спасибо что подсказали направление поиска. Если вдруг кто-то сталкивался с этим вопросом буду благодарен за любую информацию.

Оффлайн ediczr2012

  • ADN OPEN
  • Сообщений: 31
  • Карма: 0
Re: Видеоуроки AutoCAD VBA
« Ответ #64 : 26-12-2017, 12:20:22 »
Всем добрый день.
Раньше не замечал проблему в VBA скрипте: «Получение данных для блока AutoCAD из документа Excel» проблема заключается в следующем: При подключении AutoCAD к Excel-ю работает с тел листом на котором был завершён сеанс или сохранен файл на открытом листе, скрипт почему-то не открывает необходимый лист в Excel-е для получения необходимых данных из AutoCAD-а.
Кто-нибудь сталкивался с данной ситуацией? (Если да, то что делали?).

VBA код:
Код - Visual Basic [Выбрать]
  1.     Sub ExcelToAutocad()
  2.         ' Для того, чтобы автокад понимал такой тип переменных, как Excel.Application, Excel.Workbook и Excel.Worksheet
  3.        ' необходимо в редакторе VBA выбрать Tools - References и добавить Microsoft Excel *.* Type Library
  4.        Dim AP As Excel.Application
  5.         Dim WB As Excel.Workbook
  6.         Dim WS As Excel.Worksheet    
  7.         'Устанавливаем связь с Excel
  8.        Set AP = Excel.Application
  9.         Set WB = AP.Workbooks.Open("m:\Excel.xlsx")
  10.         Set WS = WB.Worksheets("Лист1")  
  11.         'Считываем данные
  12.        ....
  13.         ....
  14.         'Выводим в AutoCAD
  15.        MsgBox dlina & " = " & a
  16.        
  17.         'Закрываем Excel
  18.        AP.Quit
  19.      
  20.     End Sub

Видео с проблемой:


Примечание: AutoCAD 2013(x64)+Windows 7(x64)

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 718
  • Карма: 109
Re: Видеоуроки AutoCAD VBA
« Ответ #65 : 26-12-2017, 12:34:34 »
Как вариант - обращаться не по имени, а по номеру листа.
Может быть, проблема вообще в самом Excel. Версия какая?
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 718
  • Карма: 109
Re: Видеоуроки AutoCAD VBA
« Ответ #66 : 26-12-2017, 12:35:26 »
P.S. Я бы не использовал раннее связывание и максимально ушел в сторону позднего. Код писать становится менее удобно, но результат будет более устойчивым.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн ediczr2012

  • ADN OPEN
  • Сообщений: 31
  • Карма: 0
Re: Видеоуроки AutoCAD VBA
« Ответ #67 : 26-12-2017, 12:38:12 »
Microsoft Office 2013

Обращение по номеру листа тоже не срабатывает.

Возможно, как вариант не проходит VBA код (строка номер 10)

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 718
  • Карма: 109
Re: Видеоуроки AutoCAD VBA
« Ответ #68 : 26-12-2017, 12:49:17 »
А в самом Excel'e сработает код наподобие
Код - Visual Basic [Выбрать]
  1. Option Explicit
  2.  
  3. Public Sub test()
  4.   Dim ws As Worksheet
  5.  
  6.   Set ws = ThisWorkbook.Sheets(1)
  7.   ws.Activate
  8. End Sub
?
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн ediczr2012

  • ADN OPEN
  • Сообщений: 31
  • Карма: 0
Re: Видеоуроки AutoCAD VBA
« Ответ #69 : 26-12-2017, 12:55:20 »
Нет код не сработал


Оффлайн ediczr2012

  • ADN OPEN
  • Сообщений: 31
  • Карма: 0
Re: Видеоуроки AutoCAD VBA
« Ответ #70 : 26-12-2017, 13:01:05 »
В Excel-е код сработал.
Код - Visual Basic [Выбрать]
  1.     Option Explicit
  2.      
  3.     Public Sub test1()
  4.       Dim ws As Worksheet
  5.      
  6.       Set ws = ThisWorkbook.Sheets(1)
  7.       ws.Activate
  8.     End Sub

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 718
  • Карма: 109
Re: Видеоуроки AutoCAD VBA
« Ответ #71 : 26-12-2017, 13:02:58 »
... и активировался первый лист?
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн ediczr2012

  • ADN OPEN
  • Сообщений: 31
  • Карма: 0
Re: Видеоуроки AutoCAD VBA
« Ответ #72 : 26-12-2017, 13:03:31 »
Да
 :)

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 718
  • Карма: 109
Re: Видеоуроки AutoCAD VBA
« Ответ #73 : 26-12-2017, 13:17:54 »
В таком случае я бы делал примерно так:
Код - Visual Basic [Выбрать]
  1. Option Explicit
  2.  
  3. Public Sub test()
  4. Dim oExcel As Object
  5. Dim oWbook As Object
  6. Dim oSheet As Object
  7.   Set oExcel = GetOrCreateObject("Excel.Application")
  8.   oExcel.Visible = True
  9.   Set oWbook = oExcel.Workbooks.Open("d:\êíèãà1.xlsx")
  10.   Set oSheet = oWbook.Sheets(3)
  11.   oSheet.Activate
  12.   ' ...
  13.  oExcel.Quit
  14. End Sub
  15.  
  16. Private Function GetOrCreateObject(AppName As String) As Object
  17. Dim oRes As Object
  18. On Error GoTo lCreateObject
  19.   Set oRes = GetObject(, AppName)
  20.   Set GetOrCreateObject = oRes
  21.   Exit Function
  22. lCreateObject:
  23.   Set oRes = CreateObject(AppName)
  24.   Set GetOrCreateObject = oRes
  25.   Exit Function
  26. End Function
  27.  
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 718
  • Карма: 109
Re: Видеоуроки AutoCAD VBA
« Ответ #74 : 26-12-2017, 13:18:20 »
Активирую лист и делаю Excel видимым только для иллюстративных целей.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!