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

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

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

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

  • ADN OPEN
  • Сообщений: 30
  • Карма: 0
Re: Прошу помощи с кодом
« Ответ #45 : 25-11-2018, 21:53:13 »



Попробовал несколько раз.

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Прошу помощи с кодом
« Ответ #46 : 25-11-2018, 21:54:33 »
Попробовал несколько раз.
Где пошаговая отладка? На какой строке вылет?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 30
  • Карма: 0
Re: Прошу помощи с кодом
« Ответ #47 : 25-11-2018, 22:15:26 »
Код - Visual Basic [Выбрать]
  1.  Set amap = ThisDrawing.Application.GetInterfaceObject("AutoCADMap.Application")

На этой строке всё прекращается и выскакивает ошибка.

А нельзя ли эти данные из Result_un взять с помощью GetXData?

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Прошу помощи с кодом
« Ответ #48 : 25-11-2018, 22:21:38 »
А нельзя ли эти данные из Result_un взять с помощью GetXData?
Нет. Они не в XData. Если бы было всё так просто, то оно работало бы в чистом AutoCAD.
На этой строке всё прекращается и выскакивает ошибка.
Ну это совсем плохо. Тут я тебе не помогу. Или проблема с инсталляцией или с Windows. В чем ты проверяешь? В Civil 3D или в Map 3D? В какой версии? Из какой версии подключал в References?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 30
  • Карма: 0
Re: Прошу помощи с кодом
« Ответ #49 : 25-11-2018, 22:25:41 »
Дома у меня Win 7. Проверяю в Civil 3D 2018. В References нашел только Autodesk Map 3D 2005. Могу скинуть вам тестовый файл с одним объектом только в личку. Может это что-то даст

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Прошу помощи с кодом
« Ответ #50 : 25-11-2018, 22:32:43 »
В References нашел только Autodesk Map 3D 2005.
Думаю что без установки Map 3D 2018 ничего не будет. Но лучше не лезть в дебри и забыть про VBA. Думаю не зря Autodesk'овцы не дают документацию для VBA в последних версиях. Скорее всего оно не работает. Не вижу за последние лет 10 чтобы кто-то использовал VBA в Map 3D.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 30
  • Карма: 0
Re: Прошу помощи с кодом
« Ответ #51 : 25-11-2018, 22:35:01 »
Изучить C# и написать на нём? А это поможет с моим-то Civil'ом?

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Прошу помощи с кодом
« Ответ #52 : 25-11-2018, 22:36:06 »
Изучить C# и написать на нём? А это поможет с моим-то Civil'ом?
Да. Это должно сразу нормально работать с Civil'е
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 30
  • Карма: 0
Re: Прошу помощи с кодом
« Ответ #53 : 25-11-2018, 22:38:09 »
Вернусь с результатами или с вопросами.  ;D

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Прошу помощи с кодом
« Ответ #54 : 25-11-2018, 23:06:05 »
На виртуальной машине у меня только Civil 3D 2016 и поставить Civil 3D 2018 сейчас возможности нет. Проверил с ним:


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

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 475
  • Карма: 63
Re: Прошу помощи с кодом
« Ответ #55 : 25-11-2018, 23:29:45 »
Цитировать
Нет. Они не в XData. Если бы было всё так просто, то оно работало бы в чистом AutoCAD.
я видел lisp'ы которые это делали и без Map API, но это ещё тот гемор...
примерно как с динамическими блоками работать на прямую...

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Прошу помощи с кодом
« Ответ #56 : 25-11-2018, 23:32:39 »
я видел lisp'ы которые это делали и без Map API, но это ещё тот гемор...
примерно как с динамическими блоками работать на прямую...
Ну тогда точно не VBA, так с его помощью нельзя получить dxf-коды объекта. Т.е. это или lisp, или arx, или .NET через P/Invoke
Но если бы был пример чертежа, то я попробовал бы на него взглянуть. Например, через ARXDBG/MGDDBG.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 30
  • Карма: 0
Re: Прошу помощи с кодом
« Ответ #57 : 26-11-2018, 12:15:41 »
Впрочем и проекта на котором можно проверить у меня н
Я выслал Вам на почту тестовый файл. Если не трудно, проверьте, может это только у меня фатальная ошибка вылетает?

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Прошу помощи с кодом
« Ответ #58 : 26-11-2018, 16:11:56 »
Впрочем и проекта на котором можно проверить у меня н
Я выслал Вам на почту тестовый файл. Если не трудно, проверьте, может это только у меня фатальная ошибка вылетает?
У меня не только не вылетает, но и получил результат (в AutoCAD Map 3d 2019):


Использовал слегка модифицированный код:
Код - Visual Basic [Выбрать]
  1. Sub PrintAllOData()
  2.    Dim amap As AcadMap
  3.    Dim acadObj As Object
  4.    Dim ODtbs As ODTables
  5.    Dim ODtb As ODTable
  6.    Dim i As Integer
  7.    Dim prj As Project
  8.    Dim ODrcs As ODRecords
  9.    Dim ODrc As ODRecord
  10.    Dim ODflds As ODFieldDefs
  11.  
  12.    Dim boolVal As Boolean
  13.    
  14.    Set amap = ThisDrawing.Application.GetInterfaceObject("AutoCADMap.Application")
  15.    Set prj = amap.Projects(ThisDrawing)
  16.    prj.ProjectOptions.DontAddObjectsToSaveSet = True
  17.    Set ODtbs = prj.ODTables
  18.  
  19.    For Each ODtb In ODtbs
  20.      If ODtb.Name = "Result_un" Then
  21.        Set ODrcs = ODtb.GetODRecords
  22.        Set ODflds = ODtb.ODFieldDefs
  23.        
  24.        For Each acadObj In ThisDrawing.ModelSpace
  25.          boolVal = ODrcs.Init(acadObj, True, True)
  26.          If boolVal = True Then
  27.          On Error GoTo Err_1
  28.            Set ODrc = ODrcs.Record
  29.            Debug.Print ODrc.tableName
  30.            Debug.Print ODrc.ObjectID
  31.            For i = 0 To ODrc.Count - 1
  32.             Debug.Print ODflds.Item(i).Name & ": " & ODrc.Item(i).Value
  33.            Next i
  34. Err_1:
  35.          End If
  36.        Next
  37.      End If
  38.    Next
  39.    Set ODrcs = Nothing
  40. End Sub
« Последнее редактирование: 26-11-2018, 19:16:48 от Александр Ривилис »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Прошу помощи с кодом
« Ответ #59 : 26-11-2018, 19:45:22 »
Совместно с Дмитрий Загорулькин провели исследование. В версиях 2016, 2017, 2018 нам не удалось заставить работать код. В AutoCAD Map 3d 2019 (у меня) и в AutoCAD Civil 3d 2019 (у Дмитрия) - работает.
Вот такая ошибка на строке:
Код - Visual Basic [Выбрать]
  1. Set amap = ThisDrawing.Application.GetInterfaceObject("AutoCADMap.Application")



С путями доступа к файлу вроде всё в порядке.



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