VBS, точка на прямой

Программирование для CATIA.

VBS, точка на прямой

Сообщение FirMord » 11 мар 2009 12:56

Хочу через макрос поставить точку в конце прямой, сложность в том, что нужно, чтобы в функции постановки точки не было имени прямой в явном виде. Записывалка макросов предлагает такой код:
Set hybridShapeLinePtPt1 = hybridShapes1.Item("Line.5")
Set reference1 = part1.CreateReferenceFromBRepName("BorderFVertex:(BEdge:(Brp:(GSMLine.5;2);None:(Limits1:();Limits2:();-1);Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", hybridShapeLinePtPt1)

В цикле его использовать нельзя, т.к. выделенный участок содержит имя конкретной прямой.

вообще как дебаггить эти скрипты по уму? я сейчас пишу в редакторе код, потом запускаю скрипт и вижу ошибку и в каком месте она, но не могу посмотреть ни значения произвольных переменных, ни выполнения скрипта построчно и т.п.
FirMord
Новичок
Новичок
 
Сообщения: 17
Зарегистрирован: 23 окт 2008 11:05

Re: VBS, точка на прямой

Сообщение Artem » 11 мар 2009 13:14

.item(№ фичера) тоже работает - У selectelement есть вроде метод для определения его типа (поиск в помощи на слово selection). На худой конец всегда есть on error resume next.....
Ps.Вместо part1.CreateReferenceFromBRepName используй createfromobject (точно не помню дословно)
Pss.Что есть у линии начало, что есть конец? Вопрос однако философский....
animae scrinium servitus
Аватара пользователя
Artem
Активный участник
Активный участник
 
Сообщения: 387
Зарегистрирован: 14 сен 2007 07:14

Re: VBS, точка на прямой

Сообщение zerganalizer » 11 мар 2009 13:56

Начало у линии - точка на этой линии с соотношением длины равным нулю (если кнопочку реверса не давить). Все кривые у Кати имеют однозначное начало и конец, т.е. направление. Хотите точку в конце прямой - создайте точку на линии с ссотношением длины, 0 - начало, 1 - конец. Рекомендация Дассо, кстати...
Автоматизирую все, что логично.
Аватара пользователя
zerganalizer
Moderator
 
Сообщения: 901
Зарегистрирован: 20 май 2008 15:20

Re: VBS, точка на прямой

Сообщение Artem » 11 мар 2009 17:01

Если для вас это так то все просто и замечательно - но обычно (конструкторские задачи) под "началом" тов. постановщики задачи подразумевают ближнюю/дальнюю точку по какой либо координате или расстоянию до центра координат
animae scrinium servitus
Аватара пользователя
Artem
Активный участник
Активный участник
 
Сообщения: 387
Зарегистрирован: 14 сен 2007 07:14

Re: VBS, точка на прямой

Сообщение zerganalizer » 11 мар 2009 17:31

Это называется ближайшая точка линии относительно чего-либо и необязательно это будет один из концов отрезка и находится через near или полярный экстремум.
Автоматизирую все, что логично.
Аватара пользователя
zerganalizer
Moderator
 
Сообщения: 901
Зарегистрирован: 20 май 2008 15:20

Re: VBS, точка на прямой

Сообщение booSter » 11 мар 2009 18:41

По поводу дебага...
Если макрос (или группу макросов) оформить как CATVBA-проект (а не как CATScript или (CAT)VBScript), то появиться возможность интерактивной отладки (с бряк-пойнтами, ватчами и пр.). После "доработки напильником" макрос можно снова сделать CATScript-ом (например для запуска через опцию командной строки -macro).
Сделаешь доброе дело за деньги - скажут спасибо,
Сделаешь бесплатно - сядут на шею...
©пёрто
Аватара пользователя
booSter
Moderator
 
Сообщения: 227
Images: 15
Зарегистрирован: 09 фев 2008 16:48
Откуда: Minsk

Re: VBS, точка на прямой

Сообщение FirMord » 16 мар 2009 12:50

booSter писал(а):По поводу дебага...
Если макрос (или группу макросов) оформить как CATVBA-проект (а не как CATScript или (CAT)VBScript), то появиться возможность интерактивной отладки (с бряк-пойнтами, ватчами и пр.). После "доработки напильником" макрос можно снова сделать CATScript-ом (например для запуска через опцию командной строки -macro).

ясно, спасибо, я пока использую, для вывода каких-либо значений, функцию msgbox(X).
FirMord
Новичок
Новичок
 
Сообщения: 17
Зарегистрирован: 23 окт 2008 11:05

Re: VBS, точка на прямой

Сообщение FirMord » 16 мар 2009 18:48

zerganalizer писал(а):Начало у линии - точка на этой линии с соотношением длины равным нулю (если кнопочку реверса не давить). Все кривые у Кати имеют однозначное начало и конец, т.е. направление. Хотите точку в конце прямой - создайте точку на линии с ссотношением длины, 0 - начало, 1 - конец. Рекомендация Дассо, кстати...

спасибо! совет помог :)
синтаксис, кстати, очень простой:
Код: Выделить всё
Set hybridShapePointOnCurve1 = hybridShapeFactory1.AddNewPointOnCurveFromPercent(reference1, 0.807706, False)
FirMord
Новичок
Новичок
 
Сообщения: 17
Зарегистрирован: 23 окт 2008 11:05

Re: VBS, точка на прямой

Сообщение Artem » 17 мар 2009 08:05

Многое зависит от самой задачи,если возьмем, например, обход контура то далеко не факт что товарищщ конструктор сделал все кошерно и конец одной линии будет началом другой.....
animae scrinium servitus
Аватара пользователя
Artem
Активный участник
Активный участник
 
Сообщения: 387
Зарегистрирован: 14 сен 2007 07:14


Вернуться в CAA-RADE

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

cron