Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Inversion

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:  Inversion (861 mal gelesen)
BigCheese
Mitglied
Dipl-Ing


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

Beiträge: 130
Registriert: 12.05.2004

CATIA V5R19 SP3

erstellt am: 15. Okt. 2007 16:10    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 hätte gerne die Inversion einer Selektion, also wie mit dem Kommandozeilenbefehl "c:Inversion". Ich möchte aber auf CATIA.StartCommand("Inversion") nach Möglichkeit verzichten.
Bin wie immer für jeden Tipp dankbar 

Gruß, Alex

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

Mörchen
Ehrenmitglied V.I.P. h.c.
CAD-Trainerin (CATIA V5)



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

Beiträge: 3830
Registriert: 14.03.2007

Release 19 SP2

erstellt am: 15. Okt. 2007 16:21    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 BigCheese 10 Unities + Antwort hilfreich

Hi Alex,

wenn ich dich richtig verstanden habe, dann kriegst Du das im Produkt im Kontextmenü "Auswahlmodus"...


SORY!!!!!!! Ich seh jetzt erst, dass das eine Frage zum Programmieren war. Ich kanns nicht mehr rausnehmen.


Gruß
Mörchen

[Diese Nachricht wurde von Mörchen am 15. Okt. 2007 editiert.]

[Diese Nachricht wurde von Mörchen am 15. Okt. 2007 editiert.]

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

BigCheese
Mitglied
Dipl-Ing


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

Beiträge: 130
Registriert: 12.05.2004

CATIA V5R19 SP3

erstellt am: 15. Okt. 2007 16:26    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

Trotzdem Danke für den Screenshot 

Genau diese Funktion hätte ich gerne 

Gruß, Alex

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

ize
Mitglied
Student


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

Beiträge: 28
Registriert: 27.09.2007

erstellt am: 16. Okt. 2007 14:54    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 BigCheese 10 Unities + Antwort hilfreich

hab was ähnliches in vb, da hab ich die selection als collection,
nimm einfach eine selection mit allen elementen und deselektiere die in der anderen selektion, ist zwar hässlich aber geht gut 

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

BigCheese
Mitglied
Dipl-Ing


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

Beiträge: 130
Registriert: 12.05.2004

CATIA V5R19 SP3

erstellt am: 16. Okt. 2007 16:53    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 Ize,

schönen Dank für Deine Idee.
Kannst Du vielleicht noch etwas genauer werden? Zum einen wie selektiere ich _schnell_ alles und zum anderen wie deselektiere ich dann wieder das andere? Ich hätte da zwar grob die Vorstellung das über

Code:
Selection.Remove(i)

erreichen könnte, aber irgendwie drängt sich mir da die Vermutung auf, dass das Ermitteln des Index etwas zäh sein könnte.
Also wenn Du mir da vielleicht noch 'nen weiteren Ansatz liefern könntest, wäre das klasse 

Danke und Gruß,
Alex

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

ize
Mitglied
Student


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

Beiträge: 28
Registriert: 27.09.2007

erstellt am: 17. Okt. 2007 08:35    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 BigCheese 10 Unities + Antwort hilfreich

kommt auf die sprache an
in vb/vba zB sowas wie

For i = 1 To oSelection.count2
    selektierteCollection.add oSelectuin.item2(i)
Next i
oSelection.clear
oSelection.search "suchstringfüralle"
For i = oSelection.count2 To 1 Step -1
    For j = 1 To selektierteCollection.count
        If oSelection.item2(i) = selektierteCollection.item(j) Then
            oSelection.remove i
        End If
    Next j
Next i

so in etwa könnte es klappen, musst halt irgendwie bei item nen gescheiten eindeutigen namen nehmen, also sowas wie item(i).name, kA ob der eindeutig ist wir hams hier etwas anders gemacht, aber das darf ich dir denk ich kaum zeigen   

edit:
ups, sollte erstmal lesen, das würde jetzt alle anderen löschen und nicht selektieren denk ich 

edit2:

For i = 1 To oSelection.count2
    selektierteCollection.add oSelectuin.item2(i)
Next i
oSelection.clear
oSelection.search "suchstringfüralle"
For i = 1 To oSelection.count2
    ganzeCollection.add oSelection.item2(i)
Next i
For i = ganzeCollection.count To 1 Step -1
    For j = 1 To selektierteCollection.count
        If selektierteCollection.item(j).name = ganzeCollection.item(i).name Then
            ganzeCollection.remove i
        End If
    Next j
Next i
oSelection.clear
For i = 1 To ganzeCollection.count
    oSelection.add ganzeCollection.item(i)
Next i

und es wird immer hässlicher und wird so wohl nie gehen, aber probiers mal 
[Diese Nachricht wurde von ize am 17. Okt. 2007 editiert.]

[Diese Nachricht wurde von ize am 17. Okt. 2007 editiert.]

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

BigCheese
Mitglied
Dipl-Ing


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

Beiträge: 130
Registriert: 12.05.2004

CATIA V5R19 SP3

erstellt am: 17. Okt. 2007 10:57    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 Ize,

danke für Deine Ausführung.
Ich glaube auch nicht, dass das so funktioniert  aber Du verwendest auch den Ansatz, der mir so vorgeschwebt ist. Ich fürchte allerdings, dass die verschachtelten Schleifen das ganze recht langsam werden lassen... mal sehen, vielleicht mache ich mir die Mühe, das mal so umzusetzen...

Grüße, Alex

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

ize
Mitglied
Student


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

Beiträge: 28
Registriert: 27.09.2007

erstellt am: 17. Okt. 2007 12: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 BigCheese 10 Unities + Antwort hilfreich

gudn,
also nach meinen erfahrungen mit unserm programm, macht das durchlaufen der collections nur einen bruchteil der zeit aus, am längsten hat immer die search in der selection gebraucht. aber ist halt auch ein externes programm, keine ahnung wie du das machst 

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

EmilioSanchez
Mitglied



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

Beiträge: 70
Registriert: 02.11.2003

Intel I7 4700MQQ
24GB
Win10 Pro 64-Bit
Catia V5 R19/R26/28/29

erstellt am: 19. Okt. 2007 07:13    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 BigCheese 10 Unities + Antwort hilfreich

Hallo,

probiers mal so (vorher natürlich was selektieren):


' ***********************************************************************
'  Purpose    : Invert the selection.
'  Assumptions : A CATProduct document should be active and some components selected.
'  Author      :
'  Languages  : VBScript
'  Locales    : English
'  CATIA Level : V5R6
' ***********************************************************************

Sub CATMain()

    ' Retrieve the Groups collection
  ' Dim cGroups As AnyObject
    Set cGroups = CATIA.ActiveDocument.Product.GetTechnologicalObject("Groups")

    ' Create a group with selected products
    Dim oGroup As Group
    Set oGroup = cGroups.AddFromSel

    ' Fill the selection
    oGroup.FillSelWithInvert

    ' Delete the group
    cGroups.Remove 1

End Sub


Gruß

Bernd

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

BigCheese
Mitglied
Dipl-Ing


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

Beiträge: 130
Registriert: 12.05.2004

CATIA V5R19 SP3

erstellt am: 19. Okt. 2007 16: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

Hoi Bernd,

auch ein dankeschön an Dich für Deinen Vorschlag.
Meine derzeitige Lösung sieht ähnlich aus. Leider bekomme ich durch das oGroup.FillSelWithInvert nicht die Inversion. In meiner Produktstruktur wird dadurch immer nur der äußerste Ast eines Produktes ausgewählt. Da ich aber alles löschen möchte, was nichts mit meiner ursprünglichen Selektion zu tun hat, löse ich das Ganze durch eine Schleife in der ich solange diese Funktion anwende, bis alles gelöscht ist, was nicht zu meiner Selektion gehört.
Eine Inversion, wie ich sie manuell ausführen kann, würde mir einfach besser gefallen da es vom Löschen her schneller ginge und der Baum nicht so nervös zuckt und blinkt 

Grüße und schönes WE,
Alex

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