| |
| KISTERS 3DViewStation: Effektiver Know-how-Schutz von sensiblen Produktdaten, eine Pressemitteilung
|
Autor
|
Thema: Nennen Sie die PartBodys von Castparts in einem CATProduct (1015 / mal gelesen)
|
xyon126 Mitglied Ingenieur
Beiträge: 74 Registriert: 07.11.2011
|
erstellt am: 06. Mai. 2016 23:02 <-- editieren / zitieren --> Unities abgeben:
Hello! Ich brauche Hilfe, ich will in einem CATProduct alle PartBodys von Cat-Teile zu benennen, sondern gibt mir eine Fehlermeldung auf die Zeile "Set tmpDoc = tmpDoc.Part 'Seleccionar la part" Sie können helfen. M.f.G
Manuel Code: Sub CATMain() 'Crear objeto, Documento. Dim tmpDoc As Document
'Seleccionar todos los documentosabiertos. For Each tmpDoc In CATIA.Documents 'Modificar solo Parts y Products If InStr(1, tmpDoc.Name, ".CATProduct") > 0 Or InStr(1, tmpDoc.Name, ".CATPart") > 0 Then 'Renombrar los PartBodys Textdata = tmpDoc.Name tmpDoc = Split(Textdata, ".") Textdata = tmpDoc(0) Set tmpDoc =CATIA.ActiveDocument ' Seleccionar el documento activo Set tmpDoc = tmpDoc.Part ' Seleccionar la part Set oPartBody = tmpDoc.MainBody ' Seleccionar el PartBody oPartBody.Name = Textdata ' Renombrar el PartBody con "PartName" End If Next End Sub [Diese Nachricht wurde von xyon126 am 07. Mai. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Mitglied Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 07. Mai. 2016 13:24 <-- editieren / zitieren --> Unities abgeben: Nur für xyon126
Hola Manuel, ein paar allgemeine Überlegungen: - sei nich so sparsam mit Deinen Variablen! Du definierst eine einzige Variable für 'doc', 'part', Array ... TextData ist gar nicht deklariert; - Bodies finden sich nur in CatParts - den 'MainBody' umzubenennen ist nicht unbedingt sinnvoll(der hat schon einen Namen: PartBody) Frage: - Was willst Du erreichen? Tschau, Joe ------------------ Inoffizielle Catia Hilfeseite Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
xyon126 Mitglied Ingenieur
Beiträge: 74 Registriert: 07.11.2011
|
erstellt am: 07. Mai. 2016 13:35 <-- editieren / zitieren --> Unities abgeben:
Hallo joehz! Vielen Dank für Ihre Antwort. Ich muss von CATProduct alle der CatPart,s Partbodys Das CATProduct Mit dem Namen der Datei oder CATPart umbenennen. Ich habe schon von CATPart bekommen aber nicht bekommen, von CatProdut, das ist rekursiv. Können Sie helfen? Das ist das Code von CatPart: Code: Sub CatMain() Dim Textdata As String Textdata = CATIA.ActiveWindow.Name tmpDoc = Split(Textdata, ".") Textdata = tmpDoc(0) Set oDoc =CATIA.ActiveDocument ' Seleccionar el documento activo Set oPart = oDoc.Part ' Seleccionar la part Set oPartBody = oPart.MainBody ' Seleccionar el PartBody oPartBody.Name = Textdata ' Renombrar el PartBody con "PartName" End Sub Aber wie gesagt, ich von CATProduct müssen. Vielen Danke M.f.G. Manuel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Mitglied Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 07. Mai. 2016 17:43 <-- editieren / zitieren --> Unities abgeben: Nur für xyon126
|
xyon126 Mitglied Ingenieur
Beiträge: 74 Registriert: 07.11.2011
|
erstellt am: 07. Mai. 2016 18:25 <-- editieren / zitieren --> Unities abgeben:
Hallo joehz! Vielen Dank, aber es ist nicht das, was ich brauche, ich brauche die Hauptkörper nicht Intansname oder Partname umbenennen, ist das Foto: Mit dieser Code: Code: Sub CatMain()Dim Textdata As String Textdata = CATIA.ActiveWindow.Name tmpDoc = Split(Textdata, ".") Textdata = tmpDoc(0) Set oDoc =CATIA.ActiveDocument ' Seleccionar el documento activo Set oPart = oDoc.Part ' Seleccionar la part Set oPartBody = oPart.MainBody ' Seleccionar el PartBody oPartBody.Name = Textdata ' Renombrar el PartBody con "PartName" End Sub
aber dieser Code arbeitet von einer CatPart, und ich brauche von CatProdukt mit mehreren Teile zur gleichen Zeit zu tun. Code für CATProduct gescheitert: Code: Code: Sub CATMain() 'Crear objeto, Documento. Dim tmpDoc As Document
'Seleccionar todos los documentosabiertos. For Each tmpDoc In CATIA.Documents 'Modificar solo Parts y Products If InStr(1, tmpDoc.Name, ".CATProduct") > 0 Or InStr(1, tmpDoc.Name, ".CATPart") > 0 Then 'Renombrar los PartBodys Textdata = tmpDoc.Name tmpDoc = Split(Textdata, ".") Textdata = tmpDoc(0) Set tmpDoc =CATIA.ActiveDocument ' Seleccionar el documento activo Set tmpDoc = tmpDoc.Part ' Seleccionar la part Set oPartBody = tmpDoc.MainBody ' Seleccionar el PartBody oPartBody.Name = Textdata ' Renombrar el PartBody con "PartName" End If Next End Sub
Wo habe ich den Fehler? M.f.G. Manuel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Mitglied Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 07. Mai. 2016 19:39 <-- editieren / zitieren --> Unities abgeben: Nur für xyon126
|
EmilioSanchez Mitglied
Beiträge: 78 Registriert: 02.11.2003 Intel I7 4700MQQ 24GB Win10 Pro 64-Bit Catia V5 R19/R26/28/29/30/32
|
erstellt am: 08. Mai. 2016 02:09 <-- editieren / zitieren --> Unities abgeben: Nur für xyon126
Hallo Manuel, ein Fehler ist das du auch Produkte mit einbeziehst. Ein Produkt hat ja keinen PartBody. Auch die Zeile tmpDoc = Split(Textdata, ".") macht keinen Sinn. tmpDoc ist ja schon dein Dokument. Info: die Split Funktion liefert als Ergebniss ein Array. So sollte es gehen: Sub CATMain() 'Crear objeto, Documento. Dim tmpDoc As Document 'Seleccionar todos los documentosabiertos. For Each tmpDoc In CATIA.Documents 'Modificar solo Parts If InStr(1, tmpDoc.Name, ".CATPart") > 0 Then Textdata = tmpDoc.Name Textdata = Split(Textdata, ".") Set oPart = tmpDoc.Part ' Seleccionar la part Set oPartBody = oPart.MainBody ' Seleccionar el PartBody 'Renombrar los PartBodys oPartBody.Name = Textdata(0) ' Renombrar el PartBody con "PartName" End If Next End Sub Bitte bedenke:
Du benennst den PartBody so wie er auf der Festplatte gespeichert ist, nicht wie er im Strukturbaum benannt ist (Teilenummer). Die Split Funktion liefert dir ein falsches Ergebniss wenn in deinem Dateinamen mehrere Punkte vorkommen (Ist aber ja eher die Ausnahme) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Mitglied Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 08. Mai. 2016 09:04 <-- editieren / zitieren --> Unities abgeben: Nur für xyon126
|
xyon126 Mitglied Ingenieur
Beiträge: 74 Registriert: 07.11.2011
|
erstellt am: 08. Mai. 2016 09:30 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank an euch beide, jetzt habe ich gesehen und verstanden den Fehler, mehr als ein Jahr nicht programmiert sind und Neuronen verloren und vergessen Konzept, Vielen dank. Man kann nicht alt tun. M.f.G.
Manuel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |