Изменение переменных в Компас 22

Автор АндрейП36, 13.06.24, 11:48:20

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

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

АндрейП36

Добрый день.
Делаю приложение для Компас 22 на C#.
Необходимо найти и изменить значение переменных(.m3d).

KompasObject kompas = (KompasObject)Marshal.GetActiveObject("KOMPAS.Application.5");
            ksDocument3D kompas3d = (ksDocument3D)kompas.ActiveDocument3D();


            ksPart kPart = kompas3d.GetPart((int)Part_Type.pTop_Part);
            ksVariableCollection varcoll = kPart.VariableCollection();
            varcoll.refresh();
            ksVariable SM_K = varcoll.GetByName("SM_K", true, true);
            kPart.RebuildModel();

ТАк видны только внешние переменные, как выбрать все переменные?

Или по другому мне нужно программой менять "Коэффициент, определяющий положение нейтрального слоя" для листового тела. Как к нему обратиться?

p3452

Сами просите "внешние" (VariableCollection) - их и получаете...

1. Тема много раз обсуждалась - на Форуме работает Поиск.
2. В примерах к SDK есть конкретный "Step".

p3452


АндрейП36

Мб я что то не понимаю. Я работаю с деталью и мне нужны именно локальные переменные .

Вы добавили пример из SDK где есть работа с локальными переменными. У cебя в SDK я не нашел.
Если не сложно можете ткнуть меня носом?

p3452

1. Вам дали ДВА совета, первый Вы, почему-то проигнорировали, второй - отсылка на Step из примеров к SDK.
2. На вложенной картинке, видно, наименование Примера и Функции, которая демонстрирует правильную работу с "VariableCollection()", использованной Вами - подчеркнуто красным.
3. Чтобы получить ВСЕ переменные нужно "плясать" от дерева построения и ЯВНО указать, что хотите получить переменные - [НЕ только внешние, НЕ только из источника] (Вы бы поняли ЭТО, если бы не проигнорировали  совет №1)