Общие вопросы

Автор Тема: Общие вопросы  (Прочитано 1188 раз)

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

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

  • ADN OPEN
  • Сообщений: 22
  • Карма: 0
Общие вопросы
« : 17-07-2019, 07:39:13 »
Здравствуйте.
У меня, как у начинающего, возникло несколько вопросов:
1. Я так понял, что C# без вариантов или JS, Python - альтернатива?
JS и Python предпочтительнее: не надо компиляторов и IDE (достаточно VS Code), но насколько я понял, всё это не поддерживается толком...
2. А где, собственно, можно сам API посмотреть? Обычно API открыт, а в данном случае я набираю "Autocad C# API" и мне вываливаются какие-то доклады с конференций и прочая не нужная инфа...
3. Однозначно нужно использовать Visual Studio? Там, насколько я понял, под каждую версию AutoCAD своя версия ObectARX и своя версия VS

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

  • Administrator
  • *****
  • Сообщений: 9843
  • Карма: 1257
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Общие вопросы
« Ответ #1 : 17-07-2019, 10:04:29 »
Luca,
Приветствую на форуме! Хотя это точно не указано, но видимо речь идёт о API для AutoCAD (у Autodesk есть еще масса ПО и у большинства из них есть свои API)
1. Я так понял, что C# без вариантов или JS, Python - альтернатива?
Будем считать, что для AutoCAD есть:
1. VisualLisp
2. VBA и вообще AutoCAD COM/ActiveX
3. AutoCAD .NET API (C#, VB.NET и т.д.)
4. ObjectARX (native или mixed C++)
5. Есть и JavaScript, но я бы его не стал рекомендовать - его возможностей недостаточно
6. Python - я бы его не стал рассматривать. Но это IMHO.

2. А где, собственно, можно сам API посмотреть? Обычно API открыт, а в данном случае я набираю "Autocad C# API" и мне вываливаются какие-то доклады с конференций и прочая не нужная инфа...
Везде. Например, в ObjectARX SDK - там и документация и примеры и соответствующие сборки. Плохо искал.
По строке поиска "AutoCAD .NET API" можно найти например это: https://www.autodesk.ru/autodesk-developer-network/software-platform-russian/develop-autocad
 
3. Однозначно нужно использовать Visual Studio? Там, насколько я понял, под каждую версию AutoCAD своя версия ObectARX и своя версия VS
Не путай ObjectARX (C++) и AutoCAD .NET API. Для AutoCAD .NET API не нужно менять версию VS.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 22
  • Карма: 0
Re: Общие вопросы
« Ответ #2 : 18-07-2019, 05:09:04 »
Цитировать
Для AutoCAD .NET API не нужно менять версию VS.
Я бы с VS, вообще, связываться не хотел. VS Code (https://docs.microsoft.com/ru-ru/dotnet/core/tutorials/with-visual-studio-code).
C C++ тоже. (Дело даже не в сложности).
Последнее время (2 года) увлекался программированием (JavaScript в основном), но тут, конечно, C# ))

Я "набрел" на программирование так: мне надо было в чертеже поменять у всех текстовых сносок шрифт, а изменение стиля ничего не дало - не знаю чего там архитектор делал, но пришлось менять шрифт каждой выноски... И тогда подумалось - а вот бы сейчас
let mText = getMTextAll();
mText.forEach(el=>{el.font='isocpeur'});
посмотрел в сторону LISP, но он совсем далек от того, к чему я привык - Си-подобные языки
решил, что дело полезное и пригодится + не зря же изучал программирование )) (жаль только, что не С#, но суть понятна)
Подскажите, для чего программирование в AutoCAD, вообще, применяется?
Я так полагаю, что можно спецификации автоматически делать, кабельные журналы, хотя в Electrical это и  так есть...
Вот, если бы нейронку обучить саму проекты делать ))
Знаете, еще один вопрос:
А C# и VisualLisp соизмеримы по возможностям?



Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 282
  • Карма: 34
Re: Общие вопросы
« Ответ #3 : 18-07-2019, 08:28:30 »
Цитировать
мне надо было в чертеже поменять у всех текстовых сносок шрифт, а изменение стиля ничего не дало - не знаю чего там архитектор делал
StripMtext

NET API и Lisp сильно разные - тот же Lisp можно не компилировать, но и с NET API тоже можно так извернутся  ;D
Python может использовать COM и NET API - сильно по разному
VS Code сильно уступает VS, альтернативы VS есть, но они сильно хуже

Ещё для програмирования под AutoCAD полезно знать спецификацию dxf

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

  • ADN
  • *
  • Сообщений: 2076
  • Карма: 533
  • LISP/C#, AutoCAD/Civil 3D
  • Skype: zagor_dmtr
Re: Общие вопросы
« Ответ #4 : 19-07-2019, 12:43:35 »
Последнее время (2 года) увлекался программированием (JavaScript в основном)
посмотрел в сторону LISP, но он совсем далек от того, к чему я привык
Если абстрагироваться от синтаксиса, то мне JavaScript очень напомнил LISP - нет строгой типизации, много схожих функций, не нужна компиляция для запуска.
Подскажите, для чего программирование в AutoCAD, вообще, применяется?
Если кратко - для всего, что в голову придёт. Автоматизация действий, добавление недостающего функционала, адаптация функционала под наши местные требования и т.д. и т.п.
А C# и VisualLisp соизмеримы по возможностям?
C# имеет гораздо больше возможностей (даже в AutoCAD). Ну и плюсом - его можно использовать практически везде, VisualLisp - только в AutoCAD-based продуктах.

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

  • ADN OPEN
  • Сообщений: 22
  • Карма: 0
Re: Общие вопросы
« Ответ #5 : 19-07-2019, 15:39:55 »
Посмотрел C# - java какая-то ). Типы, синтаксис очень похожи. 
А насчёт JS, так на нем мало кто пишет уже, в основном Ts, который разработал тот же человек, что и C#
Я вот автоматизировать процесс разработки очень хочу,ттк много однообразных действий приходится выполнять, а это утомляет.
А можно ведь свою панельку разработать? Типа спдс, но свою, используя си шарп?
 

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

  • Administrator
  • *****
  • Сообщений: 9843
  • Карма: 1257
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Общие вопросы
« Ответ #6 : 19-07-2019, 16:39:56 »
А можно ведь свою панельку разработать? Типа спдс, но свою, используя си шарп?
Да.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN OPEN
  • Сообщений: 22
  • Карма: 0
Re: Общие вопросы
« Ответ #7 : 28-07-2019, 14:33:44 »
Начал читать книгу Полищук Н.Н. "Программирование AutoCAD" и меня удивило, что нужно "даунгрейдить" даже какие-то версии VS - очень странно... Это до сих пор так?
Например, AutoCAD Electrical 2020, VS последняя - не сработаются? - даже не смешно.
/* offtop
я просто заканчиваю проект, поэтому, на данный момент, времени совсем нет: по дороге домой и на работу посматриваю одним глазком.
охото по максимому подготовиться, а не "барахтаться" потом
*/
Посмотрел в сторону C#, но меня смутило очень сильно следующее:
Я хотел бы параллельно производить расчет, а для этого мне необходим проход по графу, поиск в графе определенных путей, сортировка устойчивая (не всегда, но для отчетов) и тд и тп.
В С++ я знаю где и как это делать, а вот с C# что-то "муть" какая-то: если набрать в поиске "C# алгоритмы", то в результатах какие-то пузырьковые сортировки и пр., а допустим при наборе "Си алгоритмы" или "С++ алгоритмы" получаем то, что нужно, да, собственно, и искать ничего не надо.
Вот и получается, что C# вроде как более совместимый, но Си "проще" лично для меня.
А можно их как-то скрещивать?
С инфой тоже туго: ссылка на objectarx.com не работает... По C# "Одно да потому" - сразу видно, что для совсем неподготовленных людей.
Существуют же где-то нормальная документация: типа иерархия объектов с методами и свойствами? (https://algs4.cs.princeton.edu/code/javadoc/ -  как пример. существуют подобные библиотеки для C#? это скорее не совсем по адресу, но все-таки).
вот это откуда берется?
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
как-то же эти библиотеки должны устанавливаться...
как-то всё не очевидно (
сделали бы справку, как по WinAPI, например: заходишь и по порядку всё разложено, а так какие-то циклические ссылки - просто охото выделить конкретно то, что мне нужно, а не читать 1500 страниц.
Где можно скачать ObjectARX?
Вот в среду закончу проект, отдохну несколько дней и займусь плотно )

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

  • Administrator
  • *****
  • Сообщений: 9843
  • Карма: 1257
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Общие вопросы
« Ответ #8 : 28-07-2019, 16:24:30 »
Начал читать книгу Полищук Н.Н. "Программирование AutoCAD" и меня удивило, что нужно "даунгрейдить" даже какие-то версии VS - очень странно... Это до сих пор так?
Например, AutoCAD Electrical 2020, VS последняя - не сработаются? - даже не смешно.
Если использовать ObjectARX (т.е. native или mixed C++), то действительно нужны определенные версии VS (для AutoCAD (Electrical) 2020 - VS 2017 с Update 3 (или больше)). Это специфика работы с native кодом для совместимости версии VC++ Runtime, ATL/MFC и т.д. AutoCAD и приложения.
Вот и получается, что C# вроде как более совместимый, но Си "проще" лично для меня.
А можно их как-то скрещивать?
Да. Ищи PInvoke. Хотя сейчас различных API для C# очень много. Видимо просто плохо искал.

Существуют же где-то нормальная документация: типа иерархия объектов с методами и свойствами? (https://algs4.cs.princeton.edu/code/javadoc/
Документация чего? C# (и вообще .NET) или AutoCAD .NET API? Первое ищи на сайте Microsoft, второе в составе ObjectARX SDK.
вот это откуда берется?
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
как-то же эти библиотеки должны устанавливаться..
Это всё описано в My First Plugin: https://knowledge.autodesk.com/support/autocad/learn-explore/caas/simplecontent/content/my-first-autocad-plug-overview.html
Это есть в ObjectARX SDK Docs: Managed .NET Developer's Guide (.NET)
« Последнее редактирование: 28-07-2019, 19:29:00 от Александр Ривилис »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 282
  • Карма: 34
Re: Общие вопросы
« Ответ #9 : 29-07-2019, 04:46:38 »
Глупо на C# реализовывать сортировку - она там уже есть, например List<T>.Sort
На самом деле на C++ тоже глупо её реализовывать, она там тоже есть...

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

  • Administrator
  • *****
  • Сообщений: 9843
  • Карма: 1257
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Общие вопросы
« Ответ #10 : 29-07-2019, 08:46:54 »
Глупо на C# реализовывать сортировку - она там уже есть, например List<T>.Sort
Речь шла про устойчивую сортировку (stable sort). Поэтому Enumerable.OrderBy
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Debalance

  • ADN Club
  • ****
  • Сообщений: 354
  • Карма: 8
    • Advanced software for AutoCAD
  • Skype: Debalance
Re: Общие вопросы
« Ответ #11 : 29-07-2019, 23:02:06 »
Начал читать книгу Полищук Н.Н. "Программирование AutoCAD" и меня удивило, что нужно "даунгрейдить" даже какие-то версии VS - очень странно...
А что это за "мулька" с даунгрейдом? Можно цитату из книжки "в студию", плиз? Разве AutoCAD Electrical имеет принципиальные отличия от AutoCAD Vanilla?

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

  • Administrator
  • *****
  • Сообщений: 9843
  • Карма: 1257
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Общие вопросы
« Ответ #12 : 29-07-2019, 23:14:18 »
Разве AutoCAD Electrical имеет принципиальные отличия от AutoCAD Vanilla?
Нет.
А что это за "мулька" с даунгрейдом?
Думаю, что имеется в виду тот факт, что для AutoCAD чаще всего требуется не последняя версия VS для ObjectARX. Впрочем при покупке VS Professional можно пользоваться предыдущими версиями в случае стандартной подписки: https://visualstudio.microsoft.com/ru/vs/pricing-details/#tab-a36ac8e7302c4a4bdea
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Debalance

  • ADN Club
  • ****
  • Сообщений: 354
  • Карма: 8
    • Advanced software for AutoCAD
  • Skype: Debalance
Re: Общие вопросы
« Ответ #13 : 29-07-2019, 23:31:37 »
Думаю, что имеется в виду тот факт, что для AutoCAD чаще всего требуется не последняя версия VS.
Ну эта тема не нова здесь на форуме. И как уже неоднократно обсуждалось, что при апгрейдах, в рамках одной студии, каких-то катастроф не наблюдалось. Или я что-то пропустил?

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

  • Administrator
  • *****
  • Сообщений: 9843
  • Карма: 1257
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Общие вопросы
« Ответ #14 : 29-07-2019, 23:37:22 »
И как уже неоднократно обсуждалось, что при апгрейдах, в рамках одной студии, каких-то катастроф не наблюдалось.
Что ты имеешь в виду под "апгрейдами, в рамках одной студии"? Например обновления VS 2015 Update 1, Update 2 и т.д.? Тогда речь здесь идёт не об этом. Речь шла о покупке VS таким образом, чтобы можно было использовать не только последнюю версию (на данный момент VS 2019), но и как минимум одну (а лучше две) предыдущую (VS 2017 и VS 2015).
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение