| |  | KISTERS 3DViewStation - Der Schlüssel zur Einsparung von CAD-Lizenzen, eine Pressemitteilung
|
Autor
|
Thema: CATIA V4 Programmierung (1757 mal gelesen)
|
integrator Mitglied IT
 Beiträge: 6 Registriert: 06.09.2002
|
erstellt am: 06. Sep. 2002 17:27 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen, Kennt sich jemand in den 1000 catgeo Routinen aus ? Ich möchte einfach ein CATIA Modell laden, alle Solidgeometrien darin um eine bestimmte Matrix transformieren und das Modell dann unter einem anderen Namen abspeichern, klingt nicht schwierig. Das Modell erhalte ich über die Funktion GIMREA, klappt prima. Um es umzupositionieren hole ich mir den Ursprung des aktuellen Models (G7MORG) und gehe damit in die Funktion G7MREA hinein, Methode "FILE". Nun habe ich die ID des aktuellen Modelos, welches ich mit mit G7MMOV transformiere. Probehalber habe ich mit G7MMAT auch mal die Position des Models abgefragt: Stimmt einwandfrei, Einheitstrafo vorher, verschobene Position danach. Nun bin ich eigentlich fertig und speichere das Modell mit G7MWRI ab, aber wenn ich es dann in CATIA lade, liegen alle Geometrien nach wie vor im Ursprung.. Was mache ich falsch ? Viele Grüsse Jürgen
IP |
Ex-Mitglied

|
erstellt am: 08. Sep. 2002 17:40 <-- editieren / zitieren -->
Hallo integrator, ich kenne mich zwar nicht mit den CATGEO-Routinen aus, aber glaube, dir trotzdem helfen zu können. Wenn ich dich richtig verstanden habe, bewegst du das ganze Modell mit deiner Matrix. Das bedeutet, daß sich die Lage der einzelnen geometrischen Elemente im Verhälznis zum Ursprung des Modelles nicht ändert (wie bei MODELS+MODIFY). Du brauchst die CATGEO-Routine(n), die die TRANSFOR-Funktion beschreibt, dann sollte es gehen. Viele Grüße, CEROG |
Brauburger Mitglied CAD-SystemIngenieur
 
 Beiträge: 389 Registriert: 05.04.2001
|
erstellt am: 09. Sep. 2002 08:41 <-- editieren / zitieren --> Unities abgeben:          Nur für integrator
Hallo integrator, Transformationen habe ich auch noch nicht programmiert. In der CATIA-OnlineDoku unter Routines findest Du aber Vielversprechendes. Ab GDAGAR gibt es eine Reihe von CATGEOs, die Transformationen erzeugen und anwenden. (So jedenfalls lese ich die Übersicht.) Das fertige Modell solltest Du dann mit GIMWRI zurückspeichern. Dirk IP |
integrator Mitglied IT
 Beiträge: 6 Registriert: 06.09.2002
|
erstellt am: 09. Sep. 2002 14:08 <-- editieren / zitieren --> Unities abgeben:         
Hallo CEROG, hallo Brauburger, Erstmal danke für die Hinweise. Mit Transformationen habe ich schon Versuche durchgeführt, allerdings mit folgenden Problemen: a) Um das gesamte Model zu transformieren, müsste ich (meiner Meinung nach, lasse mich gern korrigieren .. ) das Default -Achsensytem *AXS1 des Models verändern, was aber leider nicht geht, nichtmal interaktiv ("Illegal Element" Fehler.) b) Als Ausweg habe ich alle Space Elemente mit GUMSEL *SPC in einen Stack selektiert und diesen dann über die Funktion GSEGEL transformiert. Funktionierte erstaunlicherweise, aber diese Funktion braucht ewig lange, bei 4000 Elementen im Stack etwa 1/2 Stunde, obwohl das Ganze interaktiv sehr schnell geht. .. ich forsche weiter Viele Grüsse Jürgen IP |
Ex-Mitglied

|
erstellt am: 09. Sep. 2002 17:44 <-- editieren / zitieren -->
Hallo integrator, das Achsenkreuz *AXS1 läßt sich nicht verändern oder löschen. Mit den Transformationen bist du wohl auf dem richtigen Weg. Mir ist allerdings noch eine andere Möglichkeit eingefallen: Du startest ein neues Modell, lädst das Modell passiv hinzu, bei dem die Solids verschoben werden sollen, bewegst dieses Modell relativ zum neuen, kopierst die Solids, Flächen etc aus dem bewegten Modell heraus und speicherst das neuen Modell unter einem neuen Namen ab. Viele Grüße, CEROG |
integrator Mitglied IT
 Beiträge: 6 Registriert: 06.09.2002
|
erstellt am: 10. Sep. 2002 14:05 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen, Gerade ist mir ein kleiner Durchbruch gelungen ! Man muss es eben so programmieren, wie man es interaktiv auch macht. Und so könnte es gehen: - Model laden - alle 3D Elemente selektieren (GUMSEL mit *spc) - ein neues ELEMENT SET anlegen (GIWSET) - in einer Schleife alle Elemente vom Stack in das SET kopieren (GUSREA und GICTSE) - das SET transformieren (GSGGG1 = move, GSGGGS = copy) - Model abspeichern (GIMWRI) Warum das mit SET's besser geht, als mit Element Stacks verstehe ich nicht, aber Fakt ist, dass er jetzt statt 1/2 Stunde nur noch 10 Sekunden für die Modeltransformation braucht ! Viele Grüsse integrator
IP |
Brauburger Mitglied CAD-SystemIngenieur
 
 Beiträge: 389 Registriert: 05.04.2001 NX_2000 TC_11.6.0.19
|
erstellt am: 10. Sep. 2002 14:56 <-- editieren / zitieren --> Unities abgeben:          Nur für integrator
Hallo integrator, mich würde jetzt noch interessieren, ob das Auf- und Abbauen des Stacks mit 4000 *SPC-ElementNummern oder 4000* der Aufruf einer CATGEO zum Transformieren die Zeit frißt. Hast Du den langsamen Source noch und kannst die CATGEO zum Transformieren auskommentieren? Dirk IP |
integrator Mitglied IT
 Beiträge: 6 Registriert: 06.09.2002
|
erstellt am: 10. Sep. 2002 15:10 <-- editieren / zitieren --> Unities abgeben:         
Hallo Brauburger, Zum "langsamen Code": Das Aufbauen des Stacks geht ziemlich flink, aus der GUMSEL Routine ist das Programm schon nach Sekunden wieder da. Danach wird mit aller CPU-Kraft transformiert (über 90%, kommt natürlich unter UNIX auf die generelle Auslastung der Maschine an). Eigentlich kann ich mir nur vorstellen, dass intern der Stack ständig umsortiert wird o.Ä., denn die Transformation selber schafft er ja auf anderem Wege (s.oben) in weniger als 1/2 Minute. Den Code habe ich noch, würde ihn aber ungern hier posten, da das mein erstes CATGEO Programm ist & es ziemlich krautig aussieht :-) Viele Grüsse integrator
IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |