| |
 | CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48 |
| |
 | KISTERS 3DViewStation: Germar Nikol - Der Visionär hinter der Erfolgsgeschichte, eine Pressemitteilung
|
Autor
|
Thema: Punkte verbinden (3301 mal gelesen)
|
wulfgang Mitglied

 Beiträge: 64 Registriert: 29.04.2007 CATIA V5 R18
|
erstellt am: 09. Mrz. 2010 14:04 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich habe noch mal eine Frage  Ich habe eine große Menge von Punkten, die ich mit geraden Linien verbinden möchte. Benutze ich eine oder mehrere Polyline stürzt CATIA ab. Ich verwende CATVBA. Gibt es eine Möglichkeit so viele Punkte miteinander zu verbinden, ohne den Rechner abstürzen zu lassen? Anbei ist mein Beispielcode.
Code: Sub SubTest() Dim Document1 As Document Set Document1 = CATIA.ActiveDocument Dim TestPart As Part Set TestPart = Document1.Part Dim hybridBody1 As HybridBody Set hybridBody1 = TestPart.HybridBodies.Add() Dim hybridShapeFactory1 As Factory Set hybridShapeFactory1 = TestPart.HybridShapeFactory For k = 1 To 100 Set hybridShapePolyline1 = hybridShapeFactory1.AddNewPolyline() For i = 1 To 100 Set Point = hybridShapeFactory1.AddNewPointCoord(i, i, i) Set reference1 = TestPart.CreateReferenceFromObject(Point) hybridShapePolyline1.InsertElement reference1, i Next hybridBody1.AppendHybridShape hybridShapePolyline1 Next TestPart.Update End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
       
 Beiträge: 12054 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 09. Mrz. 2010 15:08 <-- editieren / zitieren --> Unities abgeben:          Nur für wulfgang
|
wulfgang Mitglied

 Beiträge: 64 Registriert: 29.04.2007 CATIA V5 R18
|
erstellt am: 09. Mrz. 2010 16:09 <-- editieren / zitieren --> Unities abgeben:         
|
zoltan.bekesi Mitglied
 
 Beiträge: 321 Registriert: 22.10.2006 Job: CATIA V5R19 / XP 32bit MS Office 2003 Microstation V8 2004 Edition DELL Precision M6300
|
erstellt am: 09. Mrz. 2010 19:27 <-- editieren / zitieren --> Unities abgeben:          Nur für wulfgang
Hallo, kannst evtl. versuchen nach Set Point1 die Anweisung Point1.Compute einzufügen und den Update nur in der äußeren Schleife drinlassen. Allerdings: Die Schleife und der Update wird insgesamt 100*100=10000-mal durchgelaufen. Das brauch natürlich sein Zeit. Vielleicht streikt CATIA sogar, weil der Speicherbedarf plötzlich zu groß wird. Ist wirklich die komplette Schleife notwendig, beide verschachtelt? Ich sehe nur da eine Möglichkeit. Gruß, Zoltan Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wulfgang Mitglied

 Beiträge: 64 Registriert: 29.04.2007 CATIA V5 R18
|
erstellt am: 09. Mrz. 2010 22:45 <-- editieren / zitieren --> Unities abgeben:         
Also ich habe alle drei Varianten durchprobiert. Dies war bei mir mit 1min die schnellste. Die anderen Varianten mit Point.compute und Testpart.update nach außen sind jeweils 10s langsamer. Zwei Schleifen habe ich deshalb genommen, weil wenn ich alle Punkte in ein Polygon packe, der Rechner immer abstürzte und ich mal probieren wollte, ob man 10000Punkte miteinander verbinden kann. Code: Sub SubTest() Dim Document1 As Document Set Document1 = CATIA.ActiveDocument Dim TestPart As Part Set TestPart = Document1.Part Dim hybridBody1 As HybridBody Set hybridBody1 = TestPart.HybridBodies.Add() Dim hybridShapeFactory1 As Factory Set hybridShapeFactory1 = TestPart.HybridShapeFactory For k = 1 To 100 Set hybridShapePolyline1 = hybridShapeFactory1.AddNewPolyline() For i = 1 To 100 Set Point = hybridShapeFactory1.AddNewPointCoord(i, i, i) Set reference1 = TestPart.CreateReferenceFromObject(Point) hybridShapePolyline1.InsertElement reference1, i Next hybridBody1.AppendHybridShape hybridShapePolyline1 TestPart.Update Next End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |