Форум пользователей ПО АСКОН

Профессиональные вопросы => Программирование приложений => Тема начата: lavgirb от 23.10.23, 16:20:39

Название: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: lavgirb от 23.10.23, 16:20:39
Если на ассоциированном виде выделить линию и в контекстном меню выбрать "Свойства компонента", то в табличке можно прочитать свойства и их значения.
Как программно имея объект линии получить (выйти на) свойства компонента? Возможно ли это?
Хотя бы "в каком направлении копать"...
Спасибо.

Свойство компонента.jpg
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: Nipal от 23.10.23, 16:26:51
Конечно можно, например FindObj, даже выделять не надо, выделенный Groupp=0 - группа селектирования.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: lavgirb от 23.10.23, 16:39:16
Цитата: Nipal от 23.10.23, 16:26:51Конечно можно, например FindObj, даже выделять не надо, выделенный Groupp=0 - группа селектирования.
Спасибо.
Я понял, в примере из SDK показано, что найдется линия, ближайшая к точке. А компонент сборки как определить?

{
reference pLine;
LineSeg(0, 0, 50, 50, 1);
LineSeg(50, 50, 70, 20, 1);
pLine = FindObj(20, 20, 5);
LightObj(pLine, 1);
}
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: Nipal от 23.10.23, 16:41:20
А думать?
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: lavgirb от 23.10.23, 16:58:18
Цитата: Nipal от 23.10.23, 16:41:20А думать?
Думать готов )
Могу определить вид, определить сборку, открыть сборку, пройти по компонентам. А как связать геометрический объект на виде с компонентом в сборке пока не пойму.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: p3452 от 23.10.23, 19:42:37
Пожалуйста, пользуйтесь ПОИСКОМ по Форуму.
Вот отлично помню, что на ЭТУ тему уже была дискуссия...
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: Nipal от 23.10.23, 19:51:19
Цитата: p3452 от 23.10.23, 19:42:37Пожалуйста, пользуйтесь ПОИСКОМ по Форуму.
Вот отлично помню, что на ЭТУ тему уже была дискуссия...
А некоторые темы, удачно удалили.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: feron от 23.10.23, 21:27:15
Вот тут можно извлечь имена объектов

https://forum.ascon.ru/index.php?topic=38281.0

Затем открыть в хелпе, берем IAssociationView у него есть метод FindFace который возвращает IModelObject от него и получите все данные.

вот тут https://forum.ascon.ru/index.php?topic=38258.0 полуфабрикатное приведение имен.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: lavgirb от 24.10.23, 09:33:41
Цитата: p3452 от 23.10.23, 19:42:37Пожалуйста, пользуйтесь ПОИСКОМ по Форуму.
Вот отлично помню, что на ЭТУ тему уже была дискуссия...
p3452, вероятно, Ваш ПОИСК изысканнее моего. Но я подозреваю, что Вы и не искали.
Потому что ссылки от Вас не последовало.
Я думаю, что Вы можете реабилитироваться в моих глазах, если приведете ссылку, найденную в результате Вашего ПОИСКА на ЭТУ тему.
А отличная память - не аргумент в дискуссии. Вы и сами это должны понимать.


Цитата: feron от 23.10.23, 21:27:15Вот тут можно извлечь имена объектов

https://forum.ascon.ru/index.php?topic=38281.0

Затем открыть в хелпе, берем IAssociationView у него есть метод FindFace который возвращает IModelObject от него и получите все данные.

вот тут https://forum.ascon.ru/index.php?topic=38258.0 полуфабрикатное приведение имен.
У меня КОМПАС-3D V19
В SDK такая информация:

ЦитироватьIAssociationView - методы

В этом разделе:

CreateLocalView - Местный вид
Метод FindFace отсутствует.


Пока просматриваю
FindObjectsByPoint - Найти объекты по точке из методов IPart7...
Вероятно, надо понять, как точка на виде соотносится с точкой в модели (по координатам разумеется).

Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: p3452 от 24.10.23, 09:55:03
1. Вот с ЭТОГО надо было начинать:
Цитата: lavgirb от 24.10.23, 09:33:41У меня КОМПАС-3D V19
2. Мой "поиск" действительно "изысканней":
Для v20.png
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: lavgirb от 24.10.23, 12:38:57
Цитата: p3452 от 24.10.23, 09:55:031. Вот с ЭТОГО надо было начинать:
Если надо, то всем.

