Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Makro cgr Export auf Produktstruktur

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:  Makro cgr Export auf Produktstruktur (6258 mal gelesen)
vruser
Mitglied
VR-Methoden

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

Beiträge: 6
Registriert: 10.08.2011

HP Z800
Quadro FX5800

erstellt am: 10. Aug. 2011 15:10    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


01.jpg


02.jpg


03.jpg

 
Hallo an alle Tüftler und V5 Kollegen,

ich stehe kurz vor dem Fenstersturz und hoffe hier auf Hilfe.
Per Makro soll in etwa die Funktion "SAVE AS Frozen linked with cache" ausgeführt werden. Der Cache liegt lokal und die cgr's haben als Name einen Zeitstempel und nicht die Bezeichnung im CATProdukt => hier liegt das Problem... benötigt wird die korrekte Bezeichnung.
Viel gelesen und probiert habe ich schon und die Bücher auch hier liegen...
Fehlt "nur" noch der richtige CODE.
Hab eine Makro, welche den kompletten Baum traversiert und als simplify + cgr speichert. Dies ist unbrauchbar, da die Bauteile nicht vereinfacht werden sollen.
Im Forum habe ich dies hier gefunden und völlig korrekt läuft dies auch nicht, da es mit CA Modellen und Unterebenen Probleme gibt. Für jede Ebene wird ein cgr mit komplettem Inhalt herausgeschrieben. Schrauben etc., sind referenziert und sollen auch nur einmal abgelegt werden, da sie später über eine Struktur wieder "angezogen" werden. Das Produkt soll NICHT im Designmode geladen werden müssen...

CODE aus dem Forum:
Bilder anbei....  In dem größten cgr finden sich dann dummerweise ALLE Bauteile wieder... :O(


Sub CATmain()
CATIA.DisplayFileAlerts = False
Dim myproduct As Product
dim Doc as document
Set myproduct = CATIA.ActiveDocument.Product
set Doc = myproduct.referenceproduct.parent

' Enter Absolute Savepath here
Dim bsppath As String
bsppath = "C:\temp\Neuer Ordner2\"

Dim Abssavepath As String
Abssavepath = InputBox("Please enter the Absolute Save Path", "Save Path", bsppath)


' Launch the SAVEROUTINE
    Savethisdocument myproduct, Abssavepath


' Save Mainproduct
'Doc.SaveAs (Abssavepath & myproduct.PartNumber & Right(Doc.Name, Len(Doc.Name) - InStrRev(Doc.Name, ".") + 1))


CATIA.DisplayFileAlerts = True

' On end
MsgBox "Finished"

End Sub

Sub Savethisdocument(Myprod As Product, Abssavepath As String)

  Dim currentprod As Product
  Dim Doc As Document

  On Error Resume Next

  For i = Myprod.Products.Count To 1 Step -1
    Set currentprod = Myprod.Products.Item(i)
    Set Doc = currentprod.ReferenceProduct.Parent
        Doc.SaveAs (Abssavepath & currentprod.PartNumber & Right(Doc.Name, Len(Doc.Name) - InStrRev(Doc.Name, ".") + 1))
  Doc.ExportData (Abssavepath & currentprod.PartNumber & Right(Doc.Name, Len(Doc.Name) - InStrRev(Doc.Name, ".") + 1))&".cgr", "cgr"

      If currentprod.Products.Count <> 0 Then
        Err.Clear

        Savethisdocument currentprod, Abssavepath

      End If

      If Err.Number <> 0 Then
        MsgBox (Err.Description)
      End If
     
      MsgBox ("I am Here: " & currentprod.PartNumber)

  Next

  On Error GoTo 0

End Sub

>>>>Weiter habe ich eine Makro für Simpl und Export, welche eigentlich nur nicht Simpln dürfte.... und dann wäre das Kunststück gelungen...

>>>>Hier der Code für die SUB...  da die Main länger ist, muss erstmal der SUB-Code reichen...

>>>> prod ist Übergabe eines Produkts, number ist Übergabe des Namens,Ordner_T ist die Ordnertiefe zum "Struktur-Tingeln"..

'SPEICHERFUNKTION MIT PARTNAMEN AUFRUFEN
F_simplify prod, number, Ordner_T

Sub F_simplify(prod_to_simplify As Product, name_simplify_object As String, aktuelleEbene As integer)

Dim productDocument1 As Document
Set productDocument1 = CATIA.ActiveDocument

Dim product1 As Product
Set product1 = productDocument1.Product

Dim groups1 As CATBaseDispatch
Set groups1 = product1.GetTechnologicalObject("Groups")

Dim group1 As Group
Set group1 = groups1.Add()

group1.AddExplicit prod_to_simplify

Dim simplifications1 As CATBaseDispatch
Set simplifications1 = product1.GetTechnologicalObject("Simplifications")

Dim Stufe as double
If Genauigkeit = 1 Then
Stufe = 0.06
End If
If Genauigkeit = 2 Then
Stufe = 0.3
End If
If Genauigkeit = 3 Then
Stufe = 0.6
End If
If Genauigkeit = 4 Then
Stufe = 1.0
End If

Dim document1 As Document
Set document1 = simplifications1.ComputeSimplification(group1,Stufe)


Dim optimizerWorkBench1 As Workbench
Set optimizerWorkBench1 = productDocument1.GetWorkbench("OptimizerWorkBench")

Dim long1 As Long
long1 = group1.CountExplicit()

group1.RemoveExplicit 1

groups1.Remove group1

document1.Activate


document1.SaveAs EbenenArray(aktuelleEbene)&"\"&name_simplify_object&".cgr"

End Sub


Hoffe hier auf gute Hilfe für einen "Nerd" ;O)

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

