Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Aus Excel-Tabelle ein Product generieren

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:  Aus Excel-Tabelle ein Product generieren (2580 mal gelesen)
lepmerk
Mitglied


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

Beiträge: 5
Registriert: 04.08.2014

erstellt am: 06. Aug. 2014 09: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

Hallo Forenmitglieder,

ich wende mich an euch, da ich mich gerade ein einem Makro versuche mit dem ich aus einer Excel-Tabelle ein CATProduct generieren kann.

Ich stelle mir das ganze folgendermaßen vor:

In einer Spalte stehen meine Teilenummern untereinander. Ich möchte nun einen Bereich davon markieren und über einen "Generate-Button" ein Product mit Parts erstellen.
Die erste Zeile der Auswahl ist das Product, die darunterliegenden sind die Parts.

Leider kenne ich mich bis jetzt noch nicht wirklich mit dem Thema VBA-Makroprgrammierung aus.

Das einzige was ich einigermaßen passend zu Thema in Internet gefunden habe ist ein Auszug aus dem Buch:

"VB Scripting for CATIA V5: How to program CATIA V5 macros, Band 5"

http://books.google.de/books?id=8x9UAgAAQBAJ&pg=PA131&lpg=PA131&dq=new+product++excel+catia&source=bl&ots=Wbz83WUDjT&sig=AquKWB4j0JjErCQVTdmRtDsF0i0&hl=de&sa=X&ei=RmDfU5TnGLCV7Ab9q 4DwCQ&ved=0CDMQ6AEwAQ#v=onepage&q=new%20product%20%20excel%20catia&f=false

Leider funktioniert aber nicht einmal dieses Makro bei mir. Es kommt immer eine Fehlermeldung
Dim oProdDoc As ProductDocument --> "Fehler beim Kompilieren, Benutzerdefinierter Typ nicht gefunden.

Ich würde mich über eure Hilfe sehr freuen.

Ich nutze Catia V5 R20 und Excel 2010

Viele Grüße

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 06. Aug. 2014 10:08    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 lepmerk 10 Unities + Antwort hilfreich

Hallo lepmerk,

der Fehler

"Fehler beim Kompilieren, Benutzerdefinierter Typ nicht gefunden.

deutet drauf hin, dass nicht alle Bibliotheken referenziert wurden.
Deswegen kennt Excel den Datentyp 'ProductDocument' nicht.
Das steht in dem Artikel aber auch im Absatz darüber.

Tschau,
Joe

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

lepmerk
Mitglied


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

Beiträge: 5
Registriert: 04.08.2014

erstellt am: 06. Aug. 2014 10:30    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

Ok, danke für den Tipp, aber wie mache ich das denn jetzt?

Bei mir gibt es keine Tools>References.

Ich kann im Excel VBA-Editor nur den Objektkatalog bzgl. Bibliotheken finden. Hier kann ich aber keine Catia-Bibliotheken anwählen.

Grüße

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: 06. Aug. 2014 10:44    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 lepmerk 10 Unities + Antwort hilfreich

Servus
Hast du Excel auf deutsch eingestellt?
Dann unter (im VBA-Editor) Extras -> Verweise die entsprechenden Bibliotheken anwählen.

Gruß
Bernd

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

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

lepmerk
Mitglied


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

Beiträge: 5
Registriert: 04.08.2014

erstellt am: 06. Aug. 2014 11: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

Super,

hab ich hinbekommen, jetzt läuft es und erstellt mir das gewünschte Product.

Wie mach ich jetzt weiter?

Anstelle der vordefinierten Namen möchte ich ja die Namen der Zellen und die Anzahl der Parts entsprechend der ausgewählten Anzahl der Zellen.

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: 06. Aug. 2014 11:50    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 lepmerk 10 Unities + Antwort hilfreich

Servus
Du arbeitest dich am besten zuerst in VBA allgemein (zB Excel) (bzw auch VB 6.0) ein. Dazu solltest du genügend Lernmaterial finden. Danach kannst du dich mit passender Literatur an VBA in CATIA einarbeiten.

Gruß
Bernd

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

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

lepmerk
Mitglied


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

Beiträge: 5
Registriert: 04.08.2014

erstellt am: 06. Aug. 2014 16: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

Hallo zusammen,

bin jetzt ein Stück weiter. Makro erstellt mir jetzt ein Product mit so vielen Parts wie ausgewählt sind. Leider klappt aber die Benennung der Parts noch nicht ganz. Es kommt immer ein Laufzeitfehler in Zeile

Set newPart = oProductsRoot.AddNewComponent("Part", Selection.Cells(i + 1).Value)

Wenn ich die Zeile weglasse werden mir die richtigen Werte in den Boxen angezeigt.

Was ist falsch?

Jemand ein Tipp für mich?

So sieht es bis jetzt aus:

Sub ExcelToCatia()

Dim CATIA As INFITF.Application
On Error Resume Next
Set CATIA = GetObject("CATIA.application")

If Err.Number <> 0 Then
    Set CATIA = CreateObject("CATIA.application")
    CATIA.Visble = True
End If
    On Error GoTo 0
   
'active worksheet
Dim oWB As Excel.Workbook
Set oWB = Excel.ActiveWorkbook
Dim oSh As Excel.Worksheet
Set oSh = oWB.ActiveSheet

'create a new product
Dim oProdDoc As ProductDocument
Set oProdDoc = CATIA.Documents.Add("Product")


Dim oRootProd As Product
Set oRootProd = oProdDoc.Product

'rename newly created product to "Example"
oRootProd.PartNumber = ActiveCell.Value

Dim oProductsRoot As Products
Set oProductsRoot = oRootProd.Products

'create new parts named like active cells

Dim Anzahl As Integer
Dim i As Integer
Dim newPart As Product

Anzahl = Selection.Count

MsgBox Anzahl

For i = 1 To Anzahl - 1

MsgBox (Selection.Cells(i + 1))


Set newPart = oProductsRoot.AddNewComponent("Part", Selection.Cells(i + 1).Value)

Next i

'Update the product
oRootProd.Update

End Sub

Grüße

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

imation1999
Mitglied
dipl.-ing. Maschinenbau


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

Beiträge: 276
Registriert: 02.08.2011

Dell Precision T3500
Intel® Xeon® Quad Core
NVIDIA Quadro® 5000
Win7 x64 Ultimate
CATIA V5 R20 SP2

erstellt am: 06. Aug. 2014 18: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 lepmerk 10 Unities + Antwort hilfreich

Hallo lepmerk,

änder mal Deine Code so ab:

Code:

'create new parts named like active cells

Dim Anzahl As Integer
Dim i As Integer
Dim newPart As Product

i = 1

While oSh.Cells(i, 1).Value <> ""

  Set newPart = oProductsRoot.AddNewComponent("Part", oSh.Cells(i, 1).Value)
  i = i + 1

Wend

'Update the product


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

lepmerk
Mitglied


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

Beiträge: 5
Registriert: 04.08.2014

erstellt am: 06. Aug. 2014 18:33    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 hinbekommen.

Weis zwar nicht ob das so "schön" geschrieben ist, aber es funktioniert.

Private Sub CommandButton1_Click()
'Sub ExcelToCatia()

Dim Auswahl As Range

Set Auswahl = Application.InputBox("Zeichnungsnummern auswählen", , , , , , , 8)

Dim CATIA As INFITF.Application
On Error Resume Next
Set CATIA = GetObject("CATIA.application")

If Err.Number <> 0 Then
    Set CATIA = CreateObject("CATIA.application")
    CATIA.Visble = True
End If
    On Error GoTo 0
   
'active worksheet
Dim oWB As Excel.Workbook
Set oWB = Excel.ActiveWorkbook
Dim oSh As Excel.Worksheet
Set oSh = oWB.ActiveSheet

'create a new product
Dim oProdDoc As ProductDocument
Set oProdDoc = CATIA.Documents.Add("Product")


Dim oRootProd As Product
Set oRootProd = oProdDoc.Product

'rename newly created product to Auswahl
oRootProd.PartNumber = Auswahl(1)
Dim oProductsRoot As Products
Set oProductsRoot = oRootProd.Products

'create new parts named like Auswahl

Dim Anzahl As Integer
Dim i As Integer

Dim newPart As Product

Anzahl = Auswahl.Count

'MsgBox Anzahl

For i = 1 To Anzahl - 1
On Error Resume Next

'MsgBox (Auswahl(i + 1))


Set newPart = oProductsRoot.AddNewComponent("Part", Auswahl(i + 1))


Next i

'Update the product
oRootProd.Update

End Sub


Jetzt will ich nur noch einbauen, dass ausgeblendete Zeilen nicht mit ausgewählt werden.

Dann kann ich schon ganz gut damit arbeiten.

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