Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Einfügen in neues Part

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:  Einfügen in neues Part (1475 mal gelesen)
Spritty
Mitglied



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

Beiträge: 21
Registriert: 03.04.2006

erstellt am: 20. Mai. 2006 22: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

Hallo Leute,

ich versteh die Sprache nicht mehr!
Habe ein Makro geschrieben, das aus einem Part über eine InputBox einen Körper kopiert und in ein neues Part einfügt. Was ich nicht ganz verstehe: warum benennt er mir den Körper in Kopie von??? um, obwohl noch kein Körper vorhanden ist?! Der eingefügte Körper und die darin enthaltene Affinität muss so heissen, was ich in die InputBox eingebe! Das ist auch der Name im ürsprünglichen Part!
Hab ich an meinem Makro was falsch gemacht? Oder kann ich nach dem Einfügen den Körper und die Affinität ändern?
Hat jemand eine Idee??

Danke schonmal im Vorraus

Und hier mein Makro:

Set ADoc1 = CATIA.ActiveDocument
Set part1 = ADoc1.Part
Set parameters1 = part1.Parameters
Set length1 = parameters1.Item("Dicke-Teile-Nummer")
Set parameters2 = part1.Parameters
Set length2 = parameters2.Item("Hoehe-Teile-Nummer")
Set parameters3 = part1.Parameters
Set length3 = parameters3.Item("Breite-Teile-Nummer")

'Eingeben und kopieren der 1. Zahl/des 1. Buchstaben der Teile-Nummer
Set Liste1 = ADoc1.Selection
Liste1.Clear
Eingabe1 = "1.Zahl/Buchstabe der Teile-Nummer"
Eingabe1 = InputBox ("Bitte hier die 1.Zahl/den 1. Buchstaben der Teile-Nummer eingeben" & Chr (13) & Chr (10)  &  "Achtung: Groß- und Kleinschreibung beachten!", "Eingabe der 1.Zahl/des 1. Buchstaben der Teile-Nummer", Eingabe1)
If Eingabe1 = "" Then
CATIA.ActiveDocument.Close
Exit Sub
End If
Liste1.Search "'Part Design'.Körper.NAME =" & Eingabe1 & ";Alle"
Liste1.Add length1
Liste1.Add length2
Liste1.Add length3
Liste1.Copy

Set WinCol = CATIA.Windows
Set ThisWindow1 = WinCol.Item(1)
ThisWindow1.activate

'Einfügen der 1.Zahl/des 1. Buchstaben in das neue Part
Set partDocument1 = CATIA.ActiveDocument
Set part1 = partDocument1.Part
Set selection1 = partDocument1.Selection
selection1.Clear
selection1.Add part1
selection1.Paste

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

Bobby_Joe2001
Mitglied
Konstrukteur


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

Beiträge: 81
Registriert: 15.01.2006

erstellt am: 21. Mai. 2006 12:55    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 Spritty 10 Unities + Antwort hilfreich

Hallo,
also Catia bennent das automatisch um, weil du ja mit dem jetztigen Code deinen Körper kopierst, aber in das selbe Part wieder einfügst (nicht in ein Neues wie du beschrieben hast!). Weil der Körper mit dem selben Namen schon existiert wird er umbenannt.

Häng mal statt deinem letzten Absatz (Einfügen ...) folgenden Code an:

Code:

'Neues Part erstellen
Set MyNewPart = CATIA.Documents.Add("Part")

'Im neuen Part gleich das Part selbst selektieren
MyNewPart.Selection.Add MyNewPart.Part

'Koerper einfügen
MyNewPart.Selection.Paste


   

Aber mal was anderes, warum erstellt ihr alle immer so viele Objektverweise. Ich find des behindert nur den code schneller zu verstehen und macht ihn auch oft länger. Hat des irgend einen Grund/Vorteil (Außer wenn ich einen Verweis oft brauche)??

Ich mein:

Code:

Set WinCol = CATIA.Windows
Set ThisWindow1 = WinCol.Item(1)
ThisWindow1.activate

könnte ja ganz einfach

Code:

CATIA.Windows.Item(1).activate

heißen.

Ist meiner Meinung nach viel übersichtlicher.
Ich lass mich gern belehren 

Gruß
Bobby

------------------
Du musst die Leute einmal richtig ärgern, dann wirst du endlich ernst genommen.
Konrad Adenauer

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

Spritty
Mitglied



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

Beiträge: 21
Registriert: 03.04.2006

erstellt am: 21. Mai. 2006 20: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

Hallo Bobby_Joe2001!
Ich füge das kopierte eben nicht in das vorhandene Part ein, deshalb versteh ich das ganze ja auch nicht!! Ich wechsel ja mit
Set WinCol = CATIA.Windows
Set ThisWindow1 = WinCol.Item(1)
ThisWindow1.activate
in mein leeres Part?!
Hast du trotzdem noch jemand eine Idee?!

Danke für den Hinweis mit denObjektverweisen.
Die Verweise sind bei mir deshalb so lange, dass es nach viel aussieht! Schreib nämlich grad eine Studienarbeit mit Makros

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

Bobby_Joe2001
Mitglied
Konstrukteur


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

Beiträge: 81
Registriert: 15.01.2006

erstellt am: 22. Mai. 2006 18:42    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 Spritty 10 Unities + Antwort hilfreich

Also bei mir hat dein Makro einwandfrei funktioniert!

------------------
Du musst die Leute einmal richtig ärgern, dann wirst du endlich ernst genommen.
Konrad Adenauer

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

Lusilnie
Mitglied



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

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 22. Mai. 2006 21:44    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 Spritty 10 Unities + Antwort hilfreich

Hallo Spritty,

dies Problem ist (mir und sicher auch anderen) bekannt, obwohl ich nicht weiß, ob jemand den Grund und/oder einen Workaround kennt. So wie sich das Problem mir darstellt, ist es eine Laune von CATIA, ob es das eingefügte Object (Body, Geometrical_Set, ...) mit dem kopierten Namen oder mit "Copy from ..." einfügt.
Daher ist es einmal nachzuvollziehen und einmal nicht. Vielleicht nach Neustart von CATIA?


An alle:
Wenn jemand doch den Grund für dieses Verhalten kennt, ich würde ihn auch gern wissen. Vielleicht kann es ja sogar abgestellt werden!?


mfg,
Lusilnie

------------------

Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!

frei nach größeren Geistern

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

Spritty
Mitglied



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

Beiträge: 21
Registriert: 03.04.2006

erstellt am: 23. Mai. 2006 18:34    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 Lusilnie,

das ist genau die Antwort, die ich eigentlich nicht hören möchte 
Aber jedes Programm führt so seine Macken mit sich herum, leider!
Neustart bringt leider auch nichts und vor 2 Wochen ging ja mein Makro noch!!
Und was habe ich jetzt für Möglichkeiten in meinem Makro?
Kann ich den Körper und die Affinität umbenennen, damit ich denselben Namen habe wie zuvor?!

Viele Grüße
Spritty

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

Bobby_Joe2001
Mitglied
Konstrukteur


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

Beiträge: 81
Registriert: 15.01.2006

erstellt am: 23. Mai. 2006 20: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 Spritty 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Spritty:
Hallo Lusilnie,

das ist genau die Antwort, die ich eigentlich nicht hören möchte 
Aber jedes Programm führt so seine Macken mit sich herum, leider!
Neustart bringt leider auch nichts und vor 2 Wochen ging ja mein Makro noch!!
Und was habe ich jetzt für Möglichkeiten in meinem Makro?
Kann ich den Körper und die Affinität umbenennen, damit ich denselben Namen habe wie zuvor?!

Viele Grüße
Spritty


Jo, schneid halt einfach das "Kopie von " vom Namen ab.

Code:

Sub CATMain()
   
    Set MyBodies = CATIA.ActiveDocument.Part.Bodies

    MyBodies.Item(MyBodies.Count).Name = Mid(MyBodies.Item(MyBodies.Count).Name, 10)
   
End Sub


Zur Erklärung:
Du fügst den Körper neu ein und so enspricht die Nummer vom neuen Körper genau der Anzahl der Körper. So kannst du immer den neuesten direkt ansprechen.
Dann einfach mit dem "Mid"-Befehl die ersten 10 Stellen vom Namen abschneiden.

Gruß
Bobby

------------------
Du musst die Leute einmal richtig ärgern, dann wirst du endlich ernst genommen.
Konrad Adenauer

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