Autor
|
Thema: CATIA = Schlaftablette? (1041 mal gelesen)
|
inselking Mitglied Programmierer
Beiträge: 10 Registriert: 16.03.2006
|
erstellt am: 17. Mrz. 2006 07:48 <-- editieren / zitieren --> Unities abgeben:
Moin zusammen, mich nervt, dass CATIA sehr langsam ist, wenn ich darauf mit einem VB-Programm zugreife. Liegt vermutlich auch an meiner Datenmenge. Gibt es vielleicht trotzdem eine Möglichkeit, schneller zu werden? Habe ein Part mit ca. 20.000 Punkten und möchte daraus alle Punkte, die z.B. grün sind (~100), auslesen. Das dauert lange. Ich ermittle die Punkte über die Selection.Search-Funktion. Gibt es da vielleicht bessere Möglichkeiten. Außerdem braucht CATIA sehr lange, wenn ich einen dieser Punkte in meinem Programm anklicke und ich den über das Programm gleichzeitig in CATIA markiere (auch mit Selection.Search). Ist das auch normal? Dann brauch ich mein Programm gar nicht weiter zu programmieren... Das wär nicht gut... Hoffe, es geht schneller. Philipp Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 17. Mrz. 2006 07:58 <-- editieren / zitieren --> Unities abgeben: Nur für inselking
Hallo, alles was du über die Selection machst, ist nicht unbedingt schnell. Du kannst die Punkt(-Features) direkt im Part greifen, das geht wesetnlich schneller. Wenn ich Punkte erzeuge (aus xls- Koordinate oder die Koordinaten von Punkten auslese, dann dauert das für 1000 Punkte vieleicht 10 sec. Das würde ich nicht unbedingt als langsam bezeichnen. Wenn du ein Part geöffnet hast, in dem sich ein GeometricalSet mit einem Punkt befindet, bekommst du den Punkt mit: Set oPoint = Catia.ActiveDocument.Part.HybridBodies.Item(1).HybridShapes.Item(1) Wenns mehrere sind, die immer wo anders liegen, das Part rekursiv nach Punkten durchsuchen. Gruss TomTom ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
inselking Mitglied Programmierer
Beiträge: 10 Registriert: 16.03.2006
|
erstellt am: 17. Mrz. 2006 09:00 <-- editieren / zitieren --> Unities abgeben:
Problem dabei ist aber, dass ich nur bestimmte Punkte aus dem Part auslesen möchte. Um das zu realisieren, habe ich gesagt, dass ich einfach alle Punkte, die ich brauche, grün färbe und dann nach grünen Punkten suche. Ich weiß vorher nicht, wo diese Punkte sind oder wie die heißen. Außerdem können zwischendurch auch andere Elemente vorhanden sein. Dann würde ich mit Item(1) nicht weiterkommen. Was meinst Du mit rekursiv durchsuchen? Dann müsste ich auch wieder über eine Selection gehen, oder wie muss ich das verstehen? Danke, Philipp Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 17. Mrz. 2006 14:40 <-- editieren / zitieren --> Unities abgeben: Nur für inselking
Hallo, .item(1) war ein Bsp dafür, wo ein Punkt in der Objectstruktur abgelegt ist. Rekursiv durchsuchen heisst: Du verwendest eine Routine (Sub oder Func) die sich bei einem bestimmten Ereignis wieder selbst aufruft. D.h. meine Routine sucht alle Hybridbodies nach Punkten durch und nach anderen Hybridbodies. Wenn andere HB gefunden werden, ruft das script die Routine nochmal auf und übergibt den gefundenen HB als Eingangselement. Usw.... Farbe ist schlecht: Farben kannst du nur auslesen, indem du das Object in eine Selection schiebst. Mit oSelection.Add(oPoint). Und das dauert dann wieder länger, wobei es nach meiner Erfahrung schneller geht, wenn wenige Objekte (ein Pkt) in der Sel sind. Das soll heissen, das das Verhältnis PktAnzahl/Zeitdauer nicht linear ist. Gruss TomTom ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stoffel Mitglied Student
Beiträge: 322 Registriert: 09.10.2002 R6/V2010
|
erstellt am: 20. Mrz. 2006 15:21 <-- editieren / zitieren --> Unities abgeben: Nur für inselking
diesen Punkt "grün einfärben" kannst du dir sparen - wo ist denn der Nutzen? Schieb die relevanten Punkte doch beim Durchsuchen einfach in ein Feld.... [Diese Nachricht wurde von Stoffel am 20. Mrz. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|