Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Parameters aus jedes Part auslesen

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:  Parameters aus jedes Part auslesen (1867 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: 17. Feb. 2015 12:00    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 wollte eines kleines Makro schreiben, welsches par Parameters aus jedes CATPart ausliest, und unter CSV-File schreibst.

Der Kode siehst einmal so:

Code:

Sub CATMain()
'_________________________________________
' Separating char
trz = ";"
crlf = chr(10)
'-----------------------------------------
Set document = CATIA.ActiveDocument
Set filesys = CATIA.FileSystem
'__________________________________________________________________________
' Filename and path
'on error resume next
Dim file

file = Document.Name
Dim path
Dim Nazwa

path = left(Document.FullName,InStrRev(Document.FullName,"\"))
pathdummy = left(path,len(path)-1)
Nazwa = left(file,Instr(file,".")-1)

filename = "D:\"&Nazwa&"_Materials.csv"

'--------------------------------------------------------------------------
if filesys.FileExists(filename) Then
filesys.DeleteFile(filename)
End If

Set file = filesys.CreateFile(filename,True)
Set stream = file.OpenAsTextStream("ForWriting")

err=0

Dim Part_Number
Dim VWG_Right_hand_Partnumber
Dim VWG_Material
Dim VWG_Material_Density
Dim VWG_Material_Thickness
Dim VWG_Volume_Solid
Dim VWG_Weight
Dim comment
Dim symmetry


stream.write("Part Number"&trz&"VWG_Right_hand_Partnumber"&trz&"VWG_Material"&trz&"VWG_Material_Density"&trz&"VWG_Material_Thickness"&trz&"VWG_Volume_Solid"&trz&"VWG_Weight"&trz&"comment"&trz&"symmet ry")
stream.write(crlf)


Dim Document
For each Document in CATIA.documents

'Set element = CATIA.Document
'Msgbox(TypeName(element))

'Dim Params
'Params = element.Parameters
'Msgbox(Params.count)
If TypeName(document) <> "ProductDocument" then

'Part_Number = Document.Name.value
VWG_Right_hand_Partnumber = Document.Part.Parameters.RootParameterSet.Directparameters.item("right_hand_part").value
VWG_Material = Document.Part.Parameters.RootParameterSet.Directparameters.item(2).value
VWG_Material_Density = Document.Part.Parameters.RootParameterSet.Directparameters.item("material_density").value
VWG_Material_Thickness = Document.Part.Parameters.RootParameterSet.Directparameters.item("material_thickness").value
VWG_Volume_Solid = Document.Part.Parameters.RootParameterSet.Directparameters.item("volume_solid").value
VWG_Weight = Document.Part.Parameters.RootParameterSet.Directparameters.item("weight").value
comment = Document.Part.Parameters.RootParameterSet.Directparameters.item("comment").value
symmetry = Document.Part.Parameters.RootParameterSet.Directparameters.item("symmetry").value

stream.write(Part_Number&trz&VWG_Right_hand_Partnumber&trz&VWG_Material&trz&VWG_Material_Density&trz&VWG_Material_Thickness&trz&VWG_Volume_Solid&trz&VWG_Weight&trz&comment&trz&symm etry)


End If

Next

stream.close
msgbox ("Ready: "&filename&" ")

End Sub


Ich weiss dass das erschaint erstmal schmuzisch aber es ist das Start.

Mein Problem ist bei die Linie:

Code:

VWG_Right_hand_Partnumber = Document.Part.Parameters.RootParameterSet.Directparameters.item("right_hand_part").value


Ich will der Parameterwert vom "right_hand_part" ausliest, aber ich kriege die Meldung: The method Item failed".

Koennte mir jemand helfen, was habe ich Falsch gemacht?

Und die zweite Frage: Ich muss auch jedes PartName ausliesen. Wie kann ich? Bei:

Code:

name = document.Name
?

Danke im Voraus fuer die Hilfe

Gruss

Lukas
P.S. Sorry fuer mein Deutsch

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: 17. Feb. 2015 12:23    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
"Document.Part" gibt es nur bei einem CATPart, bei einem CATProduct fällt das Makro auf die Nase.
Verwendet statt dessen "Document.product"(.Parameters) dann läuft es bei CATParts und CATProducts.
Was passiert wenn deine Schleife über alle geöffnete Dokumente auf zB eine CATDrawing stößt? -> du musst den Dokumententyp prüfen.

Zur 2. Frage was willst du auslesen?
PartNumber = Document.product.Partnumber
Partname = Document.Product.Name
Dateiname = Document.Name
Pfad = Document.Path
Pfad+Dateiname = Document.Fullname

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: 17. Feb. 2015 12: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

Zitat:
Original erstellt von bgrittmann:
Servus
"Document.Part" gibt es nur bei einem CATPart, bei einem CATProduct fäkkt das Makro auf die Nase.
Verwendet statt dessen "Document.product"(.Parameters) dann läuft es bei CATParts und CATProducts.
Was passiert wenn deine Schleife über alle geöffnete Dokumente auf zB eine CATDrawiung stößt? -> du musst den Dokumententyp prüfen.

Zur 2. Frage was willst du auslesen?
PartNumber = Document.product.Partnumber
Partname = Document.Product.Name
Dateiname = Document.Name
Pfad = Document.Path
Pfad+Dateiname = Document.Fullname

Gruß
Bernd


Halo Bernd

Code:
If TypeName(document) <> "ProductDocument" then

prueft Dokument Typ nicht?

Wenn ich schreibe dass:

Code:
comment = Document.Product.Parameters.item("comment").value

dann ich kriege der Meldung wieder

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: 17. Feb. 2015 12:36    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
Ups, die Typprüfung hab ich überlesen.
Gibt es den Parameter? (mit Watchfenster im VBA-Editor ggf mal prüfen)

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: 17. Feb. 2015 13:02    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
Ups, die Typprüfung hab ich überlesen.
Gibt es den Parameter? (mit Watchfenster im VBA-Editor ggf mal prüfen)

Gruß
Bernd



Code:
Part_Number = document.product.name

Gibts mier null (Checked mit Msgbox(Part_Name)

P.S. Ich schreibe CATScrpit - kein VBA EDitor hier  


[Diese Nachricht wurde von Sylas am 17. Feb. 2015 editiert.]

[Diese Nachricht wurde von Sylas am 17. Feb. 2015 editiert.]

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