| |
 | 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
 
 Beiträge: 177 Registriert: 17.02.2006 V5,R19,SP9
|
erstellt am: 23. Aug. 2006 10:30 <-- editieren / zitieren --> Unities abgeben:         
|
mathias.bergundthal Mitglied informatiker
 
 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 / zitieren --> Unities abgeben:          Nur für CAMiCADse
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
 
 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 / zitieren --> Unities abgeben:          Nur für CAMiCADse
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
 
 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 / zitieren --> Unities abgeben:          Nur für CAMiCADse
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
   
 Beiträge: 1056 Registriert: 05.08.2000
|
erstellt am: 23. Aug. 2006 11:42 <-- editieren / zitieren --> Unities abgeben:          Nur für CAMiCADse
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
 
 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 / zitieren --> Unities abgeben:          Nur für CAMiCADse
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
 
 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 / zitieren --> Unities abgeben:          Nur für CAMiCADse
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
 
 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 / zitieren --> Unities abgeben:          Nur für CAMiCADse
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
 
 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 / zitieren --> Unities abgeben:          Nur für CAMiCADse
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 |