Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  It's a match! xD zwischen zwei Parts-Liste finden und Publikationen kopieren

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:  It's a match! xD zwischen zwei Parts-Liste finden und Publikationen kopieren (431 mal gelesen)
Sylas
Mitglied



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

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 09. Jun. 2022 09:06    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 Zusammen

Ich bin gerade bei ein klein Projekt, wo ich habe Excel-Part-Liste, wo in zwei Kolonnen ich SourcePart Name und TargetPart Name habe.
Was ich für jedes selektiertes Part in 3D muss machen ist:
-in Excel Datei für TargetName suchen (das wurde selektiertes Part.Name vom Selektion)
-vom Excel Datei entsprechendes SourceName nahmen (TargetPart<->SourcePart Relation finden)
-Vom SourcePart publizierte PartBody kopieren
-zum TargetPart kopiertes Body mit Link einfugen

Ich weiß wie kann ich die Excel-Liste ins Variant bringen. Ich weiß aber nicht wie kann ich den Match finden 
Und dann ich habe keine Ahnung, wie kann ich zu SourcePart Produkt zugreifen (für die Publications), wenn ich nur die SourcePart.Name haben...

Danke im Voraus für deine Hife

Lucas

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 09. Jun. 2022 09:15    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 Sylas 10 Unities + Antwort hilfreich

Servus Lukas

Zum suchen in Excel: zB mit Find (ggf mal auch mal in einem Excel Tutorial bzw Forum suchen)
Was ist bei dir SourcePart.Name? Die PartNumber, der Instance-Name, ....?
Je nach dem was du hast: über die Selection, über eine Schleife über die Products- oder Documents-Collection, oder direkt mit dem Namen in der Products-Collection

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Sylas
Mitglied



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

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 09. Jun. 2022 10:31    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 Bernd 

Code:

Sub CATMain()
Dim oHP As Product
Dim oSel As Selection
Set oHP = CATIA.ActiveDocument.Product
Dim oSourceProd As Product
Dim oTargetProd As Product
Dim InputObjectType(0) As Variant
InputObjectType(0) = "Product"
Set oSel = CATIA.ActiveDocument.Selection
Dim Source As Part
Dim Target As Part

Dim oDSel
Set oDSel = oSel
oDSel.Clear
Result = oDSel.SelectElement2(InputObjectType(), "Wybierz zrodlowy komponent", True)
Set oSourceProd = oSel.Item(1).Value
oDSel.Clear
Result = oDSel.SelectElement2(InputObjectType(), "Wybierz docelowy komponent", True)
Set oTargetProd = oSel.Item(1).Value

For i = 1 To oSourceProd.Products.Count
Set Source = oSourceProd.Products.Item(i).Products.Item(1).ReferenceProduct.Parent.Part
Set Target = oTargetProd.Products.Item(i).Products.Item(1).ReferenceProduct.Parent.Part
oSel.Clear
oSel.Add Source
oSel.Add Source.MainBody
oSel.Copy
oSel.Clear
oSel.Add Target
oSel.PasteSpecial "CATPrtResultWithLink"
oSel.Clear
Next

End Sub


es sieht mir aus, das Kwelle un Ziel Produkt haben glaiche Parts Sortordnung, also ich kann einfach Schrit per Schrit gehen ;)
Wo das Problem liegt is die Linie:

Code:

oSel.Copy


Ich kriege die Meldung "CSO is empty"  Kannst do mir das helfen?

Gruß

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

Randle
Mitglied
CAD/PLM Consultant


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

Beiträge: 695
Registriert: 12.04.2003

Win10 x64
CATIA V5 R18, R19, R21, R27-29

erstellt am: 09. Jun. 2022 10:45    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 Sylas 10 Unities + Antwort hilfreich

Hallo,

offenbar scheint deine Selection leer zu sein. Du solltest in deiner Schleife vielleicht mal überprüfen ob es sich wirklich jeweils um ein CATPart handelt (wenn es kein Part ist, gibt es auch keinen Mainbody -> Selection = leer).

Alternativ (und etwas unsauber) könntest du überprüfen ob deine Selection nicht leer ist.
z.b:

Code:

if oSel.Count > 0 then
oSel.Copy
oSel.Clear
oSel.Add Target
oSel.PasteSpecial "CATPrtResultWithLink"
oSel.Clear
End if

Gruß Randle

------------------
Wer für nichts steht, fällt für alles!

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 09. Jun. 2022 10:54    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 Sylas 10 Unities + Antwort hilfreich

Servus

Zusätzlich zum Hinweis von Randle: warum selektierst du das Source-Part und den Körper? Sollte da der Körper nicht reichen?

Gruß
Bernd

PS: Die Zeile mit Set Source = und Set Target = sieht auch sonderbar aus: warum zwei mal Products.Item, warum überhaupt auf die Products-Collection zugreifen?

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Sylas
Mitglied



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

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 09. Jun. 2022 10:59    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 Zusammen

Wenn ich nur Korper aus Source nimme, Ich kriege die Meldung in Catia: "Error Copying Data: Selected element(s) not allowed for this operation".

Und die Selektion is immer <> 0 (immer genau =1)

Gruß

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 09. Jun. 2022 11:15    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 Sylas 10 Unities + Antwort hilfreich

Servus

Schau dir nochmal die Zeilen Set Source und Set Target. Dass da zweimal Products.Item vorkommt irritiert mich (ich kenne aber auch deine Struktur nicht)
IMHO gibt es "CATPrtResultWithLink" bei PasteSpecial nicht.

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Sylas
Mitglied



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

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 09. Jun. 2022 11:26    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

Zitat:
Original erstellt von bgrittmann:
Servus

Schau dir nochmal die Zeilen [i]Set Source und Set Target. Dass da zweimal Products.Item vorkommt irritiert mich (ich kenne aber auch deine Struktur nicht)
IMHO gibt es "CATPrtResultWithLink" bei PasteSpecial nicht.

Gruß
Bernd

[/i]



SourceProdukt is ein Component mit mehreren Componenten mit nur ein Part darain:

SourceProduct→
              ZwischenProdukt1→
                               SourcePart1→
                                            MainBody zu kopieren
              ZwischenProdukt2→
                               SourcePart2→
                                            MainBody zu kopieren
TargetProduct→
              ZwischenProdukt1→
                              TargetPart1→
                                            MainBody zu einfügen und symmetry nach ZX machen
              ZwischenProdukt2→
                              TargetPart2→
                                            MainBody zu einfügen und symmetry nach ZX machen

[Diese Nachricht wurde von Sylas am 09. Jun. 2022 editiert.]

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 09. Jun. 2022 11: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 Nur für Sylas 10 Unities + Antwort hilfreich

Bei mir läuft dein Code (ohne oSel.Add Source und PasteSpecial korrigiert) wenn ich solch eine Struktur nachbilde.
Also muss bei dir was anders sein.

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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



Technischer Zeichner (m/w/d) Maschinen- und Anlagenbau
Was unsere Kunden von ihren Technologielösungen erwarten? Das nächste Level! Das gelingt unserem Team bei FERCHAU Tag für Tag. Wir suchen dich: als ambitionierte:n Kolleg:in, der:die wie wir Technologien auf die nächste Stufe bringen möchte. Wir realisieren spannende Projekte für namhafte Kunden im Maschinen- und Anlagenbau und arbeiten mit an anspruchsvollen Lösungen für die Industrie.

Technischer ...
Anzeige ansehenTechnischer Zeichner, Bauzeichner
Sylas
Mitglied



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

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 09. Jun. 2022 13:37    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

Das wahr erlich kommisch. Wenn ich die CATIA neu gestartet hatte - es lauft xD

Danke for deine Hilfe 

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