Цитата: p3452 от 24.10.23, 09:55:032. Мой "поиск" действительно "изысканней":
Для v20.png
К сожалению, это не ссылка после Вашего ПОИСКА по Форуму ЭТОЙ темы.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: p3452 от 24.10.23, 13:06:25
lavgirb, специально для Вас - выделено "синеньким" и даже три '+' перед названием ТЕМЫ поставлены - та самая "дискуссия" о которой упоминалось!!!
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: lavgirb от 24.10.23, 13:59:31
Цитата: p3452 от 24.10.23, 13:06:25lavgirb, специально для Вас - выделено "синеньким" и даже три '+' перед названием ТЕМЫ поставлены - та самая "дискуссия" о которой упоминалось!!!

А это у Вас так форум отображается. Понятно.

Только вопрос остался. У меня пока КОМПАС V19.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: feron от 24.10.23, 18:37:26
Считаю что нужно добавить в IAssociationViewElements возможность переносить на чертеж атрибуты/свойства -> граней/ребер/вершин и затем возможность по ним проходится.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: Nipal от 24.10.23, 18:47:37
Цитата: feron от 24.10.23, 18:37:26Считаю что нужно добавить в IAssociationViewElements возможность переносить на чертеж атрибуты/свойства -> граней/ребер/вершин и затем возможность по ним проходится.
ProjectionMatrix - Матрица ассоциативного вида, это не оно?
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: feron от 24.10.23, 18:52:36
Nipal, а как получить дерево объектов ? И например извлечь имена их ?
ProjectionMatrix  - мало чего написано в хелпе..

1.jpg

Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: Nipal от 24.10.23, 18:58:52
Это точка в проекциях.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: feron от 24.10.23, 19:25:27
В К16 есть библиотека расстановки позиций она каким то образом понимает сколько и какие объекты расположены на виде более того она высчитывает площади их и предоставляет опцию расстановки по наибольшей площади..

Я смотрю в хелпе по типу документа/ окна документа/ объекты навигации  затем начал искать по возможным свойствам и нет не чего что бы привело к дереву чертежа.

1.jpg
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: feron от 24.10.23, 19:50:47
Цитата: Nipal от 24.10.23, 18:47:37ProjectionMatrix - Матрица ассоциативного вида, это не оно?

Этого нет в К16..

Я так понимаю остается только одно - приведение интерфейса какой то части сборки к чертежу (QueryInterface) но не выходит..
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: Nipal от 24.10.23, 19:55:37
Цитата: feron от 24.10.23, 19:50:47Этого нет в К16..

Я так понимаю остается только одно - приведение интерфейса какой то части сборки к чертежу (QueryInterface) но не выходит..
Остаётся откатится на легендарную версию 5.11.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: feron от 24.10.23, 20:17:30
Цитата: Nipal от 24.10.23, 19:55:37Остаётся откатится на легендарную версию 5.11.

А как это версия поможет разобраться в вопросе ?
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: Nipal от 24.10.23, 20:32:42
Цитата: feron от 24.10.23, 20:17:30А как это версия поможет разобраться в вопросе ?
Будете у истоков стоять.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: feron от 24.10.23, 20:36:25
Цитата: Nipal от 24.10.23, 20:32:42Будете у истоков стоять.

В таком случае она должна быть чуть ли не в исходном коде.. хотя даже если и увижу его, там мне еще месяцы все рассортировать что бы понять что и как строить.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: feron от 24.10.23, 23:43:39
Установил, просмотрел папку AppTools - нашел примеры и хелп но пока не чего не увидел по навигации в дереве чертежа. По той библиотеке которая работает с простановкой позиций - я так понял она И через спецификацию работает - как только ее обнулил библиотека сгенерировала пустые позиции. Открыл ее в редакторе библиотек - там что то много всяких расчетов ведутся но так и не увидел как она извлекает объекты и проходится по ним. Полагал что вопрос достигается только инструментами К а там все я так понял высчитывается..  :%:
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: lavgirb от 26.10.23, 08:36:36
В общем, думаю, алгоритм может быть таким. Для КОМАПАС-3D V19 )
1 Определяем reference ближайшей линии (даже не линии, а любого объекта изображения) по координатам точки в сборочном чертеже (например, конца линии-выноски).
2 Открываем сборку и последовательно исключаем из расчета детали, каждый раз проверяя reference в своей точке в чертеже.
3 Как только reference в нашей точке не совпадет с первым это и будет означать, что точка лежит на изображении последней детали, исключенной из расчета.
4 То есть мы нашли компонент сборки на котором лежит точка в чертеже, ближайшая к линии.
Это идея. Реализация, наверное, может быть разной, в зависимости от задач.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: feron от 26.10.23, 09:32:48
Кажись так себе идея - вот получили reference линии она же образующая цилиндрической поверхности и как ее у модели потом извлечь?

Допустим - есть ЛСК у вида (вид/разрез/местный вид) получаем параметры вида и затем получаем координаты x, y, z точки что лежит внутри объекта и по этим координатам находим деталь в сборке ?

Дополнение: опять же как найти на виде третью координату ?
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: lavgirb от 26.10.23, 10:13:13
Цитата: feron от 26.10.23, 09:32:48Кажись так себе идея - вот получили reference линии она же образующая цилиндрической поверхности и как ее у модели потом извлечь?
Мне нужно решить другую задачу, изложенную выше: зная точку или линию на виде чертежа сборки определить на каком компоненте сборки она лежит.
Не думаю, что для моей задачи идея так уж и плоха. Буду пробовать. )
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: feron от 26.10.23, 10:17:27
Так я об этом и пишу:
Цитата: feron от 26.10.23, 09:32:48вот получили reference линии она же образующая цилиндрической поверхности и как ее у модели потом извлечь?
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: lavgirb от 26.10.23, 10:58:51
Цитата: feron от 26.10.23, 10:17:27Так я об этом и пишу:
Вы пишите о своем. А я свой вопрос задал в этой теме другой.
Цитата: undefinedКак по линии на ассоциированном виде выйти на свойства компонента?
Думаю, не стоит настаивать на своем, когда об никто не спрашивал.
Если есть вопрос, то лучше его задавать не в чужой теме, а в своей, в новой.
Вероятность получить квалифицированный ответ будет выше.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: feron от 26.10.23, 11:55:01
lavgirb Вам нужно научиться изъясняться яснее.. а не спрашивать то незнамо что.. филькину грамоту развели -> да абы да кабы.

за это время уже можно было раза три наброска кода сделать ..

А то что вы предложили - это полная ХЕРЬНЯ.. (с  языка сорвалось)
такой огород городить не кому не нужно.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: lavgirb от 26.10.23, 12:24:28
Цитата: feron от 26.10.23, 11:55:01lavgirb Вам нужно научиться изъясняться яснее.. а не спрашивать то незнамо что.. филькину грамоту развели -> да абы да кабы.

за это время уже можно было разы три наброска кода сделать ..

А то что вы предложили - это полная ХЕРЬНЯ.. (с  языка сорвалось)
такой огород городить не кому не нужно.
Кому не нужно, то сюда не пишет
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: feron от 26.10.23, 13:02:58
Цитата: lavgirb от 26.10.23, 12:24:28Кому не нужно, то сюда не пишет

оно и видно аж пальцев одной руки хватит..
скорее всего всем кому надо было - они уже мертвы в этом скоростном рынке.

на этом тему можно закрывать.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: midreyk от 27.10.23, 16:19:26
Кстати, по линии можно получить объект спецификации - может это как-то поможет.
specification_base_objects.GetSpecificationObjectsForGeom
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: feron от 27.10.23, 18:01:56
Наверно есть еще способ..
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: lavgirb от 28.10.23, 08:58:18
Цитата: midreyk от 27.10.23, 16:19:26Кстати, по линии можно получить объект спецификации - может это как-то поможет.
specification_base_objects.GetSpecificationObjectsForGeom
Спасибо.
Но там не один объект, а массив. Как его разобрать не понятно.
Да и с объектами спецификации не очень охота связываться.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: feron от 28.10.23, 09:35:03
Цитата: feron от 27.10.23, 18:01:56Наверно есть еще способ..

