Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Problem beim Umbenennen von Instance Names

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:  Problem beim Umbenennen von Instance Names (11784 mal gelesen)
tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 605
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 27. Okt. 2005 15:26    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


InstanceNameProblem.zip

 
Hallo,

ich habe momentan ein (gewaltiges) Problem beim Umbenennen von Instance Namen, wenn Kontext-Links auf Publizierte Elemente in den umzubenennenden Parts referenziert sind.
Kurios dabei ist: funktioniert manuell, funktioniert mit CATScript, funktioniert nicht mit Visual Basic.

Die Referenzen in "External References" werden beim Umbenennen der Instance Namen von CATIA automatisch geändert, wenn mit CATScript (und manuell) durchgeführt, mit VB aber eben nicht. Der Quellcode ist 100 % identisch.

Wir haben bereits einen Call an IBM/Dassault gesendet, aber für gewöhnlich dauert das ewig - falls überhaupt was dabei rauskommt.

Eine ausführliche Doku des Problems mit CATScript, VB6.0 Projekt und kompillierter exe sowie Beschreibung (in engl.) und Beispielmodelle sind gezippt im Anhang. Das Problem ist auf eine Mini-Struktur reduziert.

Die Strukturen, die ich umbenennen (nicht nur die Instance Namen, sondern auch Part Numebrs, auf File Names etc.) enthalten mehrere 100 Modelle und sind zudem verschachtelt, d.h. eine CATScript-Lösung bringt mich nicht weiter.

Meine Hoffnung ist, das irgendjemand das gleiche Problem hat/hatte und mir vieleicht weiterhelfen kann - für eine Idee wäre ich dankbar.

Danke und Gruss

TomTom

------------------
tomtom1972

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 605
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 27. Okt. 2005 15:28    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

Ach ja:
R14 Sp3 (HF26, DC)

Das gleiche aber auch ohne HFs / oder mit anderen.

------------------
tomtom1972

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 605
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 01. Nov. 2005 12:28    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 habe ein Antwort von IBM erhalten: Mein Problem wurde als PMR: 89255,025,724 an Dassault weitergeleitet. Ich denke, es handelt sich um einen Bug.

Ich habe einen Workaround gefunden. Falls jemand mit dem gleichen Problem zu kämpfen hat, melde er/sie sich.

TomTom

------------------
tomtom1972

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

Filippo
Mitglied
CAx-Systemverwalter


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

Beiträge: 168
Registriert: 09.11.2003

erstellt am: 01. Nov. 2005 18:47    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 tomtom1972 10 Unities + Antwort hilfreich

Hallo tomtom1972,

musst du unbedingt den "product2.Name" ändern?
Wenn du den "product2.PartNumber" änderst dann funktioniert!

Ciao
Filippo

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 605
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 02. Nov. 2005 05: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,

danke fuer die Antwort. Das das Umbenennen des PartNumbers keine Probleme mit sich bringt weiss ich. Wir konstruieren Betriebsmittel für die Automobilindustrie, hier im speziellen Fall für Daimler Chrysler, und alle Modelle werden dahingehend per Q-Checker überprüft, ob Filename, Partnumber und Instancename identisch sind. Die Syntax der Benennung ist vorgegeben. Ändert nun also einer unserer Planer beispielsweise eine Stationsnummer (die in der Bennennung jedes Modells der Station enthalten ist), dann kann ich eben ein paar hundert V5 Modelle umbenennen. Weiterhin dürfen die Referenzen aller Links nur auf Publizierte Elemente verweisen, und das sind auch mehr als hundert. Und dann hatte ich mich eben mit o.g. Bug zu plagen ....
Ist aber wie gesagt gelöst.

Gruss TomTom

------------------
tomtom1972

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 605
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 06. Apr. 2006 07: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

Hallo,

falls es für jemanden von Interesse ist: Ich habe eine abschliessende Antwort von Dassault/IBM erhalten.

Die Lösung meines Problems habe ich hier beschrieben: http://www.coe.org/forums/messageview.cfm?catid=10&threadid=7669

