Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Parameter 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:  Parameter auslesen (4503 mal gelesen)
milburn
Mitglied
Werkzeugkonstrukteur


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

Beiträge: 16
Registriert: 07.08.2006

erstellt am: 11. Sep. 2009 08:46    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 ,

ich bräuchte mal ein bisschen Hilfe  !

simple bekannte Aufgabe ;-) : Ein Produkt durchlaufen und aus jedem vorhandenen Part (auch in Unterprodukten) 5 feste Parameter + Teilenamen auslesen . Diese anschließend in Exel übertragen.

Meine Recherchen hier haben mir gezeigt, das ich mit dieser Absicht nicht alleine dastehe. (siehe Suche nach Parametern )
Ich habe mir einige Bruchstücke aus Beiträgen herauskopiert und versucht diese zu kombinieren, jedoch komme ich nicht zur finalen Lösung !

schaut vielleicht mal kurz drüber ....

1.)
Anzahl der Parts bestimmen :
' Anzahl der Parts
i = CATIA.Documents.Count
MsgBox (i) ' nur zur info für mich


2.) 

'Parameter auslesen
Set prod = CATIA.ActiveDocument.Product

Set objXL = CreateObject("Excel.Application")
objXL.Visible = True

Set oAWBook = objxl.Workbooks.Add

    objXL.Cells(2,6).Value = prod.Parameters.Item("Werkstoff").ValueAsString
    objXL.Cells(2,7).Value = prod.Parameters.Item("Bemerkung").ValueAsString
    objXL.Cells(2,11).Value = prod.Parameters.Item("Laenge").ValueAsString
    objXL.Cells(2,14).Value = prod.Parameters.Item("Breite").ValueAsString
    objXL.Cells(2,17).Value = prod.Parameters.Item("Hoehe").ValueAsString


End Sub

Das klappt soweit mit einem einzelnen Part ganz gut, jedoch möchte in jedes Part rein.
Wie hier gelesen hat wohl in Catia jedes Part-Dokument eine fortlaufende Nummer.
Wie schaffe ich es jetzt einen Zähler einzusetzen, der die Parts anhand der Dokumentnummer bis zur oben bereits ausgelesenen Gesamtzahl durchläuft ? Und den Teilenamen (Dateiname geht auch ) hätte ich auch gern dabei. Wie frag ich den ab ?

danke im voraus !!!!

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

Maetes
Mitglied
Student


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

Beiträge: 118
Registriert: 05.05.2009

XP 64Bit
CATIA V5R19SP4
MS Office 2003

erstellt am: 11. Sep. 2009 09: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 milburn 10 Unities + Antwort hilfreich

Parts in einem Produkt findest du glaubs da:
CATIA.ActiveDocument.Product.Products.Item(x)
Dafür kann ich dir nur die Überwachung im Makroeditor empfehlen.

Welche Parameter willst du auslesen?

[Diese Nachricht wurde von Maetes am 11. Sep. 2009 editiert.]

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

milburn
Mitglied
Werkzeugkonstrukteur


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

Beiträge: 16
Registriert: 07.08.2006

erstellt am: 11. Sep. 2009 10:20    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


b1.jpg


b2.JPG

 
Hallo Maetes,

danke für die schnelle Antwort !

wir haben eigene Parameter eigefügt, die von Hand mit Werten (Strings) belegt werden, wie z.B. Werkstoff : 1.2379  Bemerkung : spiegelbildlich
ect....Es sollen nicht alle Parameter abgefragt werden.

In dem Programm liest er die Werte auch aus. Aber halt nur
von dem aktuellen Part.  Es soll ja jedes Part genommen werden.

Anbei ein kleiner Screenshot...

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: 11. Sep. 2009 17:55    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 milburn 10 Unities + Antwort hilfreich

milburn
Mitglied
Werkzeugkonstrukteur


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

Beiträge: 16
Registriert: 07.08.2006

erstellt am: 12. Sep. 2009 18:20    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 Zoltan,

danke für die Links...genau was ich gesucht habe !!!!

Jetzt wird alles gut ! ;-)
Das Skript durchläuft jetzt alle Parts und nimmt noch den Teilenamen mit :
-------------------------
Sub CATMain()
Dim i as Integer
Dim prod As Product
Dim m As Integer

' Exel öffnen
Set objXL = CreateObject("Excel.Application")
objXL.Visible = True
Set oAWBook = objxl.Workbooks.Add


'Berechnung
m=2 ' Zeile in Exel
i = 0

for i = 1 to CATIA.Documents.Count

  If (Right(CATIA.Documents.Item(i).Name,7) = "CATPart") then

  Set prod = CATIA.Documents.Item(i).Product
  objXL.Cells(m,2).Value = prod.PartNumber
  objXL.Cells(m,3).Value = prod.Parameters.Item("eigener Parameter1").ValueAsString
objXL.Cells(m,3).Value = prod.Parameters.Item("eigener Parameter2").ValueAsString
      ect...
    m=m+1
  end if

next

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

Versuche das Ganze jetzt noch im Format ein bisschen zu schuppsen
und zu optimieren (Bei Parts welche durch Baugruppensymetrie erstellt wurden,
steigt er noch aus ...)
Kommme aber jetzt erst mal weiter...

Danke Zoltan, danke Maetes ..
Bis zur nächsten Frage.......

Gruß
milburn

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

DanielFr.
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 13. Sep. 2009 13:17    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 milburn 10 Unities + Antwort hilfreich

Hallo milburn,

das was du da programmiert hast funktioniert aber ist nicht gut. Das Problem ist die Documents.Collection aus CATIA.

Folgendes Szenario zur Verdeutlichung:
Du öffnest ein Produkt mit 10 Part. Du schließt diese wieder (über File -> Close oder über das X). Jetzt schaust du die Documents-Collection an. Du wirst in 50% der Fälle feststellen das sich die Dokumente des zuvor geschlossenen Produkts noch in der Collection befinden das Produkt aber schon geschlossen ist.

Das heißt dein Makro ist extrem fehleranfällig und nicht stabil. Wenn es geht solltest du die Documents-Collection nur dafür verwenden um neue Dokumente anzulegen.

Die Zeile "If (Right(CATIA.Documents.Item(i).Name,7) = "CATPart")" brauchst du auch nicht. Dazu gibt es eine Klasse Namens "TypeName". Diese stellt den Datentyp des jeweils übergeben Objekts (bzw. Variable) dar.

Das heißt folgende Zeile sieht einfach besser aus 
"If TypeName(CATIA.Documents.Item(i).Name) = PartDocument"

Jetzt zu meinem Lösungsvorschlag für dein Problem:
ENTWEDER du durchläufst dein Produkt rekursiv und holst dir so die Parameter aus den einzelnen Parts. Ein gutes Snippet wie man ein Produkt rekursive durchläuft findest du HIER (erster Beitrag von TomTom)(dies ist sicherlich der schönere und ressourcenfreunlichere Weg über auch deutlich komplizierter wie der ODER-Weg)

ODER du definierst dir eine neue Selektion und selektierst alle Produkte deinen Produkts (Parts die in einem Produkt hinterlegt sind sind für CATIA im ActiveDocument Produkte). Jetzt durchläufst du die Selektion (die Abfrage ob es sich um eine CATPart handelt bleibt) und schreibst die Parameter raus.
Ich denke das ist die einfachst Möglichkeit. Diese ist im Gegensatz zur Document-Collection stabil.

In dem Sinne wünsche ich dir einen schönen Sonntag 

------------------
MFG Daniel

Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...)

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

IIYTII
Mitglied



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

Beiträge: 85
Registriert: 30.05.2007

Catia V5 R19
Programmierung unter CATvba

erstellt am: 14. Sep. 2009 08: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 Nur für milburn 10 Unities + Antwort hilfreich

Hi milburn,

ich habe mal sowas ähnliches gemacht, vielleicht hilft dir mein Beitrag ja ein bisschen weiter:
http://ww3.cad.de/foren/ubb/Forum137/HTML/003578.shtml

Das Problem ist, dass bei großen Baugruppen derzeit noch eine relativ lange Zeit zum auslesen notwendig ist...

Gruß

[Diese Nachricht wurde von IIYTII am 14. Sep. 2009 editiert.]

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

milburn
Mitglied
Werkzeugkonstrukteur


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

Beiträge: 16
Registriert: 07.08.2006

erstellt am: 14. Sep. 2009 09:14    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 DanielFr,

wäre auch ein Wunder, wenn das Skript stabil wäre.
Ist mein Erstes ....! ..grins..
Jetzt muss ich erst mal meine Hausaufgaben machen, sprich die Bedeutung rekursiver Abläufe erkennen ect.  Da fehlen mir halt noch viele Grundlagen....
Der Link ist da sehr hilfreich !


Bei "If TypeName(CATIA.Documents.Item(i).Name) = PartDocument" steigt er mir aus,d.h.er erkennt dass CATPart nicht und läuft bis zum Ende ohne Aktion. ??

Und noch was !!

Ich möchte einfach wiessen, wie oft das Bauteil z.B. "404A001" in meinem Gesamtprodukt vorkommt. Also für die Stückliste zählen.

Zoltan hat mir oben schon einen Link gegeben, dessen Script ich noch nicht ganz verstehe, aber ich arbeitet dran....Zum Glück
sind viele Anmerkungen im Skript vorhanden

Ist das wirklich so ein Akt ? Das Zählen aller Catparts im Produkt mache ich in einer Zeile, nach einem Namen im Produkt suchen mit soooo vielen ?

Danke IIYTII für den Link.

Die grauen Herbstabende sind gerettet ...Jetzt hab ich erst mal eine Menge zu Lesen und zu Probieren....

Danke !

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: 14. Sep. 2009 16:53    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 milburn 10 Unities + Antwort hilfreich

Hallo,

TypeName gibt ein String zurück.
Korrigiere die Zeile auf

Code:
If TypeName(CATIA.Documents.Item(i)) = "PartDocument" then <code> endif
und dann wird es funktionieren.
Noch geschickter ist aber die Groß/Kleinschreibung aus den Spiel zu lassen:
Code:
If LCase(TypeName(CATIA.Documents.Item(i))) = "partdocument" then <code> endif

Gruß,
Zoltan

[Diese Nachricht wurde von zoltan.bekesi am 17. Sep. 2009 editiert.]

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

gunn
Mitglied


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

Beiträge: 7
Registriert: 12.03.2009

erstellt am: 17. Sep. 2009 10:16    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 milburn 10 Unities + Antwort hilfreich

Sollte es nicht eher "If LCase(TypeName(CATIA.Documents.Item(i))) = "partdocument" then" heißen?
du willst den typnamen vom dokument, nicht vom namen

Zitat:
Original erstellt von zoltan.bekesi:
Hallo,

TypeName gibt ein String zurück.
Korrigiere die Zeile auf

Code:
If TypeName(CATIA.Documents.Item(i).Name) = "PartDocument" then <code> endif
und dann wird es funktionieren.
Noch geschickter ist aber die Groß/Kleinschreibung aus den Spiel zu lassen:
Code:
If LCase(TypeName(CATIA.Documents.Item(i).Name)) = "partdocument" then <code> endif

Gruß,
Zoltan


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: 17. Sep. 2009 17:52    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 milburn 10 Unities + Antwort hilfreich

Danke, ich habe nicht genug aufgepasst.

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

K-Volkmann
Mitglied



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

Beiträge: 60
Registriert: 19.06.2007

WIn XP64 Catia V5R19 SP3 HF60<P>Intel I7 3,4GH 16GB RAM , NVIDIA Quadro 4000 2048MB

erstellt am: 03. Feb. 2011 14: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 Nur für milburn 10 Unities + Antwort hilfreich

Hallo zusammen

ich habe das Makro von oben bei mir verwendet.
läuft auch sehr gut.
Habe aber ein Problem, das Makro list die Parameter vom letzten part (im Strukturbaum)zuerst aus,
und vom ersten Part im Strukturbaum zuletzt.

kann man die Reihenfolge beeinflussen ? oder einfach umdrehen ?

hier der code:
Sub CATMain()

Dim i As Integer
Dim prod As Product
Dim m As Integer

' Exel öffnen
Dim objXL
On Error Resume Next
Set objXL = GetObject(, "Excel.Application")
If Err.Number <> 0 Then
Err.Clear
Set objXL = CreateObject("Excel.Application")
Set oAWBook = objXL.Workbooks.Add
End If
On Error GoTo 0
objXL.Visible = True

'Berechnung
m = 12 ' Zeile in Exel
i = 0
p = 0

For i = 1 To CATIA.Documents.Count


On Error Resume Next
If (Right(CATIA.Documents.Item(i).Name, 7) = "CATPart") Then

'soll bessere Lösung sein funktioniert noch nicht
'If TypeName(CATIA.Documents.Item(i).Name) = PartDocument

  Set prod = CATIA.Documents.Item(i).Product
 
  'Partname kann auch ausgegeben werden
  'objXL.Cells(m, 2).Value = prod.PartNumber
 
  objXL.Cells(m, "a").Value = prod.Parameters.Item("Position").ValueAsString
  objXL.Cells(m, "b").Value = prod.Parameters.Item("Stueck").ValueAsString
  objXL.Cells(m, "c").Value = prod.Parameters.Item("K").ValueAsString
  objXL.Cells(m, "d").Value = prod.Parameters.Item("Benennung").ValueAsString
  objXL.Cells(m, "g").Value = prod.Parameters.Item("Werkstoff").ValueAsString
  objXL.Cells(m, "h").Value = prod.Parameters.Item("Bestellmass").ValueAsString
  objXL.Cells(m, "n").Value = prod.Parameters.Item("Bemerkungen").ValueAsString
 
  'weitere Parameter möglich
  'objXL.Cells(m, 10).Value = prod.Parameters.Item("eigener Parameter2").ValueAsString
  'objXL.Cells(m, 11).Value = prod.Parameters.Item("eigener Parameter2").ValueAsString
  p = p + 1
 
  If Err.Number <> 0 Then
Err.Clear

End If

    m = m + 1
  End If

Next

MsgBox "Es sind " & i - p & " Produkts und " & p & " Parts  geöffnet", , "Info"

End Sub

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: 03. Feb. 2011 22: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 Nur für milburn 10 Unities + Antwort hilfreich

Servus
Du durchsuchst mit deinem Script die Dokumenten-Collection. Stattdessen solltest du die Einträge im Strukturbaum abarbeiten (CATIA.ActiveDocument.Product.Products)

Gruß
Bernd

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

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

K-Volkmann
Mitglied



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

Beiträge: 60
Registriert: 19.06.2007

WIn XP64 Catia V5R19 SP3 HF60<P>Intel I7 3,4GH 16GB RAM , NVIDIA Quadro 4000 2048MB

erstellt am: 04. Feb. 2011 06:18    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 milburn 10 Unities + Antwort hilfreich

Hallo bgrittmann

Ich habe von VBA und speziell im Catia sehr wenig Ahnung.
Kanst du mir für den Code ein genaueres Beispiel ins Forum stellen ?

schon mal vielen Dank

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

cChris
Mitglied
Konstrukteur


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

Beiträge: 53
Registriert: 27.09.2010

CATIA V5 R19
Microsoft Windows XP; Professionalx64 Edition; Version 2003; SP 2; Intel Core2 Duo CPU E8600 3.33Ghz; 7.98Gb RAM
CATScript

erstellt am: 04. Feb. 2011 08:03    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 milburn 10 Unities + Antwort hilfreich

Guten Morgen,

 

Zitat:
For i = 1 To CATIA.Documents.Count

On Error Resume Next
If (Right(CATIA.Documents.Item(i).Name, 7) = "CATPart") Then

'soll bessere Lösung sein funktioniert noch nicht
'If TypeName(CATIA.Documents.Item(i).Name) = PartDocument


Wie von Bernd schon erwähnt:

Code:

For i = 1 To CATIA.ActiveDocument.Product.Products.Count

If TypeName(CATIA.Documents.Item(i).Name) = "PartDocument" Then


Hab gerade kein Beispiel zur Hand. Sollte Dir aber für den Anfang weiterhelfen.

------------------
Mit freundlichen Grüßen,

cChris

[Diese Nachricht wurde von cChris am 04. Feb. 2011 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: 04. Feb. 2011 08:05    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 milburn 10 Unities + Antwort hilfreich

Servus
Versuch es mal mit dem Codeschnippsel:
Code:

'vorheriger Code
objXL.Visible = True

'Berechnung
m = 12 ' Zeile in Exel
i = 0
p = 0

Dim productDocument1 As ProductDocument
Set productDocument1 = CATIA.ActiveDocument

Dim products1 As Products
Set products1 = productDocument1.Product.Products

For i = 1 To products1.Count

    Dim oPorduct As Product
    Set oProduct = products1.Item(i)
   
    If TypeName(oProduct.ReferenceProduct.Parent) = PartDocument Then
        oobjXL.Cells(m, "a").Value = Product.Parameters.Item("Position").ValueAsString
'weitere parameter
    End If   
Next

'Rest des Codes
End Sub


Gruß
Bernd

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

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



Zerspanungsmechaniker/in (m/w/d)

Sie interessieren sich für spannende Projekte? Sie möchten selbstständig und eigenverant­wortlich in einem innova­tiven Unternehmen arbeiten? Sie bewäl­tigen auch administrative Aufgaben und wollen sich mit Ihrer Erfahrung und guten Ideen einbringen? Dann sind Sie bei HTS richtig.

Wir entwickeln und produzieren Transport- und Hebe­technik in Fellbach und beliefern Kunden weltweit in allen Industrie- und Wirtschafts­zweigen....

Anzeige ansehenMechaniker
K-Volkmann
Mitglied



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

Beiträge: 60
Registriert: 19.06.2007

WIn XP64 Catia V5R19 SP3 HF60<P>Intel I7 3,4GH 16GB RAM , NVIDIA Quadro 4000 2048MB

erstellt am: 04. Feb. 2011 10:42    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 milburn 10 Unities + Antwort hilfreich

Hallo bgrittmann

hab das mal auf die schnelle probiert, hat aber nicht funktioniert.
Läuft irgenwie nicht durch die Parts nur durch die Produkte.
Kann das sein ?

Ich werde es aber in Ruhe nochmal testen, nicht daß ich einen Fehler eingebaut habe.

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