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

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

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

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

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

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

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

Программа для работы с параметрическими моделями

Автор Sprinter500, 14.06.11, 16:52:25

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

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

Sprinter500

Переделал немножко теперь ошибка вылазит здесь.

Возможно Вы объявляете переменные соответствующие API7, а работаете с ними, как с API5, хотя я могу ошибаться. Я Вашего языка не знаю и по картинкам помогать тоже не буду, а если Вы хотели показать, что здесь ошибка, то давайте всю информацию, если Вы заинтересованы в помощи, чтобы знать, что от Вас хочет Ваша среда разработки, см. рис.
1 - код ошибки
2- описание ошибки

Sprinter500

Добрый день! Перешел на Delphi и проблема решилась для переменных 3D модели, благодаря книге Норсеева С.А. "Разработка приложений под КОМПАС в Delphi" 2013г.
Вот фрагмент код для этого (надеюсь автор не против, если что удалю):
const
pTop_Part = -1;
vm_Shaded = 3;
var
kompas: KompasObject;
Document3D: ksDocument3D;
Part: ksPart;
VariableCollection: ksVariableCollection;
Variable: ksVariable;
begin
//Подключаемся к КОМПАСу
kompas:=KompasObject(CreateOleObject('Kompas.Application.5'));
//Получаем интерфейс документа-модели
Document3D:=ksDocument3D(kompas.Document3D());
//Открываем документ-модель
Document3D.Open('D:\Study\ПараметризованнаяДеталь.m3d',FALSE);
//Получаем интерфейс компонента
Part:= ksPart(Document3D.GetPart(pTop_Part));
//Получаем массив переменных модели
VariableCollection:=ksVariableCollection(Part.VariableCollection());
//Изменяем значение первой переменной
Variable:=ksVariable(VariableCollection.GetByName('D',TRUE,TRUE));
Variable.value:=100;
//Изменяем значение второй переменной
Variable:=ksVariable(VariableCollection.GetByName('H',TRUE,TRUE));
Variable.value:=10;
//Перестраиваем модель
Part.RebuildModel();
//Перерисовываем документ
Document3D.RebuildDocument();
//Устанавливаем полутоновое отображение модели
Document3D.drawMode:=vm_Shaded;
//Включаем отображение каркаса
Document3D.shadedWireframe:=TRUE;
//Делаем КОМПАС видимым
kompas.Visible:=true;
end;

Однако есть 2 вопроса. Может кто знает?:
1. Код работает для внешних переменных. Но если поменять внеш. переменную  вручную, то после это код не работает, ошибки не вылазят - прост оничего не происходит. В чем может быть дело и как с этим бороться?
2. Самый главный вопрос. Как работать с переменными в 2D документе (чертеж, фрагмент) ? Существует ли интерфейс и вообще такая возможность?