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

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

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

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

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

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

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

задать положение курсором

Автор Poltava, 13.09.11, 13:17:49

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

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

Poltava

Доброго времени суток опять нужна ваша помощь
Как писал раньше в программировании не силен но есть такая потребность.
В этот раз обращаюсь с таким вопросом. Ниже простейший макрос на питоне записанный библиотекой компас макро. Макрос создает кривую бизье, все точки кривой заданы жёстко,  координатами введенными в программе. Ну а теперь сам вопрос, как сделать так чтобы последние две точке кривой пользователь ставил кликнув в нужной точке чертежа.
# -*- coding: cp1251 -*-
#|3

import Kompas10API5 as KAPI
import Kompas10API7 as KAPI7
import pythoncom
from win32com.client import Dispatch
import LDefin2D
import LDefin3D
import ksConstants as CONST2D7
import ksConstants3D as CONST3D7
import MiscellaneousHelpers as MH

iKompasObject = Dispatch('KOMPAS.Application.5')
iKompasObject = KAPI.KompasObject(iKompasObject)
MH.iKompasObject = iKompasObject

iApplication = Dispatch('KOMPAS.Application.7')
iApplication = KAPI7.IApplication(iApplication)
MH.iApplication = iApplication

iDocument2D = iKompasObject.ActiveDocument2D()
iDocument = iApplication.ActiveDocument
iKompasDocument2D = KAPI7.IKompasDocument2D(iDocument)

iDocument2D.ksBezier(0, 1)
iDocument2D.ksPoint(0.0, 0.0, 0)
iDocument2D.ksPoint(149.15889327777, 187.97296587157, 0)
iDocument2D.ksPoint(434.56119581374, 123.42968897298, 0)
iDocument2D.ksPoint(371.02640761669, -76.25107393203, 0)
iDocument2D.ksPoint(104.78539040999, -175.08296668300, 0)
iDocument2D.ksEndObj()


Очень надеюсь что подскажите какие строки нужно дописать
А то почитав CDK особо не смог разобраться не силен в программировании

ksDocument2D::ksCursor
Запрос к системе на получение точки.
Аналог данного метода при использовании API экспортных функций - Cursor.
Синтаксис Automation:
long ksCursor (LPDISPATCH info, double* x, double* y, LPDISPATCH phantom);
Входные параметры:
info - указатель на интерфейс ksRequestInfo,
phantom - указатель на интерфейс ksPhantom.
Выходные параметры:
x, y - возвращаемые координаты точки.
Возвращаемое значение:
-1 - если точка указана,
идентификатор выбранной команды, определенный в файле ресурсов,
порядковый номер в строке команд.

Примечание:

Интерактивный ввод точки или определение варианта действия. Возможные варианты (команды) задаются в строке commands интерфейса ksRequestInfo и разделяются восклицательными знаками или пробелами.
Если вместо строки в качестве параметра передать идентификатор меню из файла ресурсов, то соответствующее меню будет выдано в окне приглашений.
Если в качестве адреса _callBack передается NULL, то действие метода прекращается после первого шага.


Poltava

А можно пример как это должно выглядеть на питоне

Poltava

Вроде получилось разобраться спасибо Sabahs