Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Makro-Programmierung

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:  Makro-Programmierung (12057 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: 03. Apr. 2006 23:21    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 Profis,

sitze hier vor einem großen Problem: ich möchte folgendes Makro erstellen:
Ein CATPart ist geöffnet und dort befinden sich mehrere Körper. Jeder Körper hat einen Namen, z.B. a; B; 1; 3...
In meinem Makro habe ich eine InputBox eingefügt und das, was ich in die InputBox eintrage, soll in dem geöffneten Part selektiert, kopiert und ein ein neues Part einfügt werden. Die Sketcher der Parts liegen allerdings auf der gleichen Achse. Die Bodies sollen, wenn möglich, in der Reihenfolge, die in der InputBox eingegeben wurde, in einem bestimmten Abstand in das neue Part eingefügt werden. Muss ich das über eine Konstruktionstabelle machen?

Mein Problem ist, dass ich nicht wirklich ein Programmierprofi bin, das einzige, was von meinem Makro funktioniert, ist die MsgBox und das Erstellen eines neuen Parts.

Wäre echt super, wenn mir jemand helfen könnte.

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: 04. Apr. 2006 20: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

Anhang zu meinem Problem:hier das Makro, das ich gebastelt habe


Sub CATMain()

' Makro: Teile-Nummer.CATScript
' Zweck: Erzeugung einer Teile-Nummer, indem das ABC gesucht und nacheinander eingefügt wird.
' Autor: Yvonne Kelkel
' Datum: Juni 2006
CATIA.StatusBar = "Teile-Nummer.CATScript"

MsgBox ("Willkommen im Beschriftungstool: Teile-Nummer!")

Dim Liste As Collection
Dim Eingabe As String
Set Liste = CATIA.ActiveDocument.Selection
Liste.Clear
Eingabe ="Teile-Nummer"
Eingabe = InputBox ("Bitte hier die Teile-Nummer eingeben.", "Eingabe Teile-Nummer", Eingabe)
Liste.Search ".Körper.NAME=Eingabe;Alle"

Selection.Copy

Dim ADoc As Document
Set ADoc = CATIA.Documents.Add ("Part")

Selection.Paste

End Sub

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

Jens Hansen
Mitglied
Senior Consult


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

Beiträge: 1055
Registriert: 05.08.2000

Win7
CATIA V5 R19
VB.Net
C#

erstellt am: 04. Apr. 2006 21:33    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,
zu deinem Makro:
Du hast den Fehler drin, dass du nur eine Selection benutzt. Du brauchst quasie eine Selection pro Document.
Wenn du also Elemente von einem Part ins nächste kopieren willst, musst du streng genommen die Element aus der einen Selection in die andere Selection kopieren.
Folgender Code ohne Gewähr, da nicht getestet:
------------------------------------------------
Sub CATMain()

' Makro: Teile-Nummer.CATScript
' Zweck: Erzeugung einer Teile-Nummer, indem das ABC gesucht und nacheinander eingefügt wird.
' Autor: Yvonne Kelkel
' Datum: Juni 2006
CATIA.StatusBar = "Teile-Nummer.CATScript"

MsgBox ("Willkommen im Beschriftungstool: Teile-Nummer!")

Dim Liste As Collection
Dim Eingabe As String
Set Liste = CATIA.ActiveDocument.Selection
Liste.Clear
Eingabe ="Teile-Nummer"
Eingabe = InputBox ("Bitte hier die Teile-Nummer eingeben.", "Eingabe Teile-Nummer", Eingabe)
Liste.Search ".Körper.NAME=Eingabe;Alle"
Liste.Copy

Dim ADoc As Document
Set ADoc = CATIA.Documents.Add ("Part")

Dim Liste2 As Collection
Set Liste2 = CATIA.ActiveDocument.Selection
Liste2.Paste

End Sub
------------------------------------------

Hoffe mal, es hilft

Jens Hansen

------------------
Inoffizielle CATIA-Hilfeseite
http:\\catia.cad.de

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: 07. Apr. 2006 21: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

Hallo Jens,

vielen Dank für deinen Tip, aber leider bringt er die Fehlermeldung: Das Verfahren Kopieren ist fehlgeschlagen.
Aber ich werde es mal selber weiter probieren.

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: 14. Apr. 2006 09:58    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

Hab endlich eine Teil-Lösung für mein Problem gefunden:

Sub CATMain()

' Makro: Teile-Nummer.CATScript
' Zweck: Erzeugung einer Teile-Nummer, indem das ABC gesucht und nacheinander eingefügt wird.
' Autor: Yvonne Kelkel
' Datum: Juni 2006
CATIA.StatusBar = "Teile-Nummer.CATScript"

MsgBox ("Willkommen im Beschriftungstool: Teile-Nummer!")

Set ADoc1 = CATIA.ActiveDocument

Set Liste1 = CATIA.ActiveDocument.Selection
Liste1.Clear
Eingabe1 = "1.Silbe der Teile-Nummer"
Eingabe1 = InputBox ("Bitte hier die 1.Silbe der Teile-Nummer eingeben", "Eingabe1 1.Silbe der Teile-Nummer", Eingabe1)

Liste1.Search "'Part Design'.Körper.NAME =" & Eingabe1 & ";Alle"

Liste1.Copy

Set documents1 = CATIA.Documents

Set partDocument1 = documents1.Add("Part")

Set product1 = partDocument1.GetItem("Part2")

product1.PartNumber = "Beschriftung"

Set part1 = partDocument1.Part

part1.Update

Set partDocument1 = CATIA.ActiveDocument

Set selection1 = partDocument1.Selection

selection1.Clear

selection1.Add part1

selection1.Paste

End Sub

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