' получение доступа к объекту выделения для активного документа
Dim objSelection as Selection
Set objSelection = CATIA.ActiveDocument.Selection
' проверка, выделен ли хоть один объект
if (objSelection.Count = 0) then
Exit Sub
End if
' обработка первого выделенного объекта. при необходимости возможно организовать цикл.
Dim SelectedObject as Object
Set SelectedObject = objSelection.Item(1).Value
' определение типа выделенного объекта
Dim strObjectType as String
strObjectType = TypeName(SelectedObject)
Dim PartProd as Product ' продукт, в котором содержится парт
' проверка типа выбранного объекта
if (strObjectType = "Product") then
' выбран продукт
Set PartProd = SelectedObject
elseif (strObjectType = "Part") then
' выбран парт, ищем соответствующий ему продукт (который является его родителем)
if (TypeName(SelectedObject.Parent) = "PartDocument") then
' парт получен из парт документа, получаем продукт оттуда же
Set PartProd = SelectedObject.Parent.Product
elseif (TypeName(SelectedObject.Parent = "Product") then
' парт лежит в продукте
Set PartProd = SelectedObject.Parent
else
' "родитель" парта не является ни документом, ни продуктом, выходим.
Exit Sub
end if
else
' не выбран ни продукт, ни парт, выходим
Exit Sub
end if
' меняем режим
objProd.ApplyWorkMode DESIGN_MODE
' запускаем команду
' CATIA.StartCommand "Открыть в новом окне"
Sub CATMain()
Dim oSelPart As Selection
Set oSelPart = CATIA.ActiveDocument.Selection
Dim InputObjectType(0)
InputObjectType(0) = "Part"
Status = oSelPart.SelectElement2(InputObjectType, "Select a Part", false)
If (Status = "Cancel") Then
Msgbox "Macro Canceled!",vbcritical
Exit Sub
end if
Dim oPart As Part
Set oPart = oSelPart.Item2(1).Value
Dim oProduct As Product
InputObjectType(0) = "Product"
Set oProduct = oSelPart.SelectElement2(InputObjectType, "Select a Part", true)
oProduct.ApplyWorkMode 2
Dim partDocument1 As PartDocument
Set partDocument1 = oPart.Parent
Set productDocument1 = CATIA.Documents.Open(partDocument1.FullName)
Set Viewer = Catia.ActiveViewer
Viewer.Reframe
End Sub
elseif (TypeName(SelectedObject.Parent) = "Product") then
Dim oSelPart As Variant
Set oSelPart = CATIA.ActiveDocument.Selection
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1