Autor
|
Thema: Inhalte eines Geo-Set überprüfen (1173 mal gelesen)
|
Gepetto Mitglied Diplomand auf Arbeitssuche
Beiträge: 32 Registriert: 04.03.2009
|
erstellt am: 25. Mrz. 2009 08:55 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen, Ich würde gerne nur Punkte in meinem Geometrical set haben. Wie kann ich absichern, dass nicht Linien oder Planes mit enthalten sind? Der Grund ist, dass ich die Punkte im Geo-Set durchgehen will und deren Namen überprüfen will. Alternativ wäre es auch möglich die Items des Ordners einzeln zu überprüfen und nur die Namen der Punkte zu überprüfen. Ich habe nur ein Problem: Ich weiss nicht wie ich das machen soll MfG Jan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 25. Mrz. 2009 12:52 <-- editieren / zitieren --> Unities abgeben: Nur für Gepetto
Vielleicht habe ich es nicht richtig verstanden, aber ich würde eine Suche auf den Typ Point machen. ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gepetto Mitglied Diplomand auf Arbeitssuche
Beiträge: 32 Registriert: 04.03.2009
|
erstellt am: 25. Mrz. 2009 15:03 <-- editieren / zitieren --> Unities abgeben:
Wäre ne Variante. Ich habe schon versucht zu suchen, aber das Problem ist, eine Suche funktioniert nicht NUR im Geo-Set. Ich habe alle Elemente des Geo-Set über Hybidshapes ermittelt. Jetzt brauche ich nur eine Abfrage die prüft ob ein Punkt Item(1) ist. Kann mir einer mal sowas programmieren??? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 25. Mrz. 2009 23:30 <-- editieren / zitieren --> Unities abgeben: Nur für Gepetto
Hallo Gepetto, Du kannst doch auch eine Suche auf Punkte innerhalb einer Selektion machen! Einfach das GeoSet auswählen, Suchfunktion starten, dort Typ "Punkt" und "Suchort" (?) 'Current_Selection' auswählen und schon werden die Punkte im selektierten GeoSet gesucht! Natürlich geht dies auch per Macro, aber vielleicht reicht Dir auch schon oberer Tipp... mfg, Lusilnie
------------------ Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!! frei nach größeren Geistern Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gepetto Mitglied Diplomand auf Arbeitssuche
Beiträge: 32 Registriert: 04.03.2009
|
erstellt am: 26. Mrz. 2009 08:28 <-- editieren / zitieren --> Unities abgeben:
|
denyo_1 Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 26. Mrz. 2009 10:28 <-- editieren / zitieren --> Unities abgeben: Nur für Gepetto
Hallo Gepetto, schau dir mal das Script hier an. Der Anwender muss zuerst eine geometrisches Set auswählen. Das Script sucht innerhalb dieses vom Anwender ausgewählten geometrischen Sets nach Punkten und verschiebt diese in eine Selection mit der du dann weiterarbeiten kannst. Einfach den Code nach meiner Kommentarzeile weiterschreiben wie du ihr brauchst. Code:
'----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------- '-------------------------------------------------PointsInSelection------------------------------------------------------------------------------------------------------ 'Author: Daniel Frauenrath 'Mail: daniel.frauenrath@gmx.com 'Release: 26.03.2009 'Version: 1.0 ' '**************************************************************************************************************************************************** '<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<Hauptmakro>>>>>>>>>& gt;>>>>>>>>>>>>>>>>>>>>>>> '**************************************************************************************************************************************************** Sub CATMain()'**********************************Abfrage Dokumente********************************** Dim oFenster As Windows Dim oDoc As Document Dim ObjType As String Set oFenster = CATIA.Windows If oFenster.Count = 0 Then Box = MsgBox("Es ist kein Dokument geladen!" + Chr(10) + "Das Makro kann nicht ausgeführt werden und wird beendet!", vbCritical, "Keine Dokument geladen") Exit Sub End If Set oDoc = CATIA.ActiveDocument ObjType = TypeName(oDoc) If ObjType <> "PartDocument" Then Box = MsgBox("Das aktive Dokument ist kein CATPart!" + Chr(10) + "Das Makro kann nicht ausgeführt werden!", _ vbCritical + vbOKOnly, "Falscher Dateityp") Exit Sub End If '**********************************Geometrisches Set auswählen********************************** Dim mySel As Selection Dim otype(0) Set oSel = oDoc.Selection Set mySel = oDoc.Selection oSel.Clear mySel.Clear otype(0) = "HybridBody" oSel.Clear Box = MsgBox("Bitte wählen Sie das geometrische Set aus indem Sie suchen möchten.", vbInformation + vbOKCancel, "Geo-Set auswählen") If Box = vbCancel Then Box = MsgBox("Sie haben die Selektion abgebrochen" + Chr(10) + _ "Das Makro wird nun beendet!", vbCritical, "Abbruch durch Nutzer") Exit Sub End If Auswahl = oSel.SelectElement2(otype, "Bitte wählen Sie ein geometrische Set aus \ ESC zum Abbrechen", False) If Auswahl = "Normal" Then mySel.Search "CATGmoSearch.Point,sel" Else Box = MsgBox("Sie haben die Selektion abgebrochen" + Chr(10) + _ "Das Makro wird nun beendet!", vbCritical, "Abbruch durch Nutzer") mySel.Clear Exit Sub End If If mySel.Count = 0 Then Box = MsgBox("Es wurden keine Punkte im ausgewählten geometrischen Set gefunden!" + Chr(10) + _ "Das Makro wird beendet!", vbExclamation + vbOKOnly, "Keine Punkte in Auswahl gefunden") mySel.Clear Exit Sub 'Hier kommt die Schleife in der du die Namen deiner Punkte auslesen und verändern kannst! Else For i = 1 To mySel.Count Set myPoint = mySel.Item(i).Value Box = MsgBox("Name des " & i & "-ten Punktes: ==> " & myPoint.Name, vbInformation + vbOKCancel, "Punktnamen") If Box = vbCancel Then mySel.Clear Exit Sub End If Next End If mySel.Clear End Sub
------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gepetto Mitglied Diplomand auf Arbeitssuche
Beiträge: 32 Registriert: 04.03.2009
|
erstellt am: 30. Mrz. 2009 13:19 <-- editieren / zitieren --> Unities abgeben:
|
Chrisma Mitglied Ingenieur
Beiträge: 85 Registriert: 29.03.2010 Solid Works 2013 Professional Win7 SP1 Intel Xeon 2,67GHz 12GB Ram
|
erstellt am: 19. Mai. 2010 16:39 <-- editieren / zitieren --> Unities abgeben: Nur für Gepetto
Servus, hab ein ähnliches Problem gerade. Ich suche nach einem Intersect also "GmoSearch.Intersect,sel" Was ich nicht verstehe, wo im unten oben beschriebenen Code das ",sel" her kommt. Es wird doch nur oSel und mySel dimensioniert. In meinen Fall will ich alle Intersects in einem MultipleOutput finden. So sieht mein Ansatz aus, bringt aber keine Reaktion. Dim hybridBodies2 As HybridBodies Set hybridBodies2 = hybridBody1.HybridBodies Dim hybridBody2 As HybridBody Set hybridBody2 = hybridBodies2.Item("Output_0") sel.Search "CATGmoSearch.GSMIntersect,hybridBody2 " ------------------ Hihihi, lol, hihihi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 19. Mai. 2010 18:51 <-- editieren / zitieren --> Unities abgeben: Nur für Gepetto
Servus AFAIK bedeutet beim Suchstring "sel", dass nur in der aktuellen Selektion gesucht wird, bei "all" überall. Dies lässt sich häufig durch eine Makroaufzeichnung bestimmen. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |