Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Koerper mit Makro ersetzen

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:  Koerper mit Makro ersetzen (1810 mal gelesen)
Norman Schulz
Mitglied
Konstrukteur Catia V4/V5


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

Beiträge: 300
Registriert: 18.03.2002

V5R19SP9 // V5R20SP7 //V5R24SP5
Lizenz MD2
Lenovo ThinkPad W540
WIN 7 64bit 16GB
Intel i7-4800MQ 2.7GHz

erstellt am: 05. Mai. 2009 14:04    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


PART1.zip

 
Hallo!
Ich habe folgendes Problem:
Beim Aufzeichnen eines Makros werden mir die Schritte nicht aufgezeichnet. Ich moechte den letzten im Baum befindlichen Koerper >Ersetzen_Tasche_Sicherung_ungesichert< ueber RMT => ERSETZEN durch den Koerper >Ersetzen_Tasche_Sicherung< austauschen.
Dies wird mir jedoch nicht aufgezeichnet. Mache ich irgend etwas falsch? Habe im Forum leider keinen Hinweis gefunden.

Vielen Dank im voraus!

Gruss Norman

------------------
WTL Engineering GmbH          
n.schulz@wtl-group.de
www.wtl-group.de

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

zoltan.bekesi
Mitglied



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

Beiträge: 321
Registriert: 22.10.2006

Job:
CATIA V5R19 / XP 32bit
MS Office 2003
Microstation V8 2004 Edition
DELL Precision M6300

erstellt am: 05. Mai. 2009 19:56    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 Norman Schulz 10 Unities + Antwort hilfreich

Hallo Norman,

ich weiß nicht so richtig was du vor hast, ich muss aber an die Vorwort in Jens Hansen's Buch verweisen: "Es geht nicht alles mit Makros, was interaktiv funktioniert.". Das solltest du für die Zukunft merken. Generell solche Replace Operationen sind meines Wissens aus Makros nicht möglich.
Dein Problem lässt sich aber lösen, wenn du es anders auffasst, ein Operand einer Boolschen Operation lässt sich nähmlich ändern.
Anbei ein Code, was für dein Beispiel funktioniert. Anstatt FindObjectByName (war schnell für mich für die Demo) musst du die Objekte richtig ansprechen (Body und BooleanOp), aus den Body ein Referenz bilden und es den BooleanOp zuweisen.

Code:
Sub catmain()

Dim oPart As Part
Set oPart = CATIA.ActiveDocument.Part

Dim oBodyForReplacement As Body
Set oBodyForReplacement = oPart.FindObjectByName("Ersetzen_Tasche_Sicherung")

Dim oShapeToReplaceBody As Add
Set oShapeToReplaceBody = oPart.FindObjectByName("Hinzufügen_Ersetzen_Tasche_Sicherung")

Dim oRef As Reference
Set oRef = oPart.CreateReferenceFromObject(oBodyForReplacement)
oShapeToReplaceBody.SetOperatedObject oRef

oPart.Update

End Sub


Ich hoffe, das bring dir weiter.

Gruß,
Zoltan

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

Norman Schulz
Mitglied
Konstrukteur Catia V4/V5


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

Beiträge: 300
Registriert: 18.03.2002

V5R19SP9 // V5R20SP7 //V5R24SP5
Lizenz MD2
Lenovo ThinkPad W540
WIN 7 64bit 16GB
Intel i7-4800MQ 2.7GHz

erstellt am: 06. Mai. 2009 06:47    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 Zoltan!
10U´s an Dich. Genau so hatte ich es mir vorgestellt.
Hut ab wer sich in der Makroprogrammierung auskennt.

Danke und Gruss

Norman

------------------
WTL Engineering GmbH          
n.schulz@wtl-group.de
www.wtl-group.de

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

WilliGo
Mitglied
Konstruktion


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

Beiträge: 102
Registriert: 20.02.2007

Catia V5 R14 - R19
Windows 10

erstellt am: 23. Jun. 2009 12:02    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 Norman Schulz 10 Unities + Antwort hilfreich

Hallo Zoltan,

die von Normann beschriebene Aufgabe habe ich ebenfalls. Habe deinen Code 
laufen lassen. Einwandfrei, echt super wie du dich in der Programmierung auskennt´s.
Vielleicht könntest du mir ein wenig weiterhelfen ?
Ich habe versucht den Code für meinen Fall einwenig umzuschreiben, und wie soll es sein habe gleich einen Fehler eingebaut und verstehe Ihn nicht (Anfaenger eben!)

Code:
Dim PartDoc As Document
PartDoc = CATIA.ActiveDocument

Dim oSelQuelle As Selection
Dim OselZiel As Selection

Dim oBodyForReplacement As Body = Nothing
Dim oShapeToReplaceBody As Body = Nothing

oSelQuelle = PartDoc.Selection
oSelQuelle.Clear()

oSelQuelle.Search("(Name=*Body A* & CATPrtSearch.BodyFeature),all")

If oSelQuelle.Count > 0 Then
  oBodyForReplacement = oSelQuelle.Item(1).Value
  'MsgBox(oBodyForReplacement.Name)
End If

OselZiel = PartDoc.Selection
OselZiel.Clear()

OselZiel.Search("(Name=*Body B* & CATPrtSearch.BodyFeature),all")

If OselZiel.Count > 0 Then
      oShapeToReplaceBody = OselZiel.Item(1).Value
      'MsgBox(oShapeToReplaceBody.Name)
End If

Dim oRef As Reference

oRef = PartDoc.CreateReferenceFromObject(oBodyForReplacement)
oShapeToReplaceBody.SetOperatedObject(oRef)

PartDoc.Update()

Die Arbeitsweise mit der Referenz ist mir nocht nicht ganz klar.

------------------
Willi

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

zoltan.bekesi
Mitglied



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

Beiträge: 321
Registriert: 22.10.2006

Job:
CATIA V5R19 / XP 32bit
MS Office 2003
Microstation V8 2004 Edition
DELL Precision M6300

erstellt am: 23. Jun. 2009 19:20    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 Norman Schulz 10 Unities + Antwort hilfreich

Hallo Willi,

den Teil, wie die Bodies angesprochen werden habe ich im vorigen Code absichtlich vereinfacht, in dem ich die durch die Namen anspreche.
Wie sieht dein Struktur aus? Was ist von den Bodies gleich? Name, Platz im Baum?
Mache z.B. ein Screenshot von einen Baum, wo du diese Operation durchführen möchtest, dann können wir wahrscheinlich weiterhelfen.

Gruß,
Zoltan

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