Gruss Tom

                                      
THIS PROBLEM IS PERMANENT RESTRICTION IN CATIA. This functionality is not available in batch mode.             
Use CATScript only.   

Die komplette Antwort.

Dear Customer,

The APAR which was associated to your problem has now closed.

*****   APAR HD46312 has been closed Permanent Restriction for PMR 89255,025,724   *****

Detailed closing description as given in the APAR:

----------------------------------------------------------------
--  APAR SUBMITTOR PAGE                                       --
----------------------------------------------------------------
REGRESSION= 

ERROR DESCRIPTION:                                             
Renaming the instance name of a part by script is              
different when doing it via CATScript or Visual                
Basic.                                                         
.                                                              
The external References are not updated.                       
.                                                              
Scenario :                                                     
.                                                              
The following adjustments in Tools Options are                 
important:                                                     
.                                                              
- Tools Options > General > Infrastructure > Part              
Infrastructure > General                                       
(see pic. 1)                                                   
- Tools Options > General > Infrastructure >                   
Product Structure > Nodes                                      
Customization (see pic. 2)                                     
.                                                              
1. product1.CATProduct is loaded in Catia (is Root),           
see pic. 3                                                     
2. Start Macro1.CATScript                                      
3. The Macro renames the instance name of part1                
(part1.1) to ?renamed.1?                                       
4. The External Reference in part2 is renamed                  
automatically by Catia                                         
(see pic. 4)                                                   
.                                                              
.                                                              
5. Close and load the product1.CATProduct again                
(see pic 3) or click                                           
undo button until the instance name ?renamed.1? is             
renamed back to the                                            
original (part1.1)                                             
6. Start the Visual Basic Application. The source              
code is identic to the                                         
Macro1.CATScript source code                                   
7. Result is shown in pic.5.                                   
.                                                              
The External Reference in part2 is still                       
the old one and NOT renamed. Collapse the node                 
of External References (pic. 6) and expand it again            
(pic 7.)                                                       
8. Save, close and load the product1.CATProduct                
again (see pic. 8).                                            
The External Reference in part2 is destroyed (the              
Link is shown in the Desk                                      
as Link with :No Status)                                       
.                                                              
LOCAL FIX:                                                     
none                                                           
----------------------------------------------------------------
-- APAR RESPONDER PAGE                                        --
----------------------------------------------------------------
PROBLEM CONCLUSION:                                            
THIS PROBLEM IS PERMANENT RESTRICTION IN                       
CATIA.                                                         
This functionality is not available in batch mode.             
Use CATScript only.                                            
.                                                              
TEMPORARY FIX: none                                            
COMMENTS:                                                      
CIRCUMVENTION:                                                 
None                                                           
None                                                           
MESSAGE TO SUBMITTER:                                          

This closing code indicates that no solution can be delivered on the reported level of CATIA/ENOVIA.
You may contact our associated IBM PLM Marketing Domain Leader to raise an Enhancement Request (ERD).
This cannot be done through a Problem Report (PMR).


Kind regards
IBM Worldwide PLM Technical Support


------------------
tomtom1972

[Diese Nachricht wurde von tomtom1972 am 06. Apr. 2006 editiert.]

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

walterwerner
Mitglied



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

Beiträge: 21
Registriert: 30.10.2004

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

Guten Abend,

fkt. das Umbenennen mit VB bzw. VB.NET von Instancen inzwischen (falls ja auf welchem Release, SP, HF?) oder sollte man das besser immer noch in CATScript machen?

MfG
Walter

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 605
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 13. Jan. 2009 17:49    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,

geht weder in VB noch in VB.net (da .net CATIA ja immer noch nur über die COM-Schnittstelle anspricht). Wird laut Aussage von Dassaul auch nie (!!) über VB gehen.
Wie beschrieben während der Laufzeit vom VB-Script ein CATScript ausführen. Läuft einwandfrei.

Gruß TomTom

------------------
tomtom1972

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

walterwerner
Mitglied



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

Beiträge: 21
Registriert: 30.10.2004

erstellt am: 13. Jan. 2009 18:02    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 tomtom1972 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von tomtom1972:

