Страница 1 из 1

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

СообщениеДобавлено: 11 мар 2009 12:56
FirMord
Хочу через макрос поставить точку в конце прямой, сложность в том, что нужно, чтобы в функции постановки точки не было имени прямой в явном виде. Записывалка макросов предлагает такой код:
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)

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

вообще как дебаггить эти скрипты по уму? я сейчас пишу в редакторе код, потом запускаю скрипт и вижу ошибку и в каком месте она, но не могу посмотреть ни значения произвольных переменных, ни выполнения скрипта построчно и т.п.

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

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

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

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

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

СообщениеДобавлено: 11 мар 2009 17:01
Artem
Если для вас это так то все просто и замечательно - но обычно (конструкторские задачи) под "началом" тов. постановщики задачи подразумевают ближнюю/дальнюю точку по какой либо координате или расстоянию до центра координат

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

СообщениеДобавлено: 11 мар 2009 17:31
zerganalizer
Это называется ближайшая точка линии относительно чего-либо и необязательно это будет один из концов отрезка и находится через near или полярный экстремум.

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

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

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

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

ясно, спасибо, я пока использую, для вывода каких-либо значений, функцию msgbox(X).

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

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

спасибо! совет помог :)
синтаксис, кстати, очень простой:
Код: Выделить всё
Set hybridShapePointOnCurve1 = hybridShapeFactory1.AddNewPointOnCurveFromPercent(reference1, 0.807706, False)

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

СообщениеДобавлено: 17 мар 2009 08:05
Artem
Многое зависит от самой задачи,если возьмем, например, обход контура то далеко не факт что товарищщ конструктор сделал все кошерно и конец одной линии будет началом другой.....