Servus
Versteh ich dich richtig, dass du ein CATProdct haben willst, dass nur aus einzelnen cgrs aufgebaut ist?
Meine Idee dazu (siehe auch hier):
- Product öffnen (nur dieses)
- Schleife über alle Documents -> wenn es sich um ein CATPart handelt dieses als cgr-Datei abspeichern
- Schleife über dein Product und alle Parts durch die entsprechenden cgr ersetzen
- was soll beim Unterproducts passieren? (im Komponente umwandeln ist das überhaupt möglich?))

Gruß
Bernd

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

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

Templer
Mitglied
System Engineer


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

Beiträge: 141
Registriert: 24.01.2003

erstellt am: 11. Aug. 2011 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 vruser 10 Unities + Antwort hilfreich

HAllo
Ich würde hier gleich auf die DMUbuilder Utility zugreifen.
Ist hier eine VPM im Einsatz? Zumindest lässt der speichername darauf schliessen.
In der Doku wird beschrieben welche inputfiles du dafür benötigst.
Bei uns verwenden wir diese art des exports für gesamte Fahrzeuge

------------------
Non in omnes omnia conveniunt

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

JuPaV
Mitglied
Software-Entwickler


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

Beiträge: 39
Registriert: 11.11.2010

CATIA V5R20SP364
CATScript, CATVba, VB6, .NET, C++, NXOpen

erstellt am: 11. Aug. 2011 13:15    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 vruser 10 Unities + Antwort hilfreich

Hallo! 

ich habe ein Makro mit dieser Funktionalität bei der Firma "FEYNSINN" schon im Einsatz gesehen.
http://www.feynsinn.eu/user/downloads/feynsinn_cgr-gen-flyer.pdf

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

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

jdahm
Mitglied
Konstrukteur


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

Beiträge: 137
Registriert: 01.08.2008

erstellt am: 11. Aug. 2011 13: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 vruser 10 Unities + Antwort hilfreich

Hallo vruser,

kannst Du denn das Product nicht als 3DXML speichern?
Da hast Du doch alles als strukturierte CGRs vorliegen.

Aus dem Forum kam schonmal dieser Trick:
1.  3DXML-Datei in .ZIP umbenennen.
2.  Im ZIP-file sieht man dann die Einzel-CGRs.

------------------
Gruß
Jürgen

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

vruser
Mitglied
VR-Methoden

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

Beiträge: 6
Registriert: 10.08.2011

HP Z800
Quadro FX5800

erstellt am: 11. Aug. 2011 13:58    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


04.jpg

 
Hallo Zusammen,

ich werde mich mal bemühen, mein Anliegen näher zu formulieren... und hoffe am Ende reichen etwa 3 Zeilen CODE zur lösung ;O)

Alle Daten liegen in einem VPM-System und werden von dort geladen... Dabei wird ein lokaler Cache (35GB) gefüllt und die Daten im CATProdukt angezogen, wobei dei Verbindung zum VPM besteht, um im Zweifel den Design-Mode zu laden. Katalogteile werden nur 1x abgelegt und über's Produkt referenziert und verortet.. Am Ende steht ein 3200 Teile Produkt, welches zig Unterstrukturen, Komponenten und allerlei Sonderzeichen liefert...
Diese Teile sollen in einer Software geladen werden, welche sich am besten mit cgr füttern lässt (klein fein schnell ...)
Plan A ist einfach das Produkt und die cgr's mit SAVEasFROZEN + Cache zu speichern und in Tool 2 zu laden. Problem hierbei ist der kryptische Name der cgr-Daten, welchen ich unbedingt durch die V5-Namen, welche sich im Produkt "verstecken" ersetzen muss. Das muss unbedingt aus V5 heraus geschehen.

Obige Makro zum herausschreiben der Daten macht mir leider auf den Sub-Strukturen probleme :O( und die Simplify-Makro bei mir vor Ort, reduziert die Daten beim speichern und kann mir somit auch nicht weiter dienen, da hierbei Informationen der Bauteile verloren gehen. :O( Weiter können diese Teile nicht mehr über ein Produkt verortet werden, da die Trafo von der Struktur beim Export auf die Bauteile überschrieben wird :O( Dafür gibt es keine Probleme mit den Sub-Strukturen... :O)


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

vruser
Mitglied
VR-Methoden

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

Beiträge: 6
Registriert: 10.08.2011

HP Z800
Quadro FX5800

erstellt am: 11. Aug. 2011 14:12    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

Die Kollegen von FEYNSINN  kenn ich 

Dennoch kann ich kaum unter der Hand nach der Makro  fragen

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

vruser
Mitglied
VR-Methoden

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

Beiträge: 6
Registriert: 10.08.2011

HP Z800
Quadro FX5800

erstellt am: 11. Aug. 2011 14: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


05.jpg

 
Servus ...

3dXML klappt soweit leider auch nicht.. Namen sind zwar da, jedoch kann ich nicht einfach die Endungen in cgr tauschen, da ich diese erschummelten cgrs nicht importieren kann.

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

Templer
Mitglied
System Engineer


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

Beiträge: 141
Registriert: 24.01.2003

erstellt am: 11. Aug. 2011 14:45    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 vruser 10 Unities + Antwort hilfreich

HAllo
Also das ginge auch mit "Save as frozen", nur muss man das 2x ausführen.
Schritt 1:
Aus der VPM Laden> SAve as frozen / save products data and cache
Damit werden die cgr's mit sprechenden Namen exportiert, was unter anderen Funktionen so nicht möglich ist.
SChritt 2:
Nochmal save as frozen mit der option / linked with cache
Somit liegen dann die sprechenden cgr's verknüpft mit dem Product in einem anderen verzeichnis

Leider bin ich kein scripter, daher kann ich dir dafür keinen code anbieten, aber  zumindest die methode 

------------------
Non in omnes omnia conveniunt

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

vruser
Mitglied
VR-Methoden

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

Beiträge: 6
Registriert: 10.08.2011

HP Z800
Quadro FX5800

erstellt am: 11. Aug. 2011 15: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

Zitat:
Original erstellt von Templer:
HAllo
Also das ginge auch mit "Save as frozen", nur muss man das 2x ausführen.
Schritt 1:
Aus der VPM Laden> SAve as frozen / save products data and cache
Damit werden die cgr's mit sprechenden Namen exportiert, was unter anderen Funktionen so nicht möglich ist.
SChritt 2:
Nochmal save as frozen mit der option / linked with cache
Somit liegen dann die sprechenden cgr's verknüpft mit dem Product in einem anderen verzeichnis

Leider bin ich kein scripter, daher kann ich dir dafür keinen code anbieten, aber  zumindest die methode  



Diese Methode rückt das schon mal ins rechte Licht... Die Namen stimmen.. die Trafos werden auch nicht berücksichtigt und Schrauben werden auch nicht doppelt abgelegt.. Leider ist das Speichern der CATParts zeitlich und platztechnisch völlig unbrauchbar... Nur die cgr's sind ja hier interessant... *grmpf*

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