Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  CATIA V5 Programmierung
  .NET und Selection = 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
  
CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48
  
KISTERS 3DViewStation: Germar Nikol - Der Visionär hinter der Erfolgsgeschichte, eine Pressemitteilung
Autor Thema:  .NET und Selection = Problem (4777 mal gelesen)
CAMiCADse
Mitglied



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

Beiträge: 177
Registriert: 17.02.2006

V5,R19,SP9

erstellt am: 23. Aug. 2006 10: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 zusammen!

Ich arbeite mit VB 2005 und R14,SP5 und schlage mich dauernd mit Abstürzen herum sobald eine Selection im Spiel ist.

Das da ein Problem mit .NET und Selection existiert ist bekannt:

http://www-1.ibm.com/support/docview.wss?rs=886&context=SSVJ2K&q1=%22.net%22&q2=HD35054&uid=swg1HD35054&loc=en_US&cs=utf-8&lang=en

http://www.coe.org/forums/messageview.cfm?catid=10&threadid=6568&highlight_key=y&keyword1=%2Enet


Ich konnt die Abstürze minimieren, indem ich pro Dokument wirklich nur eine Selection nur einmal deklariert habe. Also keine Sub die öfter aufgerufen wird mit: MySel=CATIA.ActiveDocument.Selection.

Was besonders nervt: Tritt irgendwo (unabhängig von der Selectino) ein Laufzeitfehler auf, dann lässt sich keine Selection mehr zuweisen. Erst wenn das CATIA.Doc geschlossen und neu geladen wurde, läuft es wieder.

Killer-Zeilen zum testen:
MySel=CATIA.ActiveDocument.Selection
MySel=CATIA.ActiveDocument.Selection

-->
Ausnahmefehler des Servers. (Ausnahme von HRESULT: 0x80010105 (RPC_E_SERVERFAULT))

Der Fehler lässt sich aber nicht 100% reproduzieren, manchmal läufts manchmal nicht

Wer hat ähnliche Erfahrungen gemacht?
Oder vielleicht sogar eine Lösung??

Gruß
CAMiCADse

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

mathias.bergundthal
Mitglied
informatiker


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

Beiträge: 153
Registriert: 03.08.2005

HP xw6000 - WXP Pro SP2 - CATIA V5 R16 SP9 - Visual Studio 2005

erstellt am: 23. Aug. 2006 11:22    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 CAMiCADse 10 Unities + Antwort hilfreich

Hallo CAMiCADse,

also ich habe das problem nicht... oder ich habs noch nicht bemerkt...


habs folgeder massen gemacht bei mir:

Code:

Public xSel As INFITF.Selection = Nothing


xSel = CATIA.ActiveDocument.Selection
xSel.Add(CV5Obj)
xSel.Copy
xSel.Paste
xSel.Clear


und das xSel brauch ich sicher 3-4 mal und bis jetzt hatte ich noch nie einen zwischenfall.

ups... ich bin auf R16... hoffe für euch und mich das es an dem liegt 

viel glück, mathias


------------------
In diesem Zeitalter der Massenkomunikation sind Verrücktheiten ansteckend.

[Diese Nachricht wurde von mathias.bergundthal am 23. Aug. 2006 editiert.]

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

Augustiner
Mitglied
Konstrukteur


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

Beiträge: 188
Registriert: 02.12.2005

HP Workstation
Windows XP Professional
Visual Studio 2005 Professional
CATIA V5 R14SP5 & R17SP3

erstellt am: 23. Aug. 2006 11:23    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 CAMiCADse 10 Unities + Antwort hilfreich

Servus

ich hatte auch Probleme mit Selection,habe mich auch darauf beschränkt
nur eine Selection zu deklarieren pro Form.Funktioniert bis jetzt einwandfrei.Poste mal deinen Code der Dir Probleme bereitet.

Gruß Andi

Arbeite auch mit R14

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

Augustiner
Mitglied
Konstrukteur


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

Beiträge: 188
Registriert: 02.12.2005

HP Workstation
Windows XP Professional
Visual Studio 2005 Professional
CATIA V5 R14SP5 & R17SP3

erstellt am: 23. Aug. 2006 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 Nur für CAMiCADse 10 Unities + Antwort hilfreich

Achso

ich habe die Selektion folgendermaßen deklariert

Dim Sel As Selection = CATIA.ActiveDocument.Selection

und bevor sie das erste mal verwendet wird noch

sel.clear()

Und wenn du im DebugModus auf einen Fehler läufst solltest du Catia vor dem nächsten Versuch unbedingt neu starten.

Gruß Andi

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

Jens Hansen
Mitglied
CAx-Spezialist


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

Beiträge: 1056
Registriert: 05.08.2000

erstellt am: 23. Aug. 2006 11:42    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 CAMiCADse 10 Unities + Antwort hilfreich

Hallo,
vielleicht lässt sich der Bug umgehen, wenn man mittels LateBinding auf CATIA zugreift und nicht über die Libaries.
Es hätte zumindest den Vorteil, dass das programm auf CATIA "wartet" und nicht einfach mit dem nächsten Befehl weiter macht obwohl CATIA den letzten noch nicht abgearbeitet hat.

Jens Hansen

------------------
Inoffizielle CATIA-Hilfeseite
http:\\catia.cad.de

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

noir333
Mitglied
Ingenieur


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

Beiträge: 148
Registriert: 27.01.2004

Dell Precision 450 Dual Xeon, 2MB RAM,
XP SP2, NX3
V5R17SP3

erstellt am: 20. Sep. 2006 10:36    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 CAMiCADse 10 Unities + Antwort hilfreich

Hallo .net-Jünger,

nach dem ersten Schreck, dass Catia .Net gar nicht unterstützt kann ich nur bestätigen was Augustiner geschrieben hat. Ich habe ständig Fehlermeldungen gehabt. Sobald man die Selction nur einmal pro Form verwendet waren die Probleme wie weggeblasen.

Trotzdem sollte man sich mit Vorsicht für .Net entscheiden. Ich habe mich deswegen für .Net entschieden, weil in einem Forum-Beitrag stand, dass VB6 bald nicht mehr unterstützt wird. Na ja, dann wird wohl nichts mehr unterstützt, oder was?

Grüße an alle .Net'ler.

------------------
Bernd

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

Augustiner
Mitglied
Konstrukteur


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

Beiträge: 188
Registriert: 02.12.2005

HP Workstation
Windows XP Professional
Visual Studio 2005 Professional
CATIA V5 R14SP5 & R17SP3

erstellt am: 21. Sep. 2006 18:25    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 CAMiCADse 10 Unities + Antwort hilfreich

Servus

hab mal eine Alternatvie zur selection gebastelt,ersetzt sie zwar nicht aber vielleicht kanns der ein oder andere gebrauchen.Man benötigt eine leeres Form mit einem Treeview Steuerelement,einer Textbox und einen Button.
In die Textbox gibt man den Suchstring ein und dann wird die Struktur rekursiv durchsucht und die Product Namen mit dem Suchstring verglichen.
Sofern es sich um ein Part handelt werden die gefunden Objekte in ein ArryList hinzugefügt und im Sub Geoset aufgerufen und bearbeitet, in meinem Beispiel wird ein Geoset eingefügt


Code:

Public CATIA As Object = (System.Runtime.InteropServices.Marshal.GetActiveObject("CATIA.Application"))
Public ArrayObjekte As New ArrayList
 
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        Analysieren(CATIA.ActiveDocument.Product)
        Geoset()
        ArrayObjekte.Clear()

    End Sub

    Sub Analysieren(ByVal P As Product)

        Dim PP As Products = P.Products
        Dim Pdoc As Document = P.ReferenceProduct.Parent
        Dim StrArray() As String = {Pdoc.Name}
        Dim FindThisString As String = TextBox1.Text

        For Each Str As String In StrArray

            If Str.Contains(FindThisString) Then
                If TypeOf (Pdoc) Is PartDocument Then
                    TreeView1.Nodes.Add(P.Name)
                    ArrayObjekte.Add(P)
                    MsgBox("Part_" & P.PartNumber)
                Else
                    MsgBox("Product")
                End If
            End If
        Next

        For I As Integer = 1 To PP.Count
            Analysieren(PP.Item(I))
        Next

    End Sub

    Sub Geoset()

        For i As Integer = 0 To ArrayObjekte.Count - 1

            Dim oProd As Product = ArrayObjekte.Item(i)
            Dim oPartdoc As PartDocument = oProd.ReferenceProduct.Parent
            Dim oPart As Part = oPartdoc.Part
            Dim oSet As HybridBody = oPart.HybridBodies.Add
        Next

    End Sub


Gruß Andi

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

Augustiner
Mitglied
Konstrukteur


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

Beiträge: 188
Registriert: 02.12.2005

HP Workstation
Windows XP Professional
Visual Studio 2005 Professional
CATIA V5 R14SP5 & R17SP3

erstellt am: 26. Sep. 2006 16:39    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 CAMiCADse 10 Unities + Antwort hilfreich

Hallo

hier noch ein Beitrag aus dem 3DS Forum zum Thema selection.

Zitat:
The selection object seems to have changed to a singelton or similar - that is it's COM reference count can only be 1 - a simple test to prove this is declare two INFITF.Selection objects and then set them equal to ActiveDocument.Selection - you should find an error thrown on every occasion.


To compound this problem, the way you obtain a reference to the CATIA application itself affects this problem. If you use the .NET approach for COM objects

System.Runtime.InteropServices.Marshal.GetActiveObject("catia.application")

instead of the old VB6 method of

GetObject(, "CATIA.Application") (need to directcast this to INFITF.Application)

the .NET framework seems to struggle to release the reference - hence if you access the selection object twice within a short period (0.1s on my PC) the reference count will be 2 and an error will occur.

I think there's still a little more to find out on this issue, but this has solved a number of problems I've had so far.

Cheers


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

Augustiner
Mitglied
Konstrukteur


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

Beiträge: 188
Registriert: 02.12.2005

HP Workstation
Windows XP Professional
Visual Studio 2005 Professional
CATIA V5 R14SP5 & R17SP3

erstellt am: 13. Feb. 2007 18:02    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 CAMiCADse 10 Unities + Antwort hilfreich

Zitat:
Killer-Zeilen zum testen:
MySel=CATIA.ActiveDocument.Selection
MySel=CATIA.ActiveDocument.Selection

Servus

Nur zur Info noch.
Hab das jetzt nochmal versucht mit R14 & R17

R14: Catia schmiert sofort ab keine Chance

R17: Nix passiert Catia läuft ohne Probleme weiter 

Gruß Andi

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)2025 CAD.de | Impressum | Datenschutz