Как работает oExtrude.SetAffectedBodies?

Автор Тема: Как работает oExtrude.SetAffectedBodies?  (Прочитано 13487 раз)

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

Оффлайн R.I.Chernov

  • ADN Club
  • *****
  • Сообщений: 568
  • Карма: 18
Re: Как работает oExtrude.SetAffectedBodies?
« Ответ #15 : 09-04-2015, 19:43:28 »
VBA - это Visual Basic for Application

Спасибо,Александр, но понятнее не стало. Нажимаю Alt+F11 в экселе и в инвенторе. Открываются две идентичные по интерфейсу программы. В экслеле в сведении о программе написано что это "Visual Basic for Application", в инвенторе что это "Visual Basic". Получается, в них интегрированы разные программы?

П.С. Перечитал свое сообщение, вероятно со стороны непонятно, что именно я не "догоняю". Смотрите, я всегда считал так:
(напоминаю, что я конструктор, а не программист :) )
Есть такой язык Visual Basic, мне не известный. Майкрософт его слегка упростила и адаптировала под работу например с Excel или Word и назвала VBA. Чем именно упростила, я не в курсе, понимал лишь то, что эти два языка - не одно и то же. Далее где-то вычитал что Автодеск договорилась с Майкрософт, чтобы в свои продукты VBA вставлять. В связи с чем и считал, что и в инвенторе и в автокаде стоит VBA, такой же как в excel по сути, но со своей объектной моделью. Сегодня я вычитал в "информации о программе", что работаю я в Visual Basic. И это новое знание идет в разрез со всем вышеуказанным моим представлением о данной теме. Тогда как Алексей Романов пишет, что работает в "VBA 7.1 (AI2015)" , что совсем меня ступорит: "у меня в 2013AI VB, а у него в 2015 VBA?" Помогите мне разобраться пожалуйста! :)
« Последнее редактирование: 09-04-2015, 19:58:55 от R.I.Chernov »
В программировании я новичок...но ненадолго! ;)

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Как работает oExtrude.SetAffectedBodies?
« Ответ #16 : 09-04-2015, 21:55:07 »
У меня нет Inventor'а никакой версии, зато есть AutoCAD. Смотрим внимательно на окно About VBA в AutoCAD 2008:

Как видишь в одном месте написано VBA, в другом Visual Basic.
А в AutoCAD 2015 так:

А вообще для таких вопросов есть Гугл, Википедия и т.д.
« Последнее редактирование: 09-04-2015, 22:12:42 от Александр Ривилис »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей Романов

  • ADN Club
  • **
  • Сообщений: 87
  • Карма: 20
Re: Как работает oExtrude.SetAffectedBodies?
« Ответ #17 : 10-04-2015, 05:38:13 »
У меня нет Inventor'а никакой версии
В АИ точно как в Акаде. Тут есть различие в разрядности, версия VBA 6.5 - 32 разрядная (АИ2013), 7.1 - 64 разрядная (с АИ2014)...



Оффлайн R.I.Chernov

  • ADN Club
  • *****
  • Сообщений: 568
  • Карма: 18
Re: Как работает oExtrude.SetAffectedBodies?
« Ответ #18 : 10-04-2015, 14:13:12 »
Как видишь в одном месте написано VBA, в другом Visual Basic.
Ну да, у меня тоже внизу написано VBA, не заметил. Спасибо.
В программировании я новичок...но ненадолго! ;)

Оффлайн Павел Тер-МикаэлянАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 124
  • Карма: 5
Re: Как работает oExtrude.SetAffectedBodies?
« Ответ #19 : 10-04-2015, 14:34:24 »
я попытаюсь задать еще раз вопрос, может в тот раз не понятно прозвучало:
Находясь в контексте детали после создания коллекции объектов и занесения в нее тел Call ObjectColl.Add(oBody) я пытаюсь добавить эту коллекцию в существующий вырез Call oExtrude.SetAffectedBodies(ObjectColl)... После такого добавления внутри каждого члена коллекции все исчезает, например в ObjectColl.Item(1) все пусто, хотя число членов остается, то есть ObjectColl.Count есть, но использовать ObjectColl снова я не могу... приходится ее очищать ObjectColl.Clear и заносить туда снова тела.... Может кто-нибудь знает, почему так происходит?

Оффлайн Алексей Романов

  • ADN Club
  • **
  • Сообщений: 87
  • Карма: 20
Re: Как работает oExtrude.SetAffectedBodies?
« Ответ #20 : 15-04-2015, 18:24:24 »
приходится ее очищать ObjectColl.Clear и заносить туда снова тела.... Может кто-нибудь знает, почему так происходит?
В описании не нашел, почему так работает, можно долго кувыркаться...
Попробуй код заполнения коллекции оформить функцией и вызывать ее перед использованием коллекции...

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Как работает oExtrude.SetAffectedBodies?
« Ответ #21 : 15-04-2015, 19:14:07 »
Может кто-нибудь знает, почему так происходит?
Думаю что это побочный эффект. В AutoCAD API тоже такое бывает, когда функция воздействует на свои аргументы, не смотря на то, что вроде бы она такого делать не должна.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Павел Тер-МикаэлянАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 124
  • Карма: 5
Re: Как работает oExtrude.SetAffectedBodies?
« Ответ #22 : 16-04-2015, 15:17:02 »
Ясно, спасибо за ответы!!