Можно ли переместить деталь с учетом ограничений в продукте, используя 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