Wie beschrieben während der Laufzeit vom VB-Script ein CATScript ausführen. Läuft einwandfrei.

Gruß TomTom


Also Du meinst, die Oberfläche kann ich in VB bzw. VB.NET machen und wenn ich z.B. ein Button auf der Oberfläche drücke, muss der Code für den Button ein CATScript starten, das die Umbenennung durchführt?

MfG
Walter

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 605
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 14. Jan. 2009 06:49    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 walterwerner,

in etwa so. Allerdings mache ich grundsätzlich soviel wie möglich in VB und rufe dann nur den Code-Schnipsel, welcher nur im CATScript läuft, auf.

In diesem Fall setze ich das so um:

Die Function zum Umbenennen des Instanznamens aus dem VB6 Script
(oItem ist die Instanz (also das .Product) des CATParts oder CATProducts in der Struktur, welche umbenannt werden soll, sName ist der neue Instanzname ohne .Index

Code:
Function FUNC_Rename_BugFix(oItem, sName)
  On Error Resume Next
  Err.Clear
  '--- ist das Father-Product des umzubenennenden Parts/Products das Root?
  If TypeName(oItem.Parent.Parent.Parent.Parent) = "Application" Then
      Set oFather = Catia.Documents.Item(oItem.Parent.Parent.ReferenceProduct.Parent.Name)
  Else
      Set oFather = Catia.Documents.Item(oItem.Parent.Parent.Parent.Parent.ReferenceProduct.Parent.Name)
  End If
  Dim aObject1(2)
  Set aObject1(0) = oItem
  Set aObject1(1) = oFather
  aObject1(2) = sName
  '--- das aufzurufende CATScript liegt entweder (wie hier) im Ordner der kompillierten VB.exe oder wird während der Laufzeit des VB-Scripts als FileStream in einen verfügbaren Ordner (z.B. Temp) geschrieben, aufgerufen und wieder gelöscht

  Catia.SystemService.ExecuteScript App.Path, catScriptLibraryTypeDirectory, "InstRename_BugFix.CATScript", "CATMain", aObject1
  If Err.Number <> 0 Then
      MsgBox "Problem beim Ausführen des InstRename_BugFix.CATScript.  " & vbLf & " Abbruch.", 16, "Unbekannter Fehler."
  Else
      On Error GoTo 0
  End If
End Function


Das CATScript:

Code:
Sub CATMain(oItem, oFather, sName)
  If oItem.Name = oFather.Name Then
      Set oProd = Catia.Documents.Item((oItem).Parent.Parent.ReferenceProduct.Parent.Name)
      Set oItem = oProd.Product.Products.Item(oItem.Name)
  ElseIf oItem.Name <> oFather.Name Then
      Set oProd = oFather.Item(oItem.Parent.Parent.PartNumber)
      Set oItem = oProd.Products.Item(oItem.Name)
  End if
  '--- der kleinst Möglich Index (z.B. .1) für die Instanz
  On Error Resume Next
      Dim k as Integer
      Do
        k = k + 1
        Err.Clear
        oItem.Name = sName& "." & k
      Loop Until Err.Number = 0
  On Error Goto 0
End Sub

Hoffe das hilft dir weiter.

Gruß TomTom

------------------
tomtom1972

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

walterwerner
Mitglied



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

Beiträge: 21
Registriert: 30.10.2004

erstellt am: 14. Jan. 2009 07: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 tomtom1972 10 Unities + Antwort hilfreich

Guten Morgen tomtom1972,

Danke für den Code.
Werde mich mal dadurch kämpfen.

MfG
Walter

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

MrSaxophone
Mitglied


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

Beiträge: 9
Registriert: 27.02.2008

erstellt am: 23. Mrz. 2009 09: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 tomtom1972 10 Unities + Antwort hilfreich

Hallo zusammen,

auch ich kämpfe gerade mit den Instance-Names. Die Ausgangslage ist in etwa dieselbe, unser Kunde erwartet Filename, Part Name und Instance-Name gleich nach vorgegebenem Pattern, das aber von unserer Benennung abweicht.
Zusätzlich holen wir unsere Daten aus Smarteam. Bis zum umbenennen der Instance-Namen funktioniert alles prima, danach gehen allerdings teilweise Constraints verloren. (Eine Komponente wird als "disconnected" angezeigt).

Hattet ihr so ein Problem auch schon mal?

Übrigens: Wir haben einen anderen Workaround gefunden für das in diesem Thread genannte instance-name problem: Wenn ich jedes enthaltene Product in eigenem Fenster öffne, den Instance-Name per VB ändere und speichere, dann bleibt die Änderung erhalten. Bis hierher hat es funktioniert....

Hattet ihr mit dem CATScript Workaround irgendwelche Probleme mit Constraints? Wenn nein, dann versuch ich es mal damit.

Vielen Dank für eure Hilfe.

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

K.Siebert
Mitglied
Tech Zeichner


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

Beiträge: 415
Registriert: 19.05.2007

Win XP
Catia V5 R19
Catia V5 R24

erstellt am: 23. Mrz. 2009 14:34    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 tomtom1972 10 Unities + Antwort hilfreich

Wir benutzen dieses Skript bis jetzt gab es keine Probleme
Sollte im Grunde das gleiche sein.
http://ww3.cad.de/foren/ubb/Forum137/HTML/001678.shtml#000012

------------------
     Sei Schlau bleib Dumm !!?!!     

[Diese Nachricht wurde von K.Siebert am 23. Mrz. 2009 editiert.]

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 605
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 24. Mrz. 2009 10: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,

In diesem Thread ging es ursprünglich einmal um die Problematik des Umbenennens von Instanznamen mit VB6 (oder .net) und dem dabei (immer noch, R18) auftretenden, oben beschriebenen Bug.
@K.Siebert: Das das in CATScript geht, ist klar. Das ist jedoch ein ganz anderes Thema.
@MrSaxophone: Sofern du Links hast die über das RootProduct (oder zumindest über eine Knoten überhalb des Products laufen, welches du neu in einem eigenen Fenster öffnetst) sind diese beim Umbenennen des Instanznamens (in einem eigenen Fenster) sowieso alle kaputt. Sofern du diese Links nicht hast, hat es mit dem ursprünglichen Thema nix zu tun ....

Gruß

------------------
tomtom1972

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

MrSaxophone
Mitglied


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

Beiträge: 9
Registriert: 27.02.2008

erstellt am: 27. Mrz. 2009 15: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 Nur für tomtom1972 10 Unities + Antwort hilfreich

Hallo zusammen,

ich bin zu einer Lösung meines Problems gekommen! Tatsächlich war es auch für meine gebrochenen Constraints die gleiche Ursache wie bereits von tomtom1972 berichtet! Wenn ich die Umbenennung innerhalb eines Scripts mache, das in CATIA läuft, funktioniert alles problemlos.

Ich konnte allerdings keine Unterschiede feststellen, ob ich es als CATScript, oder catvba mache! Beides funktioniert gleich gut. Sobald ich allerdings ein externes VB Projekt verwende, das die CATIA API per COM anspricht, habe ich wieder das Problem.

Jedenfalls hat uns dieser Beitrag sehr weitergeholfen!!!! Vielen Dank dafür!!!

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

tobiley
Mitglied
Masterstudent


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

Beiträge: 59
Registriert: 15.02.2010

Win XP
CatiaV5 R17, R18, R19
HD2-Lizenz
VB2008

erstellt am: 11. Apr. 2011 21: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 tomtom1972 10 Unities + Antwort hilfreich


Bild.JPG

 
Hallo ich habe ein Programm mit VB.NET geschrieben welches eine komplette Baugruppe umbenennt also z.B. die Teilenummer bei allen Bauteilen ändert. Den Instance-Namen nenne ich auch mittels eines CATScripts wie von tomtom1972 beschrieben um. Das Problem ist das CATIA die einzelnen Dateien zum speichern komplett lädt und so der benötigte Arbeitsspeicher bei großen Baugruppen immer größer wird bis dieser vollläuft. Um das zuverhindern lade ich jedes Bauteil nach dem Speichervorgang in den Visualization_Mode. Das klappt auch eigentlich ganz gut. Bis auf die Tatsache, dass die Im Bild umrandetet Parameter ihre Verknüpfung zu dem "Arbeitspart" darüber verlieren. Dies geschieht nicht wenn ich den Befehl mit Visualization-Mode weglasse. Aus diesem Grund habe ich mir gedacht das ich "nur" das CATProduct (und damit erst dann die einzelnen CATParts) welches die einzelnen CATParts beinhaltet in den Visualization_Mode lade wenn alle einzelenen CATParts umbenannt sind. Dadurch sollten sich meiner Meinung nach die Links anpassen können. Tun sie jedoch nicht.

Weiß jmd. zufällig einen Lösungsansatz?

Vielen Dnak für eure Hilfe!

CODE mit Visualization_Mode bei allen Bauteilen:

Code:
Sub SUB_SCAN(ByVal oProducts, ByVal UebergabeName, ByVal auftragsnummer)
        Dim oProductsUebergabe As Products
        Dim pos As Integer
        Dim n As Integer
        Dim NeuerName As String
        Dim Pfad As String

        For i = 1 To oProducts.Count
            If oProducts.Item(i).Products.Count > 0 Then

                oProductsUebergabe = oProducts.Item(i).Products
                SUB_SCAN(oProductsUebergabe, UebergabeName, auftragsnummer)

                '------Umbenennen--------
                pos = 0
                n = 0
                Do

                    pos = Strings.InStr(pos + 1, oProducts.Item(i).PartNumber, "_")
                    n = n + 1
                Loop Until n = 2
                NeuerName = UebergabeName & "_" & Strings.Mid(oProducts.Item(i).PartNumber, pos + 1)
                If oProducts.Item(i).PartNumber <> "Formteile" And oProducts.Item(i).PartNumber <> "Rohlinge" Then

                    oProducts.Item(i).PartNumber = NeuerName
                    Istrename_Bugfix(oProducts.Item(i), NeuerName)

                    '-------Speichern----------
                    Dim loeschFile As String
                    loeschFile = oProducts.Item(i).ReferenceProduct.Parent.Fullname
                    pos = Strings.InStrRev(oProducts.Item(i).ReferenceProduct.Parent.Fullname, "\")
                    Pfad = Strings.Left(oProducts.Item(i).ReferenceProduct.Parent.Fullname, pos)
                    Catia.DisplayFileAlerts = False
                    Try
                        oProducts.Item(i).ReferenceProduct.Parent.saveas(Pfad & NeuerName)
                    Catch ex As Exception
                    End Try
                    Catia.DisplayFileAlerts = True

                    oProducts.Item(i).ApplyWorkMode(CatWorkModeType.VISUALIZATION_MODE)
  
                    System.IO.File.Delete(loeschFile)
                End If

            Else
                pos = 0
                n = 0
                Do
                    oProducts.item(i).ApplyWorkMode(CatWorkModeType.DEFAULT_MODE)
                    pos = Strings.InStr(pos + 1, oProducts.Item(i).PartNumber, "_")
                    n = n + 1
                Loop Until n = 2
                NeuerName = UebergabeName & "_" & Strings.Mid(oProducts.Item(i).PartNumber, pos + 1)
                If oProducts.Item(i).PartNumber <> "Formteile" And oProducts.Item(i).PartNumber <> "Rohlinge" Then

                    oProducts.Item(i).PartNumber = NeuerName
                    Istrename_Bugfix(oProducts.Item(i), NeuerName)

                    '-------Speichern----------
                    Dim loeschFile As String
                    loeschFile = oProducts.Item(i).ReferenceProduct.Parent.Fullname
                    pos = Strings.InStrRev(oProducts.Item(i).ReferenceProduct.Parent.Fullname, "\")
                    Pfad = Strings.Left(oProducts.Item(i).ReferenceProduct.Parent.Fullname, pos)
                    Catia.DisplayFileAlerts = False
                    Try
                        oProducts.Item(i).ReferenceProduct.Parent.saveas(Pfad & NeuerName)
                    Catch ex As Exception
                    End Try
                    Catia.DisplayFileAlerts = True

                    oProducts.Item(i).ApplyWorkMode(CatWorkModeType.VISUALIZATION_MODE)

                    System.IO.File.Delete(loeschFile)
                End If
            End If
        Next
    End Sub


CODE indem nur das ZSB in den Visualization_Mode geladen wird:

Code:
Sub SUB_SCAN(ByVal oProducts, ByVal UebergabeName, ByVal auftragsnummer)
        Dim oProductsUebergabe As Products
        Dim pos As Integer
        Dim n As Integer
        Dim NeuerName As String
        Dim Pfad As String

        For i = 1 To oProducts.Count
            If oProducts.Item(i).Products.Count > 0 Then

                oProductsUebergabe = oProducts.Item(i).Products
                SUB_SCAN(oProductsUebergabe, UebergabeName, auftragsnummer)

                '------Umbenennen--------
                pos = 0
                n = 0
                Do

                    pos = Strings.InStr(pos + 1, oProducts.Item(i).PartNumber, "_")
                    n = n + 1
                Loop Until n = 2
                NeuerName = UebergabeName & "_" & Strings.Mid(oProducts.Item(i).PartNumber, pos + 1)
                If oProducts.Item(i).PartNumber <> "Formteile" And oProducts.Item(i).PartNumber <> "Rohlinge" Then

                    oProducts.Item(i).PartNumber = NeuerName
                    Istrename_Bugfix(oProducts.Item(i), NeuerName)

                    '-------Speichern----------
                    Dim loeschFile As String
                    loeschFile = oProducts.Item(i).ReferenceProduct.Parent.Fullname
                    pos = Strings.InStrRev(oProducts.Item(i).ReferenceProduct.Parent.Fullname, "\")
                    Pfad = Strings.Left(oProducts.Item(i).ReferenceProduct.Parent.Fullname, pos)
                    Catia.DisplayFileAlerts = False
                    Try
                        oProducts.Item(i).ReferenceProduct.Parent.saveas(Pfad & NeuerName)
                    Catch ex As Exception
                    End Try
                    Catia.DisplayFileAlerts = True
                  
                    If Strings.InStr(oProducts.Item(i).PartNumber, "ZSB") <> 0 Then
                        oProducts.Item(i).ApplyWorkMode(CatWorkModeType.VISUALIZATION_MODE)
                    End If

                    System.IO.File.Delete(loeschFile)
                End If

            Else
                pos = 0
                n = 0
                Do
                    oProducts.item(i).ApplyWorkMode(CatWorkModeType.DEFAULT_MODE)
                    pos = Strings.InStr(pos + 1, oProducts.Item(i).PartNumber, "_")
                    n = n + 1
                Loop Until n = 2
                NeuerName = UebergabeName & "_" & Strings.Mid(oProducts.Item(i).PartNumber, pos + 1)
                If oProducts.Item(i).PartNumber <> "Formteile" And oProducts.Item(i).PartNumber <> "Rohlinge" Then

                    oProducts.Item(i).PartNumber = NeuerName
                    Istrename_Bugfix(oProducts.Item(i), NeuerName)

                    '-------Speichern----------
                    Dim loeschFile As String
                    loeschFile = oProducts.Item(i).ReferenceProduct.Parent.Fullname
                    pos = Strings.InStrRev(oProducts.Item(i).ReferenceProduct.Parent.Fullname, "\")
                    Pfad = Strings.Left(oProducts.Item(i).ReferenceProduct.Parent.Fullname, pos)
                    Catia.DisplayFileAlerts = False
                    Try
                        oProducts.Item(i).ReferenceProduct.Parent.saveas(Pfad & NeuerName)
                    Catch ex As Exception
                    End Try
                    Catia.DisplayFileAlerts = True
                   
                    If Strings.InStr(oProducts.Item(i).PartNumber, "ZSB") <> 0 Then
                        oProducts.Item(i).ApplyWorkMode(CatWorkModeType.VISUALIZATION_MODE)
                    End If

                    System.IO.File.Delete(loeschFile)
                End If
            End If
        Next
    End Sub


[Diese Nachricht wurde von tobiley am 11. Apr. 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: 11. Apr. 2011 22:41    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 tomtom1972 10 Unities + Antwort hilfreich

Servus
Ist das bei allen Parts ein Problem, dass die Verknüpfungen ihre Referenz verlieren? Gemäß dem Bild scheint es ja beim nächsten Part zu funktionieren (oder hat dieses Teile keine Verknüpfung?)
Ich vermute, dass es Probleme mit den Komponenten gibt (zB "Formteile"). Auch bei diesen wechselt du in den Visualization_Mode (ggf noch zu früh). Versuch mal durch eine Schleife die Komponenten beim zurückschalten in den Visualization_Mode zu übergehen.

Gruß
Bernd

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

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

Lusilnie
Mitglied



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

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 12. Apr. 2011 22: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 Nur für tomtom1972 10 Unities + Antwort hilfreich

Hallo tobiley,

wenn ich Dein Problem richtig verstehe, ist die Lösung dafür der "Standard_Mode". Dies ist ein "Visualization_Mode" mit Zugriff auf Parameter. Er lässt sich nur im Script nutzen, interaktiv ist er nicht einstellbar.


mfg,
Lusilnie

------------------
Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!

frei nach größeren Geistern

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

tobiley
Mitglied
Masterstudent


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

Beiträge: 59
Registriert: 15.02.2010

Win XP
CatiaV5 R17, R18, R19
HD2-Lizenz
VB2008

erstellt am: 14. Apr. 2011 12:13    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 tomtom1972 10 Unities + Antwort hilfreich

Hallo,

danke für eure Antworten!

@Lusilnie: In welcher Bibliothek finde ich den Standard_Mode denn in der Eigenschaft "CatWorkModeType" befindet sich dieser bei mir in .NET nicht. Bzw. wie wende ich den Standard_Mode an? Wenn das sonst klappt wäre das natürlich perfekt!


@Bernd: Das Problem tritt bei alle CATParts auf! Bei dem Beispiel habe ich das Programm vorher unterbrochen. Wie genau meinst du das mit dem mitgeben kann mir das gerade irgendwie nciht wirklich vorstellen?

Vielen Dank und Grüße Tobias


Ist der Standard_Mode der Default_Mode?

[Diese Nachricht wurde von tobiley am 14. Apr. 2011 editiert.]

[Diese Nachricht wurde von tobiley am 14. Apr. 2011 editiert.]

[Diese Nachricht wurde von tobiley am 14. Apr. 2011 editiert.]

[Diese Nachricht wurde von tobiley am 14. Apr. 2011 editiert.]

[Diese Nachricht wurde von tobiley am 14. Apr. 2011 editiert.]

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

tobiley
Mitglied
Masterstudent


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

Beiträge: 59
Registriert: 15.02.2010

Win XP
CatiaV5 R17, R18, R19
HD2-Lizenz
VB2008

erstellt am: 14. Apr. 2011 14:35    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 tomtom1972 10 Unities + Antwort hilfreich

Habe das Problem nun erkannt. Kann es nur leider nicht lösen.

Das Problem ist das die Contextual Links nicht automatisch aktualisiert werden bzw. beim umbenennen der Instancenames verloren gehen.

Wenn ich das Baugruppen-Product aktiviere und dann auf das Product des CATParts rechtsklicke und dann auf "Components" und dann auf "Define Contextual Links" gehe können die Contextual Links reparierieten bzw. ausgetauscht werden und es muss nur noch einmal geupdatet werden. Kann man dies irgendwie automatisch dürchführen lassen? Wär doch schon ziemlich nervig, das 1000mal machen zu müssen.

Laut den Beträgen oben sollte dies ja automatisch passieren wenn man den Instancename mittels eines CATScripts ändert, bei mir komischerweise jedoch nicht.

Vielen Dank für eure Hilfe!

mfg Tobias

[Diese Nachricht wurde von tobiley am 14. Apr. 2011 editiert.]

[Diese Nachricht wurde von tobiley am 19. Apr. 2011 editiert.]

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