У меня в сборочном чертеже нет спецификации - там при выборе редактирование объектов - пустой лист. И в этом случае библиотека позиций работает.
НО есть в контекстном меню - 2 команды: 1) Выделить компонент 2) Выделить тело - но как к ним программно прийти не понятно - в хелпе не чего подобного не находится.


Снимок2.PNG
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: lavgirb от 29.10.23, 14:21:33
Цитата: lavgirb от 26.10.23, 08:36:36В общем, думаю, алгоритм может быть таким. Для КОМАПАС-3D V19 )
1 Определяем reference ближайшей линии (даже не линии, а любого объекта изображения) по координатам точки в сборочном чертеже (например, конца линии-выноски).
2 Открываем сборку и последовательно исключаем из расчета детали, каждый раз проверяя reference в своей точке в чертеже.
3 Как только reference в нашей точке не совпадет с первым это и будет означать, что точка лежит на изображении последней детали, исключенной из расчета.
4 То есть мы нашли компонент сборки на котором лежит точка в чертеже, ближайшая к линии.
Это идея. Реализация, наверное, может быть разной, в зависимости от задач.
Попробовал.
При исключении из расчета компонентов исключаются из расчета производные объекты, которые тоже пропадают с вида.
Это не позволит использовать предполагаемый алгоритм.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: Nipal от 02.11.23, 10:13:21
Цитата: lavgirb от 26.10.23, 08:36:36В общем, думаю, алгоритм может быть таким. Для КОМАПАС-3D V19 )
1 Определяем reference ближайшей линии (даже не линии, а любого объекта изображения) по координатам точки в сборочном чертеже (например, конца линии-выноски).
2 Открываем сборку и последовательно исключаем из расчета детали, каждый раз проверяя reference в своей точке в чертеже.
3 Как только reference в нашей точке не совпадет с первым это и будет означать, что точка лежит на изображении последней детали, исключенной из расчета.
4 То есть мы нашли компонент сборки на котором лежит точка в чертеже, ближайшая к линии.
Это идея. Реализация, наверное, может быть разной, в зависимости от задач.
Всё проще.
Думаю, оптимальный вариант - ExecuteKompasCommand.
PS. Но команды не документированы.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: lavgirb от 02.11.23, 13:04:22
Цитата: Nipal от 02.11.23, 10:13:21Всё проще.
Думаю, оптимальный вариант - ExecuteKompasCommand.
PS. Но команды не документированы.
На нет и суда нет )

Нам установили V22. Там эта проблема отпала, надеюсь.
Вероятно, в нем ссылка в номере позиции на полке линии-выноски как-то указывает на номер позиции в атрибуте "Позиция" компонента.
Проставил на сборочном чертеже номера позиций.
Потом программно поменял их в "Позиции" у компонентов в сборке.
На сборочном чертеже номера позиций поменялись в соответствии со сделанными изменениями. Прикольно )

Процесс пошел не от чертежа к свойствам компонента сборки, а от компонента сборки к чертежу.
Но главное результат: номера позиций в спецификации Excel соответствуют номерам позиций в сборочном чертеже КОМПАС.
Без дополнительных усилий со стороны конструктора.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: Nipal от 02.11.23, 13:09:10
Цитата: lavgirb от 02.11.23, 13:04:22На нет и суда нет )

Нам установили V22. Там эта проблема отпала, надеюсь.
Вероятно, в нем ссылка в номере позиции на полке линии-выноски как-то указывает на номер позиции в атрибуте "Позиция" компонента.
Проставил на сборочном чертеже номера позиций.
Потом программно поменял их в "Позиции" у компонентов в сборке.
На сборочном чертеже номера позиций поменялись в соответствии со сделанными изменениями. Прикольно )
Удачи.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: lavgirb от 04.11.23, 06:47:37
Цитата: Nipal от 02.11.23, 13:09:10Удачи.
Спасибо.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: lavgirb от 09.11.23, 14:10:16
Цитата: lavgirb от 02.11.23, 13:04:22Нам установили V22. Там эта проблема отпала, надеюсь.
Вероятно, в нем ссылка в номере позиции на полке линии-выноски как-то указывает на номер позиции в атрибуте "Позиция" компонента.
Проставил на сборочном чертеже номера позиций.
Потом программно поменял их в "Позиции" у компонентов в сборке.
На сборочном чертеже номера позиций поменялись в соответствии со сделанными изменениями. Прикольно )
Добавлю. Чтобы номер позиции на сборочном чертеже проставлялся из атрибута "Позиция" компонента сборки, надо в чертеже удалить описания спецификаций в окне по команде Управление > Спецификация > Описания спецификаций.
В противном случае номера позиций на чертеже проставляются из спецификации КОМПАС, чего нам не надо.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: feron от 09.11.23, 17:22:22
Цитата: Nipal от 02.11.23, 10:13:21Думаю, оптимальный вариант - ExecuteKompasCommand.
PS. Но команды не документированы.

Вот же жизнь странная штука видео записать и выложить время нашлось а черкануть эти команды - нет.. я запустил цикл из -10 000 до 10 000 так у меня Компас паркинсон поймал :)
Я конечно исключил команды из хелпа.

Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: Nipal от 09.11.23, 17:29:33
Цитата: feron от 09.11.23, 17:22:22Вот же жизнь странная штука видео записать и выложить время нашлось а черкануть эти команды - нет.. я запустил цикл из -10 000 до 10 000 так у меня Компас паркинсон поймал :)
Я конечно исключил команды из хелпа.
Извиняйте, я потратил на это дня три, правда не напрягался, сделал себе спец приложение, не только для этой задачи, оказалось я зря потратил время.
PS. Ищите, только в минус уходить не надо.
    Да и цикл вещь хорошая, но в данном случае нужно щупать, четко за вымя.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: feron от 09.11.23, 17:34:49
Цитата: Nipal от 09.11.23, 17:29:33Извиняйте, я потратил на это дня три, правда не напрягался, сделал себе спец приложение, не только для этой задачи, оказалось я зря потратил время.

Согласен! НО вот почему то не кто не понимает намеки на то что бы ну скинуть да хотябы 1000 руб на пиво :) за этот вечер и написал бы скрипт корректировки штриховки. Не понимают или не хотят или вопрос не стоит того.

Цитата: Nipal от 09.11.23, 17:29:33Ищите, только в минус уходить не надо.
а я уже сталкивался с подобной задачей и там отрицательные значения что то выполняли..

Тут есть товариШ alex_python, он монетизирует знания форума и как то вот не вот.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: Nipal от 09.11.23, 17:37:54
Цитата: feron от 09.11.23, 17:34:49Согласен! НО вот почему то не кто не понимает намеки на то что бы ну скинуть да хотябы 1000 руб на пиво :) за этот вечер и написал бы скрипт корректировки штриховки. Не понимают или не хотят или вопрос не стоит того.

Тут есть товариШ alex_python, он монетизирует знания форума и как то вот не вот.
Вам это никто не запрещает, создайте тему делаю любые программы за ПИВО.
Можете с ним объединится alex_python, я посмотрел ничего сверхъестественного не увидел.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: feron от 09.11.23, 17:41:22
Цитата: Nipal от 09.11.23, 17:37:54Вам это никто не запрещает, создайте тему делаю любые программы за ПИВО.

я уже все интырнеты написал и видосы тоже выкладывал с эзгибицианизмом кода :) Не идет спрос..
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: Nipal от 09.11.23, 17:47:25
Цитата: feron от 09.11.23, 17:41:22я уже все интырнеты написал и видосы тоже выкладывал с эзгибицианизмом кода :) Не идет спрос..
Тут свои видео прикрепите, только в отдельной своей теме, мы посмотрим.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: feron от 10.11.23, 18:45:52
Былоб очень удобно проходится по дереву чертежа.

_Снимок13.jpg
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: Михаил88 от 11.11.23, 14:24:56
IProductDataManager

Screenshot_1.bmp

Результат выполнения - на ассоциативном виде выделилась геометрия принадлежащая детали трубка.

Screenshot_2.bmp
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: feron от 11.11.23, 19:44:38
Я все гадал что же такое "дерево СЧИ"..
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: Nipal от 13.11.23, 02:06:39
Цитата: Михаил88 от 11.11.23, 14:24:56IProductDataManager
Screenshot_1.bmp
Слишком много букв, одна строка кода ExecuteKompasCommand.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: Валерий Изранов от 13.11.23, 06:22:43
Отчего текст программы в виде картинки и его нельзя скопировать?
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: Михаил88 от 13.11.23, 08:39:44
Мой проект 1 2023-11-13_10-34-48.gif
ExecuteKompasCommand
Как свойство компонента получать по выделенному объекту нашел команду, как подсвечивать компонент и тело по выделенному объекту тоже нашел команду. В дереве компонент подсвечивается, но пока не нашел команду показать в дереве, чтобы дерево само раскрывалось.

В поисках мне помогла Ваша подсказка
Цитата: Nipal от 09.11.23, 17:29:33Да и цикл вещь хорошая, но в данном случае нужно щупать, четко за вымя.
Спасибо!

PS:
Если делать выделение через IProductDataManager то деталька будет подсвечиваться на всех ассоциативных видах(если на виде присутствует геометрия этой детали), а не только на одном.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: Михаил88 от 13.11.23, 21:19:58
ExecuteKompasCommand

Мой проект 1 2023-11-13_23-11-12.gif

Нашел и команду - показать в дереве и скрыть компонент.

Как и писал Nipal, команды не задокументированы, но они есть.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: Nipal от 13.11.23, 22:02:11
Там много, что есть.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: p3452 от 13.11.23, 22:41:25
А, если не секрет,
Цитата: Nipal от 13.11.23, 22:02:11Там много, что есть.
"Там" - это где?
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: Nipal от 13.11.23, 23:22:41
Цитата: p3452 от 13.11.23, 22:41:25А, если не секрет,"Там" - это где?
ExecuteKompasCommand - команды не задокументированы, но они есть.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: p3452 от 13.11.23, 23:30:33
Цитата: Nipal от 13.11.23, 23:22:41ExecuteKompasCommand - команды не задокументированы, но они есть.
Речь идет о том, что описано в:
- ProcessTypeEnum,
- ksKompasCommandEnum,
или о неких командах, которые ЕСТЬ, но не описаны в этих двух "перечислениях" (enum)?

Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: Nipal от 14.11.23, 00:17:06
О неких командах, которые ЕСТЬ, но не описаны.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: p3452 от 14.11.23, 00:30:51
Благодарю!
(может, примерный, диапазон commandID подскажите, чтобы не "тыкаться" с 1?)
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: lavgirb от 14.11.23, 08:52:26
Цитата: Nipal от 14.11.23, 00:17:06О неких командах, которые ЕСТЬ, но не описаны.
В моей практике был случай (не из программирования), когда серьезная фирма применяла изделия в условиях, выходящих за пределы документированных.
Когда поставщик-изготовитель по разным причинам поменял комплектующие, параметры изделия не вышли из ТУ, но у покупателя начались проблемы.
В недокументированных условиях изделие переставало работать.
Так, что-то вспомнилось...
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: Nipal от 14.11.23, 15:45:46
Цитата: lavgirb от 14.11.23, 08:52:26В моей практике был случай (не из программирования), когда серьезная фирма применяла изделия в условиях, выходящих за пределы документированных.
Когда поставщик-изготовитель по разным причинам поменял комплектующие, параметры изделия не вышли из ТУ, но у покупателя начались проблемы.
В недокументированных условиях изделие переставало работать.
Так, что-то вспомнилось...
Так пощупал за вымя КОМПАС-3D, работает начиная с v18.1
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: lavgirb от 14.11.23, 16:09:49
Цитата: Nipal от 14.11.23, 15:45:46Так пощупал за вымя КОМПАС-3D, работает начиная с v18.1
Метод "научного тыка" использовали? )
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: Nipal от 14.11.23, 16:32:58
Цитата: lavgirb от 14.11.23, 16:09:49Метод "научного тыка" использовали? )
Зачем?
Всё известно, просто проверка на Компас-3D.
Test_Kompas.png
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: lavgirb от 27.11.23, 09:16:28
Цитата: Nipal от 09.11.23, 17:29:33Извиняйте, я потратил на это дня три, правда не напрягался, сделал себе спец приложение, не только для этой задачи, оказалось я зря потратил время.
PS. Ищите, только в минус уходить не надо.
    Да и цикл вещь хорошая, но в данном случае нужно щупать, четко за вымя.
