Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Part in einem Product anwählen

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:   Part in einem Product anwählen (761 mal gelesen)
Knowledge
Mitglied
Dipl. Ing.


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

Beiträge: 106
Registriert: 02.03.2004

erstellt am: 03. Nov. 2008 15:38    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


Struktur_1.jpg

 
Hallo zusammen.

Ich verzweifele gerade an foldender Situation. Vielleicht kann mir jemand helfen.
Ich möchte in CATPart's, die unterhalb eines CATProducts liegen, ein GeoSet erzeugen, wenn es dort noch keines gibt. Der Speichername ist nicht bekannt, da dieser von einer Datenbank automatisch vergeben wird. Damit wird die Definition (documents1.Item("Part1.CATPart")) schwierig für mich.
Ich weiß, dass ich so in ein CATPart komme (dem Recorder sei Dank)

Dim documents1 As Documents
Set documents1 = CATIA.Documents
Dim partDocument1 As PartDocument
Set partDocument1 = documents1.Item("Part1.CATPart")
Dim part1 As Part
Set part1 = partDocument1.Part
Dim hybridBodies1 As HybridBodies
Set hybridBodies1 = part1.HybridBodies
Dim hybridBody1 As HybridBody
Set hybridBody1 = hybridBodies1.Add()

Nun möchte ich dieses in eine Schleife einbinden, die diesen Job in allen Parts macht, die im Product enthalten sind. Dazu sieht mein Ansatz so aus.

Dim productDocument1 As Document
Set productDocument1 = CATIA.ActiveDocument
Dim product1 As Product
Set product1 = productDocument1.Product
Dim products1 As Products
Set products1 = product1.Products
Dim MengeCatparts As Integer
MengeCatparts = products1.Count
Dim product2 As Product
Dim ii As Integer
Dim PartDocument1 As PartDocument
For ii = 1 To MengeCatparts
    Set product2 = products1.Item(ii)  <-- wie komme ich an den Speichernamen?
Next

Leider sehe ich keine Möglichkeit, wie ich an den notwendigen Speichernamen komme, der bei "ii" eingetragen werden muss. Ich bitte hiermit um Eure Hilfe.

Danke

Ralf

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

K.Siebert
Mitglied
Tech Zeichner


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

Beiträge: 414
Registriert: 19.05.2007

Win XP
Catia V5 R19
Catia V5 R24

erstellt am: 03. Nov. 2008 17:13    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 Knowledge 10 Unities + Antwort hilfreich

Hallo Knowledge
So kannst du denn Namen oder den Pfad abfragen. Diese Abfrage ist immer für das Aktive Fester

Bei FullName bekommst du alles Pfad und Name als String

Code:
Set partDocument1 = CATIA.ActiveDocument
'Pfad = CATIA.ActiveDocument.Path 'Name oder FullName oder Path
Name = CATIA.ActiveDocument.Name 'Name oder FullName oder Path
msgbox Name
'msgbox Pfad


Und so kannst du alle Parts Selektieren und den Namen Auslesen (PartName)

Code:
Dim UserSelektion As Selection
Set productDocument1 = CATIA.ActiveDocument   
    Set UserSelektion = productDocument1.Selection   
    UserSelektion.Search "(CATAsmSearch.Part),all"

For I = 1 to UserSelektion.Count
'MsgBox(UserSelektion.Item(I).Value.Name)
Name = (UserSelektion.Item(I).Value.ReferenceProduct.Name)

Next



und um an den Speichernamen zu kommen schau mal bitte hier
da sollte es ein Skript geben PartName = Dateiname da wird der Speichername abgefragt

[Diese Nachricht wurde von K.Siebert am 03. Nov. 2008 editiert.]

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: 03. Nov. 2008 19:57    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 Knowledge 10 Unities + Antwort hilfreich

Hallo Knowledge,

folgendes sollte dir weiterbringen (ohne es getestet zu haben):

Code:
Dim productDocument1 As Document
Set productDocument1 = CATIA.ActiveDocument

Dim product1 As Product
Set product1 = productDocument1.Product

Dim products1 As Products
Set products1 = product1.Products

Dim MengeCatparts As Integer
MengeCatparts = products1.Count

Dim product2 As Product
Dim oDocument1 As Document
dim oPart as Part

Dim ii As Integer
For ii = 1 To MengeCatparts
    Set product2 = products1.Item(ii)  <-- wie komme ich an den Speichernamen?

'So kommst Du zur Dokument
set oDocument1 = product2.ReferenceProduct.Parent

if TypeName(oDocument1)="PartDocument" then
'Wenn du in ein Part bist, bist du hier
set oPart = oDocument1.Part

'ab hier kannst Du im Part machen, was du willst.

'oPart.FullName '-->Speichername mit Pfad

'kannst aber gleich prüfen, ob Geomset exisitert
'und einen neuen erzeugen.
Dim hybridBodies1 As HybridBodies
Set hybridBodies1 = oPart.HybridBodies
Dim hybridBody1 As HybridBody

if hybridBodies1.Count<1 then
'Das erzeugt ein GeomSet nur, falls es noch keiner gibt.
Set hybridBody1 = hybridBodies1.Add()
end if

end if

Next


Mit dem Makrorekorder müsste man schon aufpassen.
Um an Parts in einen Baum 'ranzukommen brauchst du nicht unbedingt die Name, es reicht, wenn du im Baum Schritt für Schritt weitergehst, so wie du es schon vorhattest.
Oberes macht es nur in Ebene 1, es könnte aber auch rekursiv gehen, da gibt es schon einige Beispiele hier, im Forum.

Gruß,
Zoltan

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

Knowledge
Mitglied
Dipl. Ing.


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

Beiträge: 106
Registriert: 02.03.2004

erstellt am: 10. Nov. 2008 10:09    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,
herzlichen Dank für Eure Unterstützung.
Ich habe es erst heute gesehen, da ich eine Woche im Urlaub war...

Ich werde dann mal fleißig testen. Nochmals Dankeschön, ihr habt mir sehr geholfen.

Gruß

Ralf

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)2020 CAD.de | Impressum | Datenschutz