ось ribа

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

ось ribа

Сообщение Artem » 19 янв 2012 13:51

Господа как из CenterCurveElement получить ось риба (какие преобразования сделали товарищи разработчики)? Понятно, что когда все сделано по рекомендациям(из центра) они совпадают, а вот когда элемент находится в стороне от протягиваемого профиля, то ось риба начинает загибаться по непонятному закону...Видимо старею - не могу его уловить (..чувствую что замешана 3D Curve offset, но доказать не могу...
animae scrinium servitus
Аватара пользователя
Artem
Активный участник
Активный участник
 
Сообщения: 387
Зарегистрирован: 14 сен 2007 07:14

Re: ось ribа

Сообщение Wireless_Fidelity » 19 янв 2012 19:27

Здравствуйте.

Насколько я понял, нужно получить ось в виде отдельной фичи (3D curve offset)? Если так, то вот код:

Код: Выделить всё
Option Explicit

Sub CATMain()

    Dim oSelection As Selection
    Set oSelection = CATIA.ActiveDocument.Selection

    Dim oRib As Rib
    Set oRib = oSelection.Item(1).Value
   
    Dim refCenterCurve As Reference
    Set refCenterCurve = oRib.CenterCurveElement
   
    Dim oHSF As HybridShapeFactory
    Set oHSF = CATIA.ActiveDocument.Part.HybridShapeFactory
   
    Dim crvCenter As HybridShape3DCurveOffset
    Set crvCenter = oHSF.AddNew3DCurveOffset(refCenterCurve, oHSF.AddNewDirection(refCenterCurve), 0, 0, 0)
    crvCenter.Compute
   
    CATIA.ActiveDocument.Part.MainBody.InsertHybridShape crvCenter
   
End Sub


Ось находится в стороне от протягиваемого профиля, результат кажется корректным.
Аватара пользователя
Wireless_Fidelity
Активный участник
Активный участник
 
Сообщения: 394
Зарегистрирован: 10 апр 2010 00:11

Re: ось ribа

Сообщение Artem » 20 янв 2012 08:18

Возможно вы экспериментировали с прямой? В R16 с прямой находящейся рядом тоже все корректно(к сожалению забыл уточнить эту деталь). Хотя опять же таки возвращается не реальная смещенная ось, а исходный элемент (хотя учитывая что реальная ось не исковеркана ее пожалуй можно восстановить по центру, длине и вектору направления исходной прямой)- постройте 3D spline пострашнее...хотя может в версии поновее это поправили.
Конечная цель - получить реальную ось риба - если данный элемент (CenterCurveElement) НЕ выходит из центра профиля, а расположен скажем рядом на некотором удалении и Не прямая, то риб все равно можно протянуть - при этом РЕАЛЬНАЯ ось риба НЕ будет совпадать по форме с CenterCurveElement (В помощи так и написано, мол протянуть то вы можете, но за форму мы не отвечаем и картинку с исковерканной деталью приложили)... :-( 3D Curve offset - "на глаз" кажется замешана в законе, по которому модифицируется исходная ось, но точно сказать не могу....
Ps. А может как то можно получить ось НЕ у CylindricalFace?
animae scrinium servitus
Аватара пользователя
Artem
Активный участник
Активный участник
 
Сообщения: 387
Зарегистрирован: 14 сен 2007 07:14

Re: ось ribа

Сообщение Artem » 20 янв 2012 09:25

viewtopic.php?f=133&t=2441&p=20567#p20567 Спасибо ув. deNSe
Хмм... создание Isoparametric Curves не записывается, да и в инете глухо. Жаль - ладно хоть, что недавно со вставкой UDF столкнулся, через апи делать лень однако :-)
animae scrinium servitus
Аватара пользователя
Artem
Активный участник
Активный участник
 
Сообщения: 387
Зарегистрирован: 14 сен 2007 07:14

Re: ось ribа

Сообщение Wireless_Fidelity » 20 янв 2012 16:34

Для протяжки я использовал скетч на плоскости, перпендикулярной к плоскости профиля. На скетче была только одна кривая, лежавшая за границами профиля. Запускал на R19 SP9.
Аватара пользователя
Wireless_Fidelity
Активный участник
Активный участник
 
Сообщения: 394
Зарегистрирован: 10 апр 2010 00:11


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

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

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