Последние сообщения

Последние сообщения

Страницы: [1] 2 3 ... 10
1
AutoCAD .NET API / Re: Сложный Jig.
« Последний ответ от Александр Ривилис 29-01-2022, 02:12:55 »
Балиев,
Думаю, что Вильдар абсолютно прав. Более того, тебе не нужно копировать блок во время Jig, а только отрисовывать его в нужных точках и с нужным поворотом (т.е. вся работа по отрисовке происходит в методе WorldDraw или ViewportDraw). А непосредственное копирование блока производится только после удачного завершения работы DrawJig. Мне кажется, что этот метод был бы оптимальным.
2
AutoCAD .NET API / Re: Сложный Jig.
« Последний ответ от Вильдар 28-01-2022, 21:57:41 »
Посмотри DrawJig, там можно рисовать произвольное количество объектов.
3
AutoCAD .NET API / Сложный Jig.
« Последний ответ от Балиев 28-01-2022, 19:05:24 »
Добрый день,

Есть следующая задача: необходимо многократно копировать выбранный объект (блок) через определенный интервал. При этом необходимо, чтобы копирование проходило динамически в соответствии с расстоянием курсора от начальной точки. Одновременно с этим необходимо, чтобы отслеживался еще и угол поворота линии « начальная точка – текущая точка», и в соответствии с этим углом группа скопированных объектов поворачивалось бы относительно начальной точки.

Я пытаюсь решить эту задачу используя технологию Jig. У  Kean Walmsley я нашёл код, который позволяет динамические вращать выбранный объект: https://through-the-interface.typepad.com/through_the_interface/2008/03/using-a-jig-to.html. Осталось научиться динамически копировать выбранный объект в соответствии с расстоянием от курсора до начальной точки. В этом, собственно, и загвоздка. Я понимаю что в какой то момент мне необходимо переопределять блок таким образом, чтобы объекты в нем заполняли пространство от начальной точки до текущего положения курсора, Но мне совершенно непонятно в каком месте кода мне нужно выполнять это переопределение.

Заранее благодарен за любые идеи решения этой задачи.
4
Посмотреть
oRow.ComponentDefinitions.count

как на уровне oRow выудить информацию о том, что деталь погашена?
Наверное все таки деталь подавленная, а не погашенная. Погашенная, это когда она не видимая.
Подавленная в версиях до 2022 в память компьютера вообще не загружалась, поэтому попытка к ней обратиться выдаёт ошибку.
В 2022 ситуация другая
 


А так можно по полному имени из BomRow.ReferencedFileDescriptor.FullFileName поискать сборке AssemblyComponentDefinition.Occurences там можно найти свойство Occurence.Suppressed
5
еще есть вопрос. Если деталь погашена, то при попытке получить
Код - vb.net [Выбрать]
  1. Dim oCompDef As ComponentDefinition = oRow.ComponentDefinitions.Item(1)
выскакивает ошибка и при поиощи Try Catch я могу вычислить погашенную деталь. Но использовать Try Catch не комильфо, моло ли по каким причинам ошибка выскочила. как на уровне oRow выудить информацию о том, что деталь погашена?
Код - vb.net [Выбрать]
  1. Dim oRow As BOMRow = oBomRows.Item(i)
6
Не помогает...
Если в строке "Dim oBOMView As BOMView = oBOM.BOMViews.Item("Структурированный")" написать вместо "Структуированный " какой нибудь бред вроде "йцукен"
А так пробовали? :
Код - vb.net [Выбрать]
  1.             Dim lang As String = ""
  2.             If m_inventorApplication.LanguageName = "English" Then
  3.                 lang = "Structured"
  4.             ElseIf m_inventorApplication.LanguageName = "Russian" Then
  5.                 lang = "Структурированный"
  6.             End If
  7.             fBOMView = fBOM.BOMViews.Item(lang)
А смысл? У меня русский. И если вписать "Структуированный" то все работает. Но не везде. Если поставить циферку 1 то все работает везде.
7
Не помогает...
Если в строке "Dim oBOMView As BOMView = oBOM.BOMViews.Item("Структурированный")" написать вместо "Структуированный " какой нибудь бред вроде "йцукен"
А так пробовали? :
Код - vb.net [Выбрать]
  1.             Dim lang As String = ""
  2.             If m_inventorApplication.LanguageName = "English" Then
  3.                 lang = "Structured"
  4.             ElseIf m_inventorApplication.LanguageName = "Russian" Then
  5.                 lang = "Структурированный"
  6.             End If
  7.             fBOMView = fBOM.BOMViews.Item(lang)
8
Давайте пример вашей сборки небольшой в виде файла, и я так понимаю надо просто доступ к структурированному списку
я посмотрю что там не так
Мне кажется дело не в сборке, а в моем коде или инвенторе. Инвентор у меня 2020.
9
Код - vb.net [Выбрать]
  1.     Dim oBOMView As BOMView = oBOM.BOMViews.Item("Без имени")
не работает.
Работает только так:
Код - vb.net [Выбрать]
  1.     Dim oBOMView As BOMView = oBOM.BOMViews.Item(1)

Если написать так:
Код - vb.net [Выбрать]
  1.         oBOM = _InvDoc.ComponentDefinition.BOM          'Получаем ссылку на объект BOM, предоставляемый описанием сборки — её объектом ComponentDefinition.
  2.         oBOM.StructuredViewEnabled = True
  3.         oBOM.StructuredViewFirstLevelOnly = True
  4.         Dim oBOMView As BOMView = oBOM.BOMViews.Item(1)
то ошибка выпадает на строке:
Код - vb.net [Выбрать]
  1. oBOM.StructuredViewFirstLevelOnly = True
при уровне детализации "Главный" эта строка ничего не меняет True, False, без разницы. Получаю одно и то же. Впрочем как и строка
Код - vb.net [Выбрать]
  1.      oBOM.StructuredViewEnabled = True
почему то ни на что не влияет... Беда.
10
Давайте пример вашей сборки небольшой в виде файла, и я так понимаю надо просто доступ к структурированному списку
я посмотрю что там не так
Страницы: [1] 2 3 ... 10