Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  ByRef argument type mismatch Fehler

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  ByRef argument type mismatch Fehler (812 mal gelesen)
Sylas
Mitglied



Sehen Sie sich das Profil von Sylas an!   Senden Sie eine Private Message an Sylas  Schreiben Sie einen Gästebucheintrag für Sylas

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 17. Jan. 2019 12:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Leute!
Ich versuche jetzt meinem Makro ein bischen saubern, und ich kriege jetzt mit ein Fehler...
Kann mir jemand sagen, was habe ich Falsch gemacht?
Der Fehlermeldung ist bei Linie:
Code:

Extract_skins Prod_1, oHauptadapter


und sagt: "ByRef argument type mismatch"

Meinem Code:

Code:
Sub CATMain()
Dim oSel As Selection
Set oSel = CATIA.ActiveDocument.Selection
Dim oPart As Part
Dim oProd_l As Product
Dim oProd_2 As Product
Dim oProd_3 As Product
Dim oProd_4 As Product
Dim oRPS_source As HybridBody, oRPS_target As HybridBody
Dim oKol As New VBA.Collection

Dim i As Integer, j As Integer, k As Integer
i = 0
j = 0
k = 0

'---------------Hauptadapter
Dim oHauptadapter As Part
Dim sSel
Set sSel = oSel
Dim Filter(0)
oSel.Clear
sSel.Clear
Filter(0) = "Part"
oStatus = sSel.SelectElement2(Filter, "Wskaż Hauptadapter", False)
Set oHauptadapter = sSel.Item(1).Value
oSel.Clear
sSel.Clear
For i = 1 To CATIA.ActiveDocument.Product.Products.Count
    Set oProd_1 = CATIA.ActiveDocument.Product.Products.Item(i)
    If TypeName(oProd_1.ReferenceProduct.Parent) = "PartDocument" Then
        If InStr(1, oProd_1.PartNumber, "HAUPTADAPTER") = 0 Then
            Extract_skins Prod_1, oHauptadapter
        End If
    ElseIf TypeName(oProd_1.ReferenceProduct.Parent) = "ProductDocument" Then
        For j = 1 To CATIA.ActiveDocument.Product.Products.Item(i).Products.Count 'oProd_l.Products.Count
            Set oProd_2 = CATIA.ActiveDocument.Product.Products.Item(i).Products.Item(j) '.Value
            If TypeName(oProd_2.ReferenceProduct.Parent) = "PartDocument" Then
                Extract_skins Prod_2, oHauptadapter
            ElseIf TypeName(oProd_2.ReferenceProduct.Parent) = "ProductDocument" Then
                For k = 1 To CATIA.ActiveDocument.Product.Products.Item(i).Products.Item(j).Products.Count
                    Set oProd_3 = CATIA.ActiveDocument.Product.Products.Item(i).Products.Item(j).Products.Item(k) '.Value
                    If TypeName(oProd_3.ReferenceProduct.Parent) = "PartDocument" Then
                        Extract_skins Prod_3, oHauptadapter
                    ElseIf TypeName(oProd_3.ReferenceProduct.Parent) = "ProductDocument" Then
                            For W = 1 To CATIA.ActiveDocument.Product.Products.Item(i).Products.Item(j).Products.Item(k).Products.Count
                                Set oProd_4 = CATIA.ActiveDocument.Product.Products.Item(i).Products.Item(j).Products.Item(k).Products.Item(W) '.Value
                                If TypeName(oProd_4.ReferenceProduct.Parent) = "PartDocument" Then
                                    Extract_skins Prod_4, oHauptadapter
                                End If
                            Next
                    End If
                Next
            End If
        Next
    End If
Next
oHauptadapter.Update
End Sub
Sub Extract_skins(oProd As Product, oHauptadapter As Part)
Dim oPart As Part
Dim oSel As Selection
Dim oKol As New VBA.Collection
Set oSel = CATIA.ActiveDocument.Selection
Dim oHB As HybridBody
Set oPart = oProd.ReferenceProduct.Parent.Part
oPart.InWorkObject = oPart.MainBody
For Each Body In oPart.Bodies
    If (Body.Shapes.Count <> 0 And Body.InBooleanOperation = False) Then
        oSel.Add Body
        oKol.Add oPart.Name & "_" & Body.Name
    End If
Next
If oSel.Count <> 0 Then
    oSel.Copy
    oSel.Clear
    oSel.Add oHauptadapter
    oSel.PasteSpecial "CATPrtResultWithOutLink"
    oSel.VisProperties.SetShow catVisPropertyShowAttr
    For m = 1 To oKol.Count
        oSel.Item(m).Value.Name = oKol.Item(m)
    Next
End If
oSel.Clear
Set oKol = New VBA.Collection
oSel.Add oPart
oSel.Search ("(((((FreeStyle.Surface + 'Part Design'.Surface) + 'Generative Shape Design'.Surface) + 'Functional Molded Part'.Surface) & Name=Part_geometry) + (((((((FreeStyle.Line + '2D Layout for 3D Design'.Line) + Sketcher.Line) + Drafting.Line) + 'Part Design'.Line) + 'Generative Shape Design'.Line) + 'Functional Molded Part'.Line) & Name=Material_Vector));sel")
If oSel.Count <> 0 Then
    oSel.Copy
    oSel.Clear
    Set oHB = oHauptadapter.HybridBodies.Add
    oHB.Name = oPart.Name
    oSel.Add oHB
    oSel.PasteSpecial "CATPrtResultWithOutLink"
    oSel.VisProperties.SetShow catVisPropertyShowAttr
    For m = 1 To oSel.Count
        If oSel.Item(m).Value.Name = "Part_Geometry" Then oSel.Item(m).Value.Name = oPart.Name
    Next
End If
oSel.Clear
For Each oHBody In oPart.HybridBodies
    If (oHBody.Name = "RPS_Elements") Then
        If (oHBody.HybridShapes.Count <> 0 Or oHBody.HybridBodies.Count <> 0) Then oSel.Add oHBody
    End If
Next
If oSel.Count <> 0 Then
    oSel.Copy
    oSel.Clear
    oSel.Add oHB
    oSel.PasteSpecial "CATPrtResultWithOutLink"
    oSel.VisProperties.SetShow catVisPropertyShowAttr
End If
Set oKol = New VBA.Collection
oSel.Clear
End Sub


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

bgrittmann
Moderator
Konstrukteur


Sehen Sie sich das Profil von bgrittmann an!   Senden Sie eine Private Message an bgrittmann  Schreiben Sie einen Gästebucheintrag für bgrittmann

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 17. Jan. 2019 13:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Sylas 10 Unities + Antwort hilfreich

Servus

In deinem Code ist nirgendwo Prod_1 dimensioniert oder deklariert.
Sollte das nicht oProd_1 sein?

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Sylas
Mitglied



Sehen Sie sich das Profil von Sylas an!   Senden Sie eine Private Message an Sylas  Schreiben Sie einen Gästebucheintrag für Sylas

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 18. Jan. 2019 06:58    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Zitat:
Original erstellt von bgrittmann:
Servus

In deinem Code ist nirgendwo [i]Prod_1 dimensioniert oder deklariert.
Sollte das nicht oProd_1 sein?

Gruß
Bernd

[/i]



Genau so, Bernd! Ich bin dummes  Es ist immer Ein Buchstab-Fehler!
Danke!

Lucas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz