| |
| KISTERS 3DViewStation: Mit 3D-Montageanleitungen werden Produkte bei der Fertigung lebendig, eine Pressemitteilung
|
Autor
|
Thema: Erweiterte Stückliste Blechteile (5036 mal gelesen)
|
jdahm Mitglied Konstrukteur
Beiträge: 137 Registriert: 01.08.2008
|
erstellt am: 26. Jul. 2011 15:55 <-- editieren / zitieren --> Unities abgeben:
Wir wollen kalkulieren, wieviel Blech, geordnet nach Blechstärke, in einer Baugruppe verbaut ist. Gibt es bereits eine ähnliche CATIA-Funktion mit Datei-Export, oder muß man das als Makro programmieren? Das Minimalziel wäre eine Teile-Auflistung, die die Blechstärke enthält. Optimal wäre noch die dazugehörige Fläche der Abwicklung. Sind in der standardmäßigen "Bill of Material" oder "Measure Inertia" Informationen enthalten, ob es sich um Sheetmatal-Parts handelt? ------------------ Gruß Jürgen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Ehrenmitglied V.I.P. h.c. Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 26. Jul. 2011 16:06 <-- editieren / zitieren --> Unities abgeben: Nur für jdahm
Zitat: Original erstellt von jdahm:
Gibt es bereits eine ähnliche CATIA-Funktion mit Datei-Export, oder muß man das als Makro programmieren? Sind in der standardmäßigen "Bill of Material" oder "Measure Inertia" Informationen enthalten, ob es sich um Sheetmatal-Parts handelt?
Nein, Ja. Nein, Nein. Stell dir das mal nicht so einfach vor. Ich bin mir nicht sicher, ob man ohne CAA-Mittel sprich mit VBA mitteln derartige Informationen überhaupt abgreifen kann. Dann musst du Längen berechen, bei der die Fragen aufkommen von wo nach wo, aufgeklappt, teilweise aufgeklappt, garnicht aufgeklappt, mit Ausschnitten oder ohne einfach als rechteck betrachtet.... Ich glaube nicht, dass ihr das ohne direkte von euch in den Parts defnierte Parameter überhaupt realisieren könnt. Wärend der Programmierung müsste das Programm Entscheidungen treffen, die einer extremen KI gleichen, um es Narrensicher machen zu können. Ich meine ich kenne eure Randparameter und Wünsche nicht, was letztendlich rauskommen soll. Ebenso weis ich nicht, wie eure Modelle aufgebaut oder vll. sogar passend parametrisiert sind. Für mich hört sich dieser Wunsch aber nach dem Motto an... Guck ma ich kann hier aufglappen und dann seh isch doch allet. Dat muss doch auch per Programm gehen... In Meinen Augen ist das aber je nach Komplexität des Blechteils ohne direkten Eingriff des Anwenders garnicht möglich! ------------------ MFG Rick Schulz Nettiquette (CAD.de) - Was ist die Systeminfo? - Wie man Fragen richtig stellt. - Unities Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JuPaV Mitglied Software-Entwickler
Beiträge: 39 Registriert: 11.11.2010 CATIA V5R20SP364 CATScript, CATVba, VB6, .NET, C++, NXOpen
|
erstellt am: 26. Jul. 2011 16:31 <-- editieren / zitieren --> Unities abgeben: Nur für jdahm
Hallo! Versuch es mal so :
Code:
Sub Test() Set oProd = CATIA.ActiveDocument.Product Dim sPfad As String sPfad = CATIA.ActiveDocument.Path
Dim AssemblyConvertor As AssemblyConvertor Set AssemblyConvertor = oProd.GetItem("BillOfMaterial") Dim arrayOfVariantOfBSTR1(2) arrayOfVariantOfBSTR1(0) = "Part Number" arrayOfVariantOfBSTR1(1) = "Type" arrayOfVariantOfBSTR1(2) = "Quantity" Set AssConVariant = AssemblyConvertor AssConVariant.SetCurrentFormat arrayOfVariantOfBSTR1 Dim arrayOfVariantOfBSTR2(2) arrayOfVariantOfBSTR2(0) = "Part Number" arrayOfVariantOfBSTR2(1) = "Type" arrayOfVariantOfBSTR2(2) = "Quantity" Set AssConVariant = AssemblyConvertor AssConVariant.SetSecondaryFormat arrayOfVariantOfBSTR2 AssemblyConvertor.[Print] "XLS", sPfad & "\Material.xls", oProd End Sub
------------------ Mit freundlichen Grüßen, JuPaV Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Ehrenmitglied V.I.P. h.c. Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 26. Jul. 2011 16:49 <-- editieren / zitieren --> Unities abgeben: Nur für jdahm
|
jdahm Mitglied Konstrukteur
Beiträge: 137 Registriert: 01.08.2008
|
erstellt am: 26. Jul. 2011 17:06 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 26. Jul. 2011 17:22 <-- editieren / zitieren --> Unities abgeben: Nur für jdahm
Servus Wenn du dir in jedem Part einen Parameter (Userdefined Parameter) für Blechstärke und Abwicklung erstellst (wie dann die Werte dort reinkommen ist wieder ein anderes Problem) kannst du diese auch über die Stückliste ausgeben lassen (siehe hier) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jdahm Mitglied Konstrukteur
Beiträge: 137 Registriert: 01.08.2008
|
erstellt am: 26. Jul. 2011 18:00 <-- editieren / zitieren --> Unities abgeben:
Danke Bernd, ich kenne die Möglichkeit der "userdefined parameters" schon.- Das hatten wir bei der Administration schon beim letzten Projekt gefordert. Man müßte wahrscheinlich die StartUp-Modelle ändern. Da aber bei jedem neuen Projekt hunderte Bauteile aus vergangenen Projekten wiederverwendet werden, ist der Aufwand, Parameter nachträglich in die bereits existierenden Teile einzufügen, zu hoch. Deshalb hatte ich ein Makro geschrieben, das die Informationen aus BOM-List und Measure Inertia kombiniert. Da im Sheetmetal Design erzeugte Teile zwangsweise die Materialdicke als Parameter enthalten, suche ich nach einer Möglichkeit, sheetmetal parts zu erkennen und deren Parameter separat auszulesen oder im vorhandenen Makro zu integrieren. ------------------ Gruß Jürgen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jdahm Mitglied Konstrukteur
Beiträge: 137 Registriert: 01.08.2008 CATIA V5 R21 SP3 Windows 10 Pro(64) HP EliteBook 8760w i7 CPU @ 2,5GHz 8GB RAM
|
erstellt am: 26. Jul. 2011 18:20 <-- editieren / zitieren --> Unities abgeben:
Was mir gerade eingefallen ist:Wenn es mir gelingt, die Blechstärke auszulesen, kann ich mit "Measure Inertia" das Volumen messen. In Excel errechne ich aus beiden Werten eine hinreichend genaue Fläche des Teils. Ich zitiere mal Bernds Leitspruch: "Warum einfach, wenns auch kompliziert geht!" Ich hoffe, dafür fällt keine Lizenz-Gebühr an ------------------ Gruß Jürgen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 26. Jul. 2011 18:57 <-- editieren / zitieren --> Unities abgeben: Nur für jdahm
Servus Die Blechstärke solltest du entweder der Suche oder einer Schleife durch die Parameter ermitteln können (Name des Parameters: "Blechparameter.1\Aufmaß", je nach Spracheinstellung!) Aus der Masse bzw das Volumen die Fläche berechnen ist gewagt: K-Faktor der Biegung (kommt darauf an, wie genau du die Werte benötigst) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. [Diese Nachricht wurde von bgrittmann am 26. Jul. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Ehrenmitglied V.I.P. h.c. Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 27. Jul. 2011 08:17 <-- editieren / zitieren --> Unities abgeben: Nur für jdahm
|
jdahm Mitglied Konstrukteur
Beiträge: 137 Registriert: 01.08.2008
|
erstellt am: 27. Jul. 2011 16:43 <-- editieren / zitieren --> Unities abgeben:
Hallo JuPaV, ich bin heute erst dazu gekommen, Dein script zu testen. Was mich besonders beeindruckt, ist, daß man die "Bill Of Material" so einfach auslesen kann. Bisher hatte ich den umständlichen Weg über die Exportfunktion und eine anschließende Konvertierung in Excel genutzt. Auch das Erfassen der "Quantity" ist meines Wissens mit der CATIA-BOM-Funktion nicht direkt möglich. Inzwischen habe ich herausgefunden, wie man auch andere Informationen der BOM hinzufügen kann. Man muß nur die in CATIA verwendeten Begriffe, wie z.B. "Product Description" verwenden. Du hast in Deinem script zwei ähnliche Abschnitte, beginnend mit Dim arrayOfVariantOfBSTR ... Diese unterscheiden sich nur in der letzten Zeile ... .SetCurrentFormat ... ... .SetSecondaryFormat ... Ich nehme an, daß es sich hierbei um 2 Varianten handelt, zwischen denen man wählen kann. Die CurrentFormat-Variante erzeugt am Ende der Liste nochmals eine Auflistung aller Parts mit der dazugehörigen Anzahl. Kann man diese oder eine ähnliche Funktion benutzen, um "Measure Inertia" auszulesen? Wo bekomme ich weitere Informationen zum "AssemblyConvertor" her? - Die vielgerühmte V5Automation.chm kennt diesen Begriff nicht.
------------------ Gruß Jürgen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JuPaV Mitglied Software-Entwickler
Beiträge: 39 Registriert: 11.11.2010 CATIA V5R20SP364 CATScript, CATVba, VB6, .NET, C++, NXOpen
|
erstellt am: 28. Jul. 2011 09:23 <-- editieren / zitieren --> Unities abgeben: Nur für jdahm
|
jdahm Mitglied Konstrukteur
Beiträge: 137 Registriert: 01.08.2008
|
erstellt am: 28. Jul. 2011 11:15 <-- editieren / zitieren --> Unities abgeben:
Danke JuPaV für den Link. Damit kann ich zumindest mehr anfangen, als mit der V5Automation.chm. Kann man für das Auslesen der physikalischen Parameter nicht das "Inertia"-Objekt oder die Methode "GetTechnologicalObject" benutzen? Laut Dokumentation müßte das folgende Werte liefern: * mass * center of gravity * inertia matrix * principal axes * principal moments Wie wendet man das praktisch auf ein Product an? ------------------ Gruß Jürgen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jdahm Mitglied Konstrukteur
Beiträge: 137 Registriert: 01.08.2008 CATIA V5 R21 SP3 Windows 10 Pro(64) HP EliteBook 8760w i7 CPU @ 2,5GHz 8GB RAM
|
erstellt am: 28. Jul. 2011 19:25 <-- editieren / zitieren --> Unities abgeben:
Ich wollte nochmal Bernds Vorschlag aufgreifen, die Dicke der Sheetmetal-Parts abzufragen. Grundsätzlich könnte das doch so funktionieren: Set oProd = CATIA.ActiveDocument.Product Dim Thick As Double Thickness = oProd.Parameters.Item(1).Value Nur müßte das Argument für Item anstatt der 1 "Partname\Sheet Metal Parameter.1\Thickness" beinhalten (Partname als Variable). 1. Wie erreicht man, daß alle Parts des Products ausgelesen werden? 2. Wie groß ist der Aufwand, Partname und dazugehörige Dicke aufzulisten (z.B: XLS)?
------------------ Gruß Jürgen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Christian.O Mitglied Konstrukteur
Beiträge: 1212 Registriert: 17.07.2009
|
erstellt am: 28. Jul. 2011 22:31 <-- editieren / zitieren --> Unities abgeben: Nur für jdahm
Servus, Zitat: Original erstellt von jdahm: 1. Wie erreicht man, daß alle Parts des Products ausgelesen werden? 2. Wie groß ist der Aufwand, Partname und dazugehörige Dicke aufzulisten (z.B: XLS)?
anbei ein Makro (VBA) zum Auslesen von PartNumber und Blechdicke. Falls ein Part keinen Blechparameter enthält wird das auch im Excelfile eingetragen. ------------------ Mit freundlichen Grüßen aus Tirol Christian Obholzer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jdahm Mitglied Konstrukteur
Beiträge: 137 Registriert: 01.08.2008 CATIA V5 R21 SP3 Windows 10 Pro(64) HP EliteBook 8760w i7 CPU @ 2,5GHz 8GB RAM
|
erstellt am: 29. Jul. 2011 19:00 <-- editieren / zitieren --> Unities abgeben:
Hallo Christian, vielen Dank für den Riesen-Aufwand. Leider bin ich jetzt erst dazu gekommen, Dein script zu testen. Bei Dim WB As Workbook kommt die Meldung "Compile Error: User-defined type not defined" Ich habe aber "Option Explicit" deaktiviert, dann lief es bis auf ein paar unwesentliche Meckereien (bei der Excel-Formatierung) ohne Probleme durch. Die Part-Erkennung mußte ich modifizieren, da unsere Geometrien aus dem VPM kommen.- Ich habe erstmal (Right(objDocuments.Item(intI).Name, 7) = "CATPart") durch (Right(objDocuments.Item(intI).Name, 22) = "DOCCAD PLOC") ersetzt. Ist es nicht auch möglich, den "Type" des Docs zu bestimmen?- Das hätte den Vorteil, daß man die Routine für VPM und filebasierte Geometrien verwenden könnte. Im Moment suche ich noch nach einer Möglichkeit, die Anzahl der gleichen Parts auszulesen. Das müßte doch über "Count" zu machen gehen. Vielleicht gelingt es mir auch noch, "Inertia"-Daten mit einzubinden. Wichtig für mich war, die Anbindung an Excel zu erreichen.- Das hätte ich niemals selbst hinbekommen. In Excel selber fühle ich mich dann schon ein bißchen heimischer, weil ich da nicht ganz so unerfahren bin. Also nochmal vielen Dank und Grüße nach Tirol! (Und natürlich volle Punktzahl für Deinen Aufwand.) ------------------ Gruß Jürgen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 30. Jul. 2011 09:24 <-- editieren / zitieren --> Unities abgeben: Nur für jdahm
Servus Wahrscheinlich scheitert Dim WB As Workbook da du Excel in VBA nicht unter "References" aktiviert hast. Den Typ des Dokumentents solltest du über Typename(objDocuments.Item(intI)) bekommen. Einen guten Beitrag zum Messen von Trägheit findest du hier. Wie oft ein Bauteil in einem Product verbaut ist geht nur über eine Schleife über alles Products und dann einfach den Namen (ggf des Referenceproducts) vergleichen und hochzählen (Vorsicht wenn das Teil zum 2. mal im Baum auftaucht) Gruß Bernd Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jdahm Mitglied Konstrukteur
Beiträge: 137 Registriert: 01.08.2008
|
erstellt am: 02. Aug. 2011 11:15 <-- editieren / zitieren --> Unities abgeben:
Zitat: Wahrscheinlich scheitert Dim WB As Workbook da du Excel in VBA nicht unter "References" aktiviert hast.
Wie macht man denn das? Zitat: Wie oft ein Bauteil in einem Product verbaut ist geht nur über eine Schleife über alles ...
Sucht man da nach Items("PartNumber") in der obersten Baugruppe? Werden dabei alle Unterbaugruppen mit berücksichtigt? ------------------ Gruß Jürgen [Diese Nachricht wurde von jdahm am 02. Aug. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 02. Aug. 2011 11:22 <-- editieren / zitieren --> Unities abgeben: Nur für jdahm
Servus Zu den References: im VBA-Editor: Tools -> References -> Microsoft Excel 11.0 Object Libray (zb entsprechende Version) aktivieren. Zu Anzahl der Teile: Products.Count liefert dir nur die gesamte Anzahl der Teile nicht wie oft ein bestimmtes (zb Schraube M3x20) Einzelteil verbaut ist. Somit musst du über eine Schleife (oder einer Suche?) die bestimmte Anzahl erst ermitteln. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jdahm Mitglied Konstrukteur
Beiträge: 137 Registriert: 01.08.2008
|
erstellt am: 02. Aug. 2011 12:03 <-- editieren / zitieren --> Unities abgeben:
|
jdahm Mitglied Konstrukteur
Beiträge: 137 Registriert: 01.08.2008 CATIA V5 R21 SP3 Windows 10 Pro(64) HP EliteBook 8760w i7 CPU @ 2,5GHz 8GB RAM
|
erstellt am: 10. Aug. 2011 10:44 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, ich komme mit einem seltsamen Phänomen in JuPaVs script nicht klar: Das script ist schon zigmal ohne Probleme gelaufen. Jetzt kommt eine eigenartige Run-time-error-Meldung: Method Print ... failed (siehe screenshot) Excel ist u.a. in diesem Modul als Reference angewählt (2. screenshot) Was mich stutzig macht: Beim ersten Mal läuft das script. Bei wiederholter Ausführung kommt die Fehlermeldung. Habe sowohl Excel als auch CATIA neu gestartet - ohne Erfolg! ------------------ Gruß Jürgen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jdahm Mitglied Konstrukteur
Beiträge: 137 Registriert: 01.08.2008
|
erstellt am: 10. Aug. 2011 12:06 <-- editieren / zitieren --> Unities abgeben:
Kleiner Nachtrag zu meinem Hilferuf: Trotz Fehlermeldung wurde die entsprechende Excel-Ausgabe-Datei richtig erzeugt. Vielleicht reicht es erstmal aus, die Fehlermeldung zu unterdrücken und die nächste Zeile abzuarbeiten. Trotzdem würde mich die Ursache interessieren. ------------------ Gruß Jürgen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |