Сообщество программистов Autodesk в СНГ

ADN Club => Inventor API => Тема начата: R.I.Chernov от 29-07-2015, 16:40:43

Название: C#. С чего начать?
Отправлено: R.I.Chernov от 29-07-2015, 16:40:43
Доброго времени суток, уважаемые форумчане! Поимев небольшую практику в программировании с помощью VBA, решил изучать C#. К сожалению, абсолютно не знаю с чего начинать, в связи с чем обращаюсь к вам за помощью.  Если можете, помогите пожалуйста ответить на такие мои вопросы:

- Какую литературу (учебники, интернет ресурсы) можно почитать, в которых было бы много примеров решений различных задач (типовых, может быть вузовский курс). Программист я так себе, в связи с чем нужен опыт решения хотя бы чего-нибудь тривиального.

- Как начать работу с Autodesk Inventor с помощью С#? Как, подключиться к программе? Например, у меня создана форма, в которой можно ввести значение и нажать "применить" (это я вроде бы научился делать :) ) Я хочу, чтобы это значение было присвоено переменной в детали. Вопрос как? Если в VBA все было просто ThisAplication.ActiveDocument и т.д. , то в C# я не знаю, как мне обратиться к приложению и детали следом. Или как подгрузить объектную модель? Ну в общем с чего начинает нормальный пряморукий программист свою работу с Autodesk Inventor с помощью C#?

-Быть может я неправильно наметил курс своего изучения, тогда был бы признателен за совет и его корректировку!

П.С. Прошу прощения, если мои вопросы банальны, но больше негде искать помощи, ибо самому не разобраться, а нагуглить что-то не получается.
Название: Re: C#. С чего начать?
Отправлено: mikazakov от 29-07-2015, 17:52:35
С# синтаксически другой язык. Конечно если знать и С# и VB то проблем не будет.
Ну собственно начать нужно с хорошей книжки по С#, а потом почитать мой мануал, который висит в первой теме этого форума:
https://drive.google.com/folderview?id=0B655LZZcPbyNfk0yMUtKSFNMZEVMZHZ1WHhuT0FBSVNORGdzUExkMkhpdTFiOFl1ZkxxekU&usp=sharing
Там рассматриваются вопросы подключения через С# и откуда взять "Thisapplication".

Так же есть еще один мой мануал про работу с событиями в C#:
https://drive.google.com/folderview?id=0B655LZZcPbyNflFOODhYU0FSeVI5NmhHdEgwMkh6OHcyTE1keTBzdGk5R1dMalE4My1RNjg&usp=sharing

там же с мануалами рядом примеры
Читайте и задавайте вопросы
Название: Re: C#. С чего начать?
Отправлено: Александр Ривилис от 29-07-2015, 18:01:17
Ну собственно начать нужно с хорошей книжки по С#
Литература по программированию на .NET (http://adn-cis.org/forum/index.php?topic=400.msg845#msg845)
Я бы порекомендовал начать с Герберт Шилдт "C# 4.0. Полное руководство". Автор - популяризатор различных языков программирования. Пишет очень доступно для непрофессионалов.
Название: Re: C#. С чего начать?
Отправлено: R.I.Chernov от 29-07-2015, 18:07:24
Там рассматриваются вопросы подключения через С# и откуда взять "Thisapplication"
Я ознакомился с вашим мануалом, прежде, чем задавать свой вопрос. Но посчитал, что создание AddInn-ов что-то более сложное, чем нужно мне на начальном этапе. Быть может поэтому, я был недостаточно внимателен и пропустил нужную информацию. С другой стороны, мне объективно не хватало знаний, чтобы читать Ваш мануал с должной долей понимания - не дорос еще :( Спасибо, обязательно перечитаю!

Название: Re: C#. С чего начать?
Отправлено: R.I.Chernov от 29-07-2015, 18:14:40
Литература по программированию на .NET
Я бы порекомендовал начать с Герберт Шилдт "C# 4.0. Полное руководство". Автор - популяризатор различных языков программирования. Пишет очень доступно для непрофессионалов

Спасибо, Александр!
Название: Re: C#. С чего начать?
Отправлено: mikazakov от 29-07-2015, 18:23:31
Но посчитал, что создание AddInn-ов что-то более сложное, чем нужно мне на начальном этапе.
Сложнее совсем немного, Автодеск предоставляет шаблоны, которые генерируют начальную часть проекта на уровне "Хеллоу ворлд". На EXE-приложении для инвентора далеко не уедешь. К тому же, нормальную кнопку с картинкой можно сделать только в AddIn.
Название: Re: C#. С чего начать?
Отправлено: R.I.Chernov от 29-07-2015, 18:46:24
Сложнее совсем немного, Автодеск предоставляет шаблоны, которые генерируют начальную часть проекта на уровне "Хеллоу ворлд". На EXE-приложении для инвентора далеко не уедешь. К тому же, нормальную кнопку с картинкой можно сделать только в AddIn.
Спасибо, но мне пока нет необходимости делать кнопки. Или есть, но я об этом еще не подозреваю. Понимаете, я не программист, для меня создать собственный "класс" на текущий момент - недостижимое чудо, с которым предстоит разбираться :) Тогда как это азы и примитив объекто-ориентированного программирования. Очевидно, что я очень много не понимаю, например преимущества AddIn-ов, да и вобще что это такое толком. Но сейчас создать Exe-приложение, с которого я бы мог подключиться узлу и управлять его геометрией было бы для меня отличным результатом. Еще раз спасибо!
Название: Re: C#. С чего начать?
Отправлено: mikazakov от 29-07-2015, 19:10:50
Но сейчас создать Exe-приложение, с которого я бы мог подключиться узлу и управлять его геометрией было бы для меня отличным результатом.

Да я тоже как бы инженер-механик, а не программист. Просто иногда становится тесно в рамках обычного интерфейса.
Вот пример подключения на си шарпе:
Код - C# [Выбрать]
  1. class Program
  2.  {
  3.  private static Inventor.Application m_InvApp;
  4.  static void Main(string[] args)
  5.  {
  6.  try//Получения объекта приложения Inventor
  7.  {
  8.  m_InvApp = System.Runtime.InteropServices.Marshal.
  9.  GetActiveObject("Inventor.Application") as Inventor.Application;
  10.  }
  11.  catch//Загрузка Inventor
  12.  {
  13.  m_InvApp = Activator.CreateInstance(Type.GetTypeFromProgID
  14.  ("Inventor.Application")) as Inventor.Application;
  15.  m_InvApp.Visible = true;
  16.  }
  17. //Программа
  18.  //Цикл обработки сообщений, если нужно конечно
  19.  System.Windows.Forms.Application.Run();
  20.  }
  21.  }
  22.  
Ссылку на библиотеку типов инвентора нужно не забыть подключить.
а вообще иногда лучше начинать рассуждение с того , что нужно сделать, а уже потом как это делать.
Название: Re: C#. С чего начать?
Отправлено: R.I.Chernov от 29-07-2015, 19:31:36
Ссылку на библиотеку типов инвентора нужно не забыть подключить.

Не могли бы вы пояснить, как это делать?
П.С. Большое спасибо за ваш ответ, завтра же попробую.
Название: Re: C#. С чего начать?
Отправлено: Александр Ривилис от 29-07-2015, 19:50:17
Да я тоже как бы инженер-механик, а не программист.
Напоминаю про форматирование кода на форме (у меня в подписи).
Название: Re: C#. С чего начать?
Отправлено: mikazakov от 29-07-2015, 20:18:46
Не могли бы вы пояснить, как это делать?
В си-шарпе ссылки находятся в обозревателе решения, через контекстное меню вызывается менеджер ссылок. Есть два равносильных подхода(https://adn-cis.org/forum/proxy.php?request=http%3A%2F%2F&hash=c22fb92101a29a8eea42a98c45872d65):

ссылка на COM (см. первый скрин)

и ссылка на готовую сборку-обертку (см. второй скрин)
 
после добавления ссылки обязательно сделать в свойствах ссылки "Внедрить типы взаимодействия" = False (см. третий скрин)
скрины во вложении
Название: Re: C#. С чего начать?
Отправлено: R.I.Chernov от 30-07-2015, 08:36:09
В си-шарпе ссылки находятся в обозревателе решения, через контекстное меню вызывается менеджер ссылок. Есть два равносильных подхода:
Спасибо огромное! Теперь понял, про что вы говорили.
Название: Re: C#. С чего начать?
Отправлено: R.I.Chernov от 04-08-2015, 14:16:46
Спасибо всем за ответы. Не скажу, что полностью разобрался, но вектор развития теперь понятен!