Можно ли переместить деталь с учетом ограничений в продукте, используя Catia vba?

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

Я пытаюсь автоматизировать инструмент манипуляции в продукте Catia. Существуют ли какие-либо команды или методы для перемещения детали относительно ограничений в Catia с использованием vba?

Или же

Есть ли способ найти конфликт между двумя частями с помощью VBA?

Ждем решения.

Спасибо!!!

1 ответ

Решение

Вот ссылка, где вы можете найти решение для столкновения.

Хорошо, у меня есть идея, вы хотите увидеть код здесь:-)

Чтобы вычислить конфликт в CATScript:

    Sub CATMain()

    ' get root product of document
    Dim RootProd As Product
    Set RootProd = CATIA.ActiveDocument.Product

    ' retrieve selection object of active document
    Dim objSelection As Selection
    Set objSelection = CATIA.ActiveDocument.Selection

    ' get two selected objects
    If (objSelection.Count2 <> 2) Then
    MsgBox "Before running the script you must select two products to compute clash for", vbOKOnly, "No products selected"
    Exit Sub
    End If

    Dim FirstProd As Product
    Dim SecondProd As Product

    Set FirstProd = objSelection.Item2(1).Value
    Set SecondProd = objSelection.Item2(2).Value

    ' create groups for clash computation
    Dim objGroups As Groups
    Set objGroups = RootProd.GetTechnologicalObject("Groups")

    Dim grpFirst As Group
    Dim grpSecond As Group

    Set grpFirst = objGroups.Add()
    Set grpSecond = objGroups.Add()

    ' add selected products to groups
    grpFirst.AddExplicit FirstProd
    grpSecond.AddExplicit SecondProd


    ' get access to Clashes collection
    Dim objClashes As Clashes
    Set objClashes = RootProd.GetTechnologicalObject("Clashes")

    ' create new clash
    Dim newClash As Clash
    Set newClash = objClashes.Add()

    ' set new clash to be computed between two groups (two selected products)
    newClash.FirstGroup = grpFirst
    newClash.SecondGroup = grpSecond

    newClash.ComputationType = catClashComputationTypeBetweenTwo

    ' compute clash
    newClash.Compute

    End Sub 
Другие вопросы по тегам