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

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

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

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

  • ADN OPEN
  • Сообщений: 30
  • Карма: 0
Прошу помощи с кодом
« : 24-11-2018, 21:17:14 »
Здравствуйте. Пишу на форум впервые. У меня такая проблема возникла. Не могу написать код, поэтому прошу помощи здесь.
Писал на VBA для Acad Civil 2018.
Возникли трудности:
1. Ещё плохо разбираюсь с методами и свойствами самого Автокада.
2. Мне нужны были данные из таблицы объектных данных (как я понял, так они называются. Показал на скрине #1). А точнее "КН". Вот именно это я и не могу взять в свой код.

Суть кода такова:
1. Предлагает пользователю выбрать 1 объект (полилиния или блок с данными)
2. Выбирает данные записи "КН" и заносит их в некую переменную.
3. Предлагает пользователю указать точку, куда будет указывать мультивыноска, которая уже несет в себе запись "КН".
4. Вставляет эту выноску.

Почему VBA?
- Предложили. Но недавно узнал, что можно и на C#. С языками C и C++ знаком, думаю, что проблем не будет изучить C#.
Зачем нужен этот код?
- Долго заходить в свойства объекта, копировать нужную запись и вставлять в мультивыноску. Думал, что сам смогу свой полезный код написать, ошибся с выводами.

Прошу помочь написать код и сказать, какой метод предлагает пользователю выбрать только один объект, а не несколько, и можно ли это сделать без именного набора?



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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Прошу помощи с кодом
« Ответ #1 : 24-11-2018, 21:24:37 »
какой метод предлагает пользователю выбрать только один объект, а не несколько, и можно ли это сделать без именного набора?
Можно. Метод GetEntity:
Код - Visual Basic [Выбрать]
  1. Dim returnObj As AcadObject
  2. Dim basePnt As Variant
  3.  
  4. On Error Resume Next
  5.  
  6. ThisDrawing.Utility.GetEntity returnObj, basePnt, "Выберите объект"
  7.  
  8. If Err = 0 Then
  9.     MsgBox "Тип объекта: " & returnObj.EntityName, , "Пример GetEntity"
  10. End If
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Прошу помощи с кодом
« Ответ #2 : 24-11-2018, 21:26:26 »
Эти данные судя по всему ObjectData, которые есть в Civil 3D и Map 3D, но их нет (точнее к ним нет доступа) в чистом AutoCAD.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 30
  • Карма: 0
Re: Прошу помощи с кодом
« Ответ #3 : 24-11-2018, 21:39:10 »
Спасибо за пример с выборкой объекта.

Файлы, которые я загружаю с объектами, которые имеют те данные, имеют тип .mid и .mif. Всё, что могу сказать по этому поводу.
То есть через код я никак не смогу обратиться к тем данным?

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Прошу помощи с кодом
« Ответ #4 : 24-11-2018, 21:40:42 »
То есть через код я никак не смогу обратиться к тем данным?
Сможете, но только в AutoCAD Civil 3D или в AutoCAD Map 3D. Это я уточняю.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 30
  • Карма: 0
Re: Прошу помощи с кодом
« Ответ #5 : 24-11-2018, 22:07:10 »
Не могу найти в Help что-нибудь по Object Data. Если бы я знал способы обращения к записям таблицы..
Есть только небольшой список команд работы с Object Data
« Последнее редактирование: 24-11-2018, 22:51:13 от Vlad_001 »

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Прошу помощи с кодом
« Ответ #6 : 24-11-2018, 23:10:05 »
Не могу найти в Help что-нибудь по Object Data.
Думаю, что не там ищешь. В AutoCAD Civil 3D этого в документации нет. Есть в AutoCAD Map 3D. Так что его придётся качать и устанавливать. Или качать и устанавливать ObjectARX Map 3D SDK. Но там есь документация только для C++ или VB.NET/C#.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 30
  • Карма: 0
Re: Прошу помощи с кодом
« Ответ #7 : 24-11-2018, 23:12:40 »
А в интернете подобного нет? Мне попадаются только англоязычные форумы.

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

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

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

  • ADN OPEN
  • Сообщений: 30
  • Карма: 0
Re: Прошу помощи с кодом
« Ответ #9 : 24-11-2018, 23:19:57 »
Справку, как в обычном автокаде Help, с расписанными методами и свойствами. На сайте Autodesk только про команды пишут. Может я не там ищу?

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Прошу помощи с кодом
« Ответ #10 : 24-11-2018, 23:40:20 »
На сайте Autodesk только про команды пишут. Может я не там ищу?
Здесь всё о программировании для Map 3D:
https://www.autodesk.com/developer-network/platform-technologies/autocad-map-3d
В частности там сказано:

Цитировать
Documentation and Samples

The Docs subfolder in the AutoCAD Map ObjectARX SDK (download links below) installation directory contains Help files and Developers Guide for all the APIs, except the ActiveX (COM Automation) and AutoLISP® APIs.

Documentation for the ActiveX (COM Automation) and AutoLISP® APIs are in the Help subfolder of the AutoCAD Map.

Т.е. документация для VBA (это ActiveX (COM Automation)) - находится в самом AutoCAD Map 3D. Т.е. его нужно установить.

Здесь ObjectARX Map 3D SDK: https://www.autodesk.com/developer-network/platform-technologies/autocad/map3d-objectarx
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 30
  • Карма: 0
Re: Прошу помощи с кодом
« Ответ #11 : 24-11-2018, 23:42:13 »
Благодарю Вас. Думаю, что завтра будут результаты.

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Прошу помощи с кодом
« Ответ #12 : 25-11-2018, 00:10:05 »
Благодарю Вас. Думаю, что завтра будут результаты.
Боюсь, что всё будет не так просто. Я установил AutoCAD Map 3D, но документации в нём нет. Так что переход на .NET придётся делать сразу и про VBA забыть.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 30
  • Карма: 0
Re: Прошу помощи с кодом
« Ответ #13 : 25-11-2018, 00:13:12 »
Буду импровизировать. :)

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Прошу помощи с кодом
« Ответ #14 : 25-11-2018, 00:36:41 »
Буду импровизировать. :)
Я пока задал вопрос в ADN DevHelp где можно найти эту документацию, так как её не оказалось и в offline-документации. Это крайне странно.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение