Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Join: Flächen aus Parts importieren

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:  Join: Flächen aus Parts importieren (1017 mal gelesen)
mgheinz1001
Mitglied
Dipl.-Ing. (FH)


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

Beiträge: 109
Registriert: 17.03.2005

erstellt am: 19. Jul. 2006 09:05    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,

ich habe folgendes Problem beim Erzeugen von Joins:

Mein Makro soll es dem Anwender ermöglichen Flächen in einem Product zu selektieren, die dann anschließend in einem Join verbunden werden. Wählt der Anwender Flächen aus, die sich alle in dem selben Part befinden, ist es kein Problem - hier zeichnet der Rekorder nachvollziehbaren Code auf.

Wählt der Anwender jedoch Flächen aus verschiedenen Parts, wird es ungleich schwieriger. Führt man dies interaktiv in CATIA aus (Flächen von verschiedenen Parts selektieren->Join), so legt CATIA das Join in dem Part an, dessen Fläche als erstes selektiert wurde. Außerdem werden die Flächen, die aus anderen Parts stammen, importiert. Letzteres kann ich mit VB leider nicht umsetzen.

Bisher erzeuge ich mit der Funktion ' CreateReferenceFromBRepName ' eine Referenz der jeweiligen Flächen, die aus anderen Parts stammen - dies wird auch vom Rekorder so aufgezeichnet. Der Rekorder arbeitet aber auch noch mit Flächen-Parametern (aus dem Part, in dem das Join erzeugt wird) der importierten Flächen. Leider kann man nicht nachvollziehen, wie diese dort hingelangen.

Hat da vielleicht jemand schon Erfahrungen gemacht bzw. einen Lösungsvorschlag für mich? Bin für jede Hilfe dankbar!

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

Tapani.
Mitglied



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

Beiträge: 56
Registriert: 12.05.2006

erstellt am: 20. Jul. 2006 09:08    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 mgheinz1001 10 Unities + Antwort hilfreich

moin,

das Problem liegt, wie du schon richtig erkannt hast darin, das im Click-Interface implizit einige Schritte durchgeführt werden, die vom Recorder nicht aufgezeichnet werden. In der Regel sind diese Schritte aber auch durch das Script erreichbar, man muss sie eben nur komplett per Hand erstellen, da der Recorder versagt...

So, aber nun zum Problem:
Wenn die eine Fläche in einem anderen Part liegt, musst du sie zuerst kopieren und dann per Paste Special als "as Result" in dem anderen Part einfügen. Aus irgendwelchen Gründen darf das HybridBody (oder Geometrisches Set auf deutsch) nicht "Externe Verweise" heißen, also so wie CATIA das automatisch macht.


Hier ein Beispiel:
In Part1 und Part2 sind je eine Fläche vorhanden. Das Ergebnis ist dann in Part2 zu finden. Wichtig ist noch, das der Root-Knoten das ActiveObject ist (blau hinterlegt) sonst funktioniert das Copy nicht.

Code:
sub CATMain()
  dim itype(0)
  itype(0)="Face"
  set part2 = CATIA.Documents.Item("Part2.CATPart").Part
 
  set sel = CATIA.ActiveDocument.Selection

  sel.Clear
  stat = sel.SelectElement2(itype, "Select Face in other Part", false)
  sel.Copy

  sel.Clear
  set newhb = part2.HybridBodies.Add
  sel.Add newhb
  sel.PasteSpecial "CATPrtResult"
  sel.Clear
  set hsf = part2.HybridShapeFactory
  stat = sel.SelectElement2(itype, "Select Face in same Part", false)
  set ref1 = part2.CreateReferenceFromObject(newhb.HybridShapes.Item(1))
  set newjoin = hsf.AddNewJoin(ref1,sel.Item(1).Reference)
 
  newhb.AppendHybridShape newjoin
  part2.Update
end sub


CUSee You
    Tapani

------------------
Don't take life so seriously....
it's not a permanent  condition

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

mgheinz1001
Mitglied
Dipl.-Ing. (FH)


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

Beiträge: 109
Registriert: 17.03.2005

erstellt am: 20. Jul. 2006 10:29    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

Super, das haut hin!

Vielen Dank!

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