• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Удалить все компоненты в сборке

Автор bbb, 11.05.18, 11:51:09

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

bbb

Удаляю компоненты в цикле по одному что занимает очень много времени. Пытаюсь удалить сразу все с помощью Delete метода из IKompasDocument1. Пробовал передать в качестве параметра  и ksPartCollection и iParts7, компоненты не удаляются

ТрындецЪ

11.05.18, 11:58:08 #1 Последнее редактирование: 11.05.18, 13:27:20 от ТрындецЪ
IParts7.PartsEx(0) IPart7.PartsEx(0) пробовали передавать?

chelkar

Посмотрите метод treeNeedRebuild  и запретите перестроение модели и Дерева до начала удаления.

bbb

Цитата: ТрындецЪ от 11.05.18, 11:58:08
IParts7.PartsEx(0) пробовали передавать? 
Такого метода PartsEx нет у IParts7
Цитата: chelkar от 11.05.18, 12:07:11
Посмотрите метод treeNeedRebuild  и запретите перестроение модели и Дерева до начала удаления.
Проверил не помогает. Да и в цикле как бы без этого удаляется нормально.

Upd: Ipart7.IpartsEx(0) передал удалилось все. А как теперь удалить не  все а оставить один? Вот у ksPartCollection можно отсоединить компонент от массива, поэтому хотелось бы его передать, чтобы один отсоединить, а остальные удалить

ТрындецЪ

11.05.18, 13:09:31 #4 Последнее редактирование: 11.05.18, 13:22:49 от ТрындецЪ
Цитата: bbb от 11.05.18, 13:04:25
Такого метода PartsEx нет у IParts7
Ошибся, IPart7.PartsEx(0) (массив всех компонентов сборки (включая копии из операций копирования))
+ Благодарностей: 1

bbb

Цитата: ТрындецЪ от 11.05.18, 13:09:31
Ошибся, IPart7.PartsEx(0) (массив всех компонентов сборки (включая копии из операций копирования))
Спасибо, а можно как-нибудь скорректировать список на удаление? Выше написал как хотелось бы это провернуть)

ТрындецЪ

Цитата: bbb от 11.05.18, 13:04:25
Upd: Ipart7.IpartsEx(0) передал удалилось все. А как теперь удалить не  все а оставить один? Вот у ksPartCollection можно отсоединить компонент от массива, поэтому хотелось бы его передать, чтобы один отсоединить, а остальные удалить
Присваиваете переменной Ipart7.IpartsEx(0)  и удаляете элемент массива этой переменной.

bbb

Цитата: ТрындецЪ от 11.05.18, 13:30:30
Присваиваете переменной Ipart7.IpartsEx(0)  и удаляете элемент массива этой переменной.
Не понял. Мне надо удалить не все компоненты, а все кроме одного)

ТрындецЪ

Цитата: bbb от 11.05.18, 13:39:43
Не понял. Мне надо удалить не все компоненты, а все кроме одного)
Выделяете в сборке компонент, через менеджер выделенных объектов получаете его интерфейс, запоминаете.
Из дубликата массива интерфейсов компонентов исключаете интерфейс выделенного компонента, и передаёте дубликат массива функции удаления.

bbb

11.05.18, 13:57:10 #9 Последнее редактирование: 11.05.18, 14:41:43 от bbb
Цитата: ТрындецЪ от 11.05.18, 13:44:05
Выделяете в сборке компонент, через менеджер выделенных объектов получаете его интерфейс, запоминаете.
Из дубликата массива интерфейсов компонентов исключаете интерфейс выделенного компонента, и передаёте дубликат массива функции удаления.
Что такое дубликат массива интерфейсов компонентов? ksPartCollection есть у меня )

UPD: Сделал так - сначала получил список iPart7.PartsEx(0) , потом copypart нужного компонента, а затем delete. Все работает тема закрыта )

bbb


ТрындецЪ

У меня на Python метод iKompasDocument1.Delete(...) вообще отказался пачкой удалять компоненты, только по одному. Подсовываю больше 1-го компонента, пишет False.