Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  CreateReferenceFromObject Problem

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:  CreateReferenceFromObject Problem (5436 mal gelesen)
rattlesnake
Mitglied



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

Beiträge: 47
Registriert: 22.10.2007

Vb .NET CATIA V5R19

erstellt am: 14. Jun. 2010 11:20    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 zusammen,

ich versuche gerade mein erstes Projekt unter VB .NET zu erstellen. Hab zuvor mit VBA geschrieben und da eine spezielle Funktion erstellt, welche mit ein Body PasteSpecial As Result macht:

Code:
Sub CATMain()
    Dim tPart As Part
    Set tPart = CATIA.Documents.Item("Part7.CATPart").Part
   
    Dim body1 As Body
    Set body1 = tPart.Bodies.Item("TestBody")
   
    Dim tBody As INFITF.AnyObject
    Set tBody = PasteSpecial(body1, tPart)
   
    Dim tReference As INFITF.Reference
    Set tReference = tPart.CreateReferenceFromObject(tBody)
End Sub

Public Function PasteSpecial(ByVal tBody As MECMOD.Body, ByVal pPart As MECMOD.Part) As INFITF.AnyObject
    Dim tActiveDocument As INFITF.Document
    Set tActiveDocument = CATIA.activeDocument

    Dim killSelection As INFITF.Selection
    Set killSelection = CATIA.activeDocument.Selection
    killSelection.Clear
    killSelection.Add tBody
    killSelection.Copy
    killSelection.Clear
    killSelection.Add pPart
    killSelection.PasteSpecial "CATPrtResultWithOutLink"
    pPart.UpdateObject killSelection.Item(1).value

    tActiveDocument.Activate
    Set PasteSpecial = killSelection.Item(1).value
    killSelection.Clear
End Function



Nun habe ich eine statische Funktion mit vb.net gemacht, welche mit quasi das übernimmt:

Code:
Public Shared Function PasteSpecial(ByVal objectToKill As MECMOD.Body, ByVal pPart As MECMOD.Part, ByVal pPasteSpecialType As PasteSpecialType) As MECMOD.Body
    Dim tActiveDocument As INFITF.Document = Catia.ActiveDocument
    Dim tBody As MECMOD.Body

    Dim tlSelectionKill As INFITF.Selection
    tlSelectionKill = CATIA.activeDocument.Selection
    tlSelectionKill.Clear()
    tlSelectionKill.Add (objectToKill)
    tlSelectionKill.Copy()
    tlSelectionKill.Clear()
    tlSelectionKill.Add (pPart)
    tlSelectionKill.PasteSpecial (pPasteSpecialType.ToString)
    tBody = tlSelectionKill.Item(1).value
    pPart.Update()
    tlSelectionKill.Clear()

    tActiveDocument.Activate()
    Return tBody
End Function


Aufruf:

Code:
im tBody As MECMOD.Body = CsiControls.CatiaDocumentStructure.CatiaBasicDocument.PasteSpecial( _
                  tCatiaPart.PartDocument.Part.MainBody, _
                  tWorkPart.PartDocument.Part, _
                  CsiControls.CatiaDocumentStructure.CatiaBasicDocument.PasteSpecialType.CATPrtResultWithOutLink)

Dim tMainBodyResult As INFITF.Reference = tPart.CreateReferenceFromGeometry(tBody)



Klappt auch alles wunderbar, nur möchte ich danach von dem Body ein Extract machen und brauch eine Referenz. In VBA alles Klasse. In VB .NET bekomme ich immer bei dem Erstellen der Referenz eine Exception. Entweder eine ArgumentExpception mit der Message "Der Wert liegt außerhalb des erwarteten Bereichs."
Meine Vermutung ist, dass das Ergebnis der Selection Selection.Item(1).value nicht weiter verwendbar ist. Auch funktioniert keine Referenz auf Part.Bodies.Item(x) zu erstellen. Einzige funktionierende Möglichkeit ist über Part.Bodies.Item("String") eine Referenz zu erstellen.

Hat jemand eine Idee woran es konkret liegt oder einen Work-Arround um dieses Problem?

Vielen, Vielen Dank.

     

------------------
                  \\\\|////
                  \\ _ _ //
                   ( o o )
================oOOo-(_)-oOOo==================
    The next time you think you are perfect,
           try walking on water
========================Oooo===================
                  oooO  (  )
                  (  )  ) /
                   \ ( (_/
                    \_)

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

rattlesnake
Mitglied



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

Beiträge: 47
Registriert: 22.10.2007

Vb .NET CATIA V5R19

erstellt am: 14. Jun. 2010 11:31    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

Hat sich erledigt. Ganzen Morgen rumgesucht, Froumsbeitrag geschrieben, und 10 Minuten später die Lösung. Ich versuch von einem anderen Part eine Referenz zu erstellen. Das kann nie funktionieren. Es sollte schon das Part sein, indem der Body liegt. Trotzdem vielen Dank an alle, die versucht haben mein Problem zu lösen.

------------------
                  \\\\|////
                  \\ _ _ //
                   ( o o )
================oOOo-(_)-oOOo==================
    The next time you think you are perfect,
           try walking on water
========================Oooo===================
                  oooO  (  )
                  (  )  ) /
                   \ ( (_/
                    \_)

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