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

Curve Smooth script

СообщениеДобавлено: 15 окт 2015 23:32
heze
Доброго времени суток всем!
Подскажите, пожалуйста, как вставить Curve Smooth в выбранный сет?

Re: Curve Smooth script

СообщениеДобавлено: 16 окт 2015 22:10
Wireless_Fidelity
Прямой ответ на вопрос:

Код: Выделить всё
CATIA.ActiveDocument.Selection.Item(1).Value.AppendHybridShape <объект HybridShapeCurveSmooth>

Re: Curve Smooth script

СообщениеДобавлено: 17 окт 2015 22:42
heze
намек понял)
вот что хочу получить - в определенный пользователем сет вставить "пустую" операцию Curve Smooth.
пока не работает и выглядит вот так:
Код: Выделить всё
Language="VBSCRIPT"

Sub CATMain()

Msgbox "Select geometrical "

Dim Document,Part,Selection,HybridShapeFactory,HybridBodies,HybridBody,OriginElements,Plane,PlaneReference,Status
Dim InputObjectType(0),PointIndex,PointReference,HybridShapeSymmetry

Set Document = CATIA.ActiveDocument
Set Part = Document.Part
Set Selection = Document.Selection
Set HybridShapeFactory = Part.HybridShapeFactory
InputObjectType(0)="HybridBody"
Status=Selection.SelectElement3(InputObjectType,"Select geometrical",true,CATMultiSelTriggWhenSelPerf,false)
if (Status = "Cancel") then Exit Sub
set hybridbody1 = Selection.Item(1).Value

' получаем HybridShapeFactory
Dim hybridShapeFactory1 As HybridShapeFactory
Set hybridShapeFactory1 =  Document.Part.HybridShapeFactory

' добавление курвсмуса
Dim hybridShapeCurveSmooth1 As HybridShapeCurveSmooth
Set reference1 = hybridShapeFactory1.AddNewCurve
Set hybridShapeCurveSmooth1 = hybridShapeFactory1.AddNewCurveSmooth(reference1)

hybridbody1.AppendHybridShape hybridShapeCurveSmooth1

End Sub


помогите практическим советом, пожалуйста

Re: Curve Smooth script

СообщениеДобавлено: 19 окт 2015 11:39
Wireless_Fidelity
Зачем вставлять пустую операцию?
Можете ли добиться желаемого вручную? Если нет, то и "автоматизировать" это не стоит.

Re: Curve Smooth script

СообщениеДобавлено: 19 окт 2015 12:07
heze
меня интересует сам процесс так сказать, т.е. для того чтобы получить эту операцию в дереве как я понимаю нужно создать референс и вот с ним у меня проблема.
эта задача скорее учебная чем практическая - это однозначно.

Re: Curve Smooth script

СообщениеДобавлено: 19 окт 2015 13:36
Wireless_Fidelity
Метода AddNewCurve нет, есть AddNewCurveDatum

Re: Curve Smooth script

СообщениеДобавлено: 19 окт 2015 14:46
heze
точно, спасибо. Получается:

Set reference1 = hybridShapeFactory1.AddNewCurveDatum

но опять же сам метод AddNewCurveDatum нуждается в референсе, верно? можно этот референс задать "пустым" или нужно запрашивать, например, пользовательский выбор?

Re: Curve Smooth script

СообщениеДобавлено: 21 окт 2015 09:42
Wireless_Fidelity
heze писал(а):точно, спасибо. Получается:

Set reference1 = hybridShapeFactory1.AddNewCurveDatum

но опять же сам метод AddNewCurveDatum нуждается в референсе, верно? можно этот референс задать "пустым" или нужно запрашивать, например, пользовательский выбор?


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

Я бы посоветовал все "тренировочные" примеры проводить на основе выбранных в дереве объектов (в частности, через SelectElement2)