Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Catia -> 3D unerfahrener versucht sich an Scripten

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:  Catia -> 3D unerfahrener versucht sich an Scripten (983 mal gelesen)
jogibear9988
Mitglied
Elektroniker

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

Beiträge: 3
Registriert: 21.09.2013

erstellt am: 21. Sep. 2013 00:56    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 bin bei uns in der Firma als Programmierer tätig, hab aber keinen blassen schimmer von Catia.

Ich wollte bei uns nun aber einen Vorgang automatisieren bei dem immer wieder Daten aus Catia Projekten nachgezeichnet werden.

Ich habe nun von meinen Kollegen einen Laptop mit Catia und ein Beispielprojekt bekommen.

Wir haben da einen Zeichnung (Catprodukt) in welcherer mehrere CatParts verwendet sind.

Ich versuche nun in VBA die Zeichnung zu durchlaufen und die X/Y/Z Coordinaten und die Größe der CatParts auszulesen (mehr brauch Ich am Anfang mal noch nicht)

Das durchlaufen bekomme Ich hin (den zugriff auf die Parts) aber wie bekomme Ich von einem Part seine Koordinate?

Hier mal mein Code:

Dim partDocument1 As PartDocument
Set doc = CATIA.Documents
Set partDocument1 = doc.Item("blablabla.CATPart")

wie bekomme Ich nun von dem partDocument1 die Position?

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: 21. Sep. 2013 10: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 Nur für jogibear9988 10 Unities + Antwort hilfreich

Servus
Willkommen im Forum.
Als Einstieg empfehle ich dir zunächst allgemeine Literatur zu VBA oder VB 6.0 m mal de Grundlagen kennen zu lernen (sollten genügend Tutorials im Netz zu finden sein).
CATIA spezifisch gibt es meines Wissen zwei Bücher: "CATIA V5 Makroprogrammierung mit Visual Basic Script - R. Ziethen" und "Kochbuch - CATIA V5 automatisieren: Vom Powercopy bis zur C#-Programmierung - Jens Hansen"
Zusätzlich noch die Doku der API (V5Automation.chm) im Installationsverzeichnis.
Zum Thema "Größe von Teilen": such mal nach Bounding Box
Was meinst du mit Koordinaten von Parts? Etwa die Eigenschaft "Position" vom Product-Object (siehe Doku=

Gruß
Bernd

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

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

jogibear9988
Mitglied
Elektroniker

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

Beiträge: 3
Registriert: 21.09.2013

erstellt am: 22. Sep. 2013 20:40    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

VBA oder VB6 kann ich das ist nicht das Problem... Eher das Objektmodel von Catia...

Aber das mit der Hilfedatei hat auch schon mal geholfen....


Hab nun folgendes Script:

Sub CATMain()

Dim doc As ProductDocument

Set doc = CATIA.ActiveDocument

getAllSubProducts doc.Product

End Sub

Sub getAllSubProducts(ByRef p As Product)

Dim posA(11)

Dim prd As Product

For n = 1 To p.Products.Count
   
    Set prd = p.Products.Item(n)

    getAllSubProducts prd

    Set pos = prd.Position

    pos.GetComponents posA

    Debug.Print prd.Name
    Debug.Print "x1:" + Str(posA(0)) + "  x2:" + Str(posA(1)) + "  x3:" + Str(posA(2)) + "  y1:" + Str(posA(3)) + "  y2:" + Str(posA(4)) + " y3:" + Str(posA(5)) + "  z1:" + Str(posA(6)) + "  z2:" + Str(posA(7)) + "  z3:" + Str(posA(8)) + "   o1:" + Str(posA(9)) + "  o2:" + Str(posA(10)) + "  o3:" + Str(posA(11))

Next n

End Sub


Weis noch nicht ganz ob das genau die Infos sind die Ich brauch, aber damit komm Ich mal weiter...

[Diese Nachricht wurde von jogibear9988 am 22. Sep. 2013 editiert.]

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

jogibear9988
Mitglied
Elektroniker

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

Beiträge: 3
Registriert: 21.09.2013

erstellt am: 22. Sep. 2013 21:11    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

Habs jetzt noch ein bischen erweitert...

Was Ich jetzt wahrscheinlich noch brauche sind die Maße des Objektes, bin mir da abe rnicht ganz sicher, wie und was Ich noch genau brauch oder ob mir die Infos weiterhelfen...

Muß da jetzt erst mal noch mit unseren 3D Zeichnern reden...

Danke für die Hilfe auf jeden Fall...

Sub CATMain()

Dim doc As ProductDocument

Set doc = CATIA.ActiveDocument

Open "c:\test.csv" For Output As #1

Print #1, "Name;Parentname;a;b;fnm;X1;X2;X3;Y1;Y2;Y3;Z1;Z2;Z3;O1;O2;O3"
getAllSubProducts doc.Product

Close #1
End Sub

Sub getAllSubProducts(ByRef p As Product)

Dim posA(11)

Dim prd As Product

For n = 1 To p.Products.Count
   
    Set prd = p.Products.Item(n)

    getAllSubProducts prd

    Set pos = prd.Position

    pos.GetComponents posA

    nm2 = prd.Parent.Parent.Name
    nm3 = prd.PartNumber
    nm4 = prd.Parent.Parent.PartNumber
    fnm = prd.ReferenceProduct.Parent.Name
    Print #1, prd.Name + ";" + nm2 + ";" + nm3 + ";" + nm4 + ";" + fnm + ";" + Trim(Str(posA(0))) + ";" + Trim(Str(posA(1))) + ";" + Trim(Str(posA(2))) + ";" + Trim(Str(posA(3))) + ";" + Trim(Str(posA(4))) + ";" + Trim(Str(posA(5))) + ";" + Trim(Str(posA(6))) + ";" + Trim(Str(posA(7))) + ";" + Trim(Str(posA(8))) + ";" + Trim(Str(posA(9))) + ";" + Trim(Str(posA(10))) + ";" + Trim(Str(posA(11)))
Next n

End Sub

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