Указание точки в эскизе 3Dмодели

Автор Georg, 10.06.09, 13:14:07

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

Михаил88 и 1 гость просматривают эту тему.

Georg

Нужно дать возможность пользователю указать точку на эскизе в 3Dмодели детали.

Мой кусок программы:

iSketchEntity:    ksEntity;
iSketchDef:       ksSketchDefinition;

iSketchDoc2D:     ksDocument2D;


x, y: Double;
iReqInfo: ksRequestInfo;
strPromt: string;


begin

...........................
...........................

iReqInfo:= ksRequestInfo(iKompas.GetParamStruct(ko_RequestInfo));
iReqInfo.Init;
iReqInfo.prompt:= 'Укажите точку центра';

//Создаем эскиз - 2D документ
iSketchEntity.Create;

//Входим в режим редактирования эскиза
iSketchDoc2D:=ksDocument2D(iSketchDef.BeginEdit);

x:=0;
y:=0;
//Запрос координат курсора
if iSketchDoc2D.ksCursor (iReqInfo, x, y, nil) = -1 then
begin

.....................................
.....................................


Однако ksCursor выдает значение 0

Где у меня ошибка?

Georg

 >:( Черт! Неужели никто не поможет ? У меня уже сил нет, какие только варианты я ни перебирал.
Где вы, ассы программирования? Или зажались со своими знаниями?

Thender

Интересно, спустя 15 лет проблема решилась?

UU

Цитата: Thender от 23.08.24, 12:03:45Интересно, спустя 15 лет проблема решилась?
Тут вся проблема в том, что код неполный, чтобы помочь.

Golovanev

Тут все просто.... Перейти в визуальный режим редактирования эскиза таким образом через API не возможно, поэтому и результат 0...

p3452

 :cl:
И в визуальный режим редактирования эскиза, программно, войти можно и точку на эскизе поставить можно...
Более того, можно поставить точку на эскизе, в 3D модели, даже не входя в режим редактирования эскиза!

Golovanev

Цитата: p3452 от 23.08.24, 16:33:27:cl:
И в визуальный режим редактирования эскиза, программно, войти можно и точку на эскизе поставить можно...
Более того, можно поставить точку на эскизе, в 3D модели, даже не входя в режим редактирования эскиза!


Дорогой p3452... Я не написал что нельзя, я написал что таким образом нельзя... Будьте внимательнее при чтении.

p3452

Golovanev, виноват, признаю, исправлюсь (возможно  :embarrassed: ).

UU

Да, смотрю я на Вас...
Проблем реализации не вижу, легко, если в теме.

Thender

так как получить координаты точки в эскизе при указании её с помощью устройства управления(мышь)?

chum

Цитата: p3452 от 23.08.24, 16:33:27:cl:
И в визуальный режим редактирования эскиза, программно, войти можно



Добрый день!

Пытаюсь решить именно такую задачу:
пользователь в КОМПАСе нажимает на кнопку создания детали, а я при этом программно создаю эскиз на определенной плоскости, задаю некоторые настройки, чтоб ему не пришлось каждый раз делать это вручную, черчу вспомогательные линии - с этим проблем нет, все получилось, но дальше мне нужно визуально показать этот эскиз в режиме редактирования в графической области приложения, а вот тут застряла:)

Если просто создать эскиз, без выполнения кода:
// интерфейс редактора эскиза
ksDocument2D sketchEdit = (ksDocument2D)sketchDefinition.BeginEdit();
то он появляется в дереве построения модели, но не в графической области.
Если же вышенаписанный код добавить, то в дереве построения у эскиза появляется значок замочка, но в графической области по-прежнему его нет.

Пробовала с помощью команды:
//prEditScetch 20054 редактировать эскиз
kompasObject.ksExecuteKompasCommand(20054, false);

Но результат тот же, что и с помощью метода BeginEdit.

Еще в ksSlaveDocumentTypeEnum -Типах подчиненных режимов нашла константу
ksSDSketchMode 1000 Режим редактирования эскиза,
но насколько я поняла, она применяется для другого.

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