Кажется, дошло, о чем речь. )
До 10000, вероятно, не все команды можно посмотреть.
По константам команд в SDK V22, числа констант команд лежат в диапазоне 32403-46541.
Видимо, диапазон от 32000 до 47000 может включать все основные команды.
Если исключить известные команды, количество проверок уменьшается.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: Nipal от 27.11.23, 09:18:55
Не только этот диапазон, т.ч. играйтесь.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: lavgirb от 27.11.23, 09:21:59
Цитата: Nipal от 27.11.23, 09:18:55Не только этот диапазон, т.ч. играйтесь.
Пока острой нужды нет, но если приспичит, то идея понятна. Спасибо.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: Алексей Ш. от 05.09.24, 14:05:46
Цитата: Михаил88 от 13.11.23, 08:39:44Если делать выделение через IProductDataManager то деталька будет подсвечиваться на всех ассоциативных видах(если на виде присутствует геометрия этой детали), а не только на одном.

Добрый день! А возможно сделать так, чтобы компонент подсвечивался только на одном виде, допустим на активном? В целом, если я правильно понимаю, в Компасе нет глобальных слоев для всех видов сразу, поэтому мне необходимо обойти все виды, в каждом виде выбрать нужные компоненты и перенести их на определенный слой каждого вида.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: lavgirb от 13.12.24, 17:39:35
Все-таки удобная это вещь ExecuteKompasCommand
Хотелось бы вернуться к этой теме.
Как бы подобраться к поиску команд, например, к нажатию на нужные кнопки?
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: Михаил88 от 13.12.24, 17:59:20
Например выделить линию и запустить команду.

application.ExecuteKompasCommand(46533, False)
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: UU от 14.12.24, 10:46:41
Цитата: lavgirb от 13.12.24, 17:39:35Все-таки удобная это вещь ExecuteKompasCommand
Хотелось бы вернуться к этой теме.
Как бы подобраться к поиску команд, например, к нажатию на нужные кнопки?
Всё элементарно, просто спаяйте свой компьютер и тогда, у Вас проблем не будет.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: p3452 от 14.12.24, 11:28:47
Попробуйте на открытой Модели или Сборке вот эту команду:
ExecuteKompasCommand(76326, false)

Анимация, однако! :angel:
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: Михаил88 от 14.12.24, 15:35:38
Получается то же самое, что и в просмотровщике нажать эту команду.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: lavgirb от 14.12.24, 16:24:32
Цитата: Михаил88 от 13.12.24, 17:59:20Например выделить линию и запустить команду.

application.ExecuteKompasCommand(46533, False)
Здорово! Можно быстро находить компоненты в дереве вида. Воспользуюсь. Спасибо.

selcomp.JPG
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: lavgirb от 14.12.24, 16:29:17
Вот хотелось бы получить команду, имитирующую нажатие на кнопку "Линия-выноска".
Можно как-то найти CommandID этой команды?

leaderbutton.JPG

Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: Михаил88 от 14.12.24, 16:35:08
10071

Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: lavgirb от 14.12.24, 16:49:59
Цитата: Михаил88 от 14.12.24, 16:35:0810071
То что надо. Большое спасибо.
Название: Re: Как по линии на ассоциированном виде выйти на свойства компонента?
Отправлено: p3452 от 14.12.24, 17:09:37
Цитата: Михаил88 от 14.12.24, 15:35:38Получается то же самое, что и в просмотровщике нажать эту команду.
Так в том-то и "фишка", что получаем ЭТО в обычном Компасе.