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

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

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

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

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

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

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

Помогите с перестроением сборки!

Автор Dells, 20.05.04, 12:55:31

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

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

Dells

Помогите с перестраиванием сборки!!
Есть сборка с двумя подсборками:

ksDocument3D Asm; // главная сборка
ksPart SubAsm[2]; // две подсборки
ksPart Part[2][10]; // массив деталей в подсборках
char* Param[2][10][20]; //массив параметров для каждой детали
double Value[2][10][20]; //массив значений параметров для каждой детали
...
// Тут код сканирования сборки, заполнения массивов, я его опускаю
...
int i = 2; // число подсборок
int jprt = 10; // число деталей в каждой подсборке
int kprm = 20; // число параметров каждой детали
do {
   int j = jprt;
   do {
      int k = kprm;
      ksVariableCollection vC(Part[j].VariableCollection());
      do {
         ksVariable var = vC.GetByName(Params[j][k], true, false);
         var.SetValue(Values[j][k]);
         k--;
      } while(k);
      Part[j].Update();
      Part[j].RebuildModel();
      j--;
   } while(j);
   SubAsm.Update();
   SubAsm.RebuildDocument();
   i--;
} while(i);
ksPart a = Asm.GetPart(pTop_Part);
a.Update();
a.RebuildDocument();
Asm.UpdateDocumentParam();
Asm.ZoomPrevNextOrAll(2);

После задания всех параметров и ребилда деталей, подсборок и сборки на дереве сборки остаются галочки - требуется перестроение сборки.
Повторный цикл с ребилдами не помогает. Не помогает, даже если перед ребилдом подсборок вызвать ksPart::BeginEdit(), а после - ksPart::EndEdit().
Хотя если в Компасе открыть подсборку для редактирования в новом (именно в новом) окне, перестроить, нажав кнопку с краном, и активизировать окно с главной сборкой - Компас понимает, что что-то изменилось и корректно перестраивает главную сборку. Если эту же процедуру повторить для второй подсборки, то после активизации окна главной сборки Компас выводит диалог, что изменилось то и то и после перестроения все в полном ажуре.
Через API не выходит, хоть двести раз вызывай ребилды в разных порядках для любых партов.

Что неправильно? Как сделать действительно полный ребилд?
Люди!! Помогите!!!

Dells

Не прошло и полгода. А воз и ныне там. Вывод - никак. Нет, ну конечно можно, отрыть подсборку в новом окне, отбилдить, сохранить, закрыть. Далее - повторить для второй подсборки. Активизировать окно главной сборки... Т.е. так же как и вручную... Но, увы... не помогает.

Sheiker

Доброго времени суток.
Чесно говоря ответа не знаю, но хочу спросить, как создать подсборку??
Я пытаюсь сделать это в делфи.