Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Name der Instanz ändern

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:  Name der Instanz ändern (9202 mal gelesen)
V5-Guru
Mitglied
CAD-Anwendungsbetreuer

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

Beiträge: 9
Registriert: 15.06.2005

erstellt am: 28. Apr. 2006 12:39    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,

würde gerne über ein Macro von einer Produktstruktur die Partnumber (Abspeichername des einzelnen CATParts) auslesen und der Instanz des CATParts zuweisen. D.h. Instanzenname soll umbenannt werden. Das Macro welches ich geschrieben habe liest mir alle Partnumbers und Namen der Instanzen aus und kann diese auch zuweisen wenn das CATPart diekt unterhalb des Root (Top) CATProduct hängt. Sobald noch ein CATProduct zwischengeschalten ist wird der Instanzenname nicht mit geändert. Mein bisheriger Code ist hier ersichtlich. Vielleicht hat ja jemand eine Idee. Vielen Dank schon mal im Voraus.

---------------------------------------------------------------------
Language="VBSCRIPT"

Sub CATMain()


Set ListeProduct = CATIA.ActiveDocument.Selection

' Suche nach Instanzen vom jeweiligen CATPart im gesamten Dokument
ListeProduct.Clear
ListeProduct.Search "'Assembly Design'.Part;all"

'Ausgabe der Meldung, wieviele Produkte gefunden wurden
Dim BoxProduct
BoxProduct = MsgBox ("Anzahl der Produkte:" & ListeProduct.count & "",64)

Dim A

For A = 1 To ListeProduct.Count Step 1

Dim ProductObject
Set ProductObject = ListeProduct.Item (A).Value
BoxProduct = MsgBox ("Name:" & ProductObject.PartNumber & "",64)
BoxProduct = MsgBox ("Name:" & ProductObject.Name & "",64)

ProductObject.Name = ProductObject.PartNumber

Next

End Sub
---------------------------------------------------------------------

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

mathias.bergundthal
Mitglied
informatiker


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

Beiträge: 153
Registriert: 03.08.2005

HP xw6000 - WXP Pro SP2 - CATIA V5 R16 SP9 - Visual Studio 2005

erstellt am: 28. Apr. 2006 14:18    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 V5-Guru 10 Unities + Antwort hilfreich

Hallo Guru

ich habe leider genau das selbe phenomen und immer noch keine lösung dafür gefunden.

ich arbeite in VB und habe alles schön mit Analysis angeschaut und ich habe keinen unterschied zwischen den verschiedenen ebenen gefunden. mein objekt hat immer die selbe struktur, nur eben mit dem phenomen das die erste ebene geht und die weiteren nicht.

ich habe mal gehört das es einen zusammenhang mit der aktivierung der parts probleme gibt, also das sie eben nicht richtig aktiviert werden wenn man in die untern strukturebenen geht. hatte leider noch keine möglichkeit das probelm weiter zu verfolgen.

hoffe es hilft dir weiter, bessonders der letzte part 

schöne

[Diese Nachricht wurde von mathias.bergundthal am 28. Apr. 2006 editiert.]

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: 01. Mai. 2006 19: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 Nur für V5-Guru 10 Unities + Antwort hilfreich

Hallo Leute,

das Problem liegt daran, daß man nur im "aktivierten" übergeordneten Product die Instanznamen von darunterliegenden Parts und Products ändern kann. Also müßt ihr noch zusätzlich das übergeordnete Product-Document quasi "in Bearbeitung" setzen.
Der CODE würde dann um ein paar Zeilen erweitert werden müssen:

Code:
Sub CATMain()
   
    Set ListeProduct = CATIA.ActiveDocument.selection
   
    ' Suche nach Instanzen vom jeweiligen CATPart im gesamten Dokument
    ListeProduct.Clear
    ListeProduct.Search "'Assembly Design'.Part;all"
   
    'Ausgabe der Meldung, wieviele Produkte gefunden wurden
    Dim BoxProduct
    BoxProduct = MsgBox("Anzahl der Produkte:" & ListeProduct.Count & "", 64)
   
    Dim A
   
    For A = 1 To ListeProduct.Count
       
        Dim ProductDoc As productDocument
        Set ProductDoc = ListeProduct.Item(A).Value.Parent.Parent.ReferenceProduct.Parent
        Dim ProductParent As Product
        Set ProductParent = ProductDoc.Product
        Dim ProductParentProds As products
        Set ProductParentProds = ProductParent.products
       
Dim ProductObject As Product
        Set ProductObject = ProductParentProds.Item(ListeProduct.Item(A).Value.name)
        BoxProduct = MsgBox("Name:" & ProductObject.PartNumber & "", 64)
        BoxProduct = MsgBox("Name:" & ProductObject.name & "", 64)
       
        ProductObject.name = ProductObject.PartNumber
       
    Next
   
End Sub


Anmerkung: Meines Erachtens sollten die "DIMs" aus der Schleife raus und vor dieselbe angeordntet werden!


mfg,
Lusilnie

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. Mai. 2006 08:18    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 V5-Guru 10 Unities + Antwort hilfreich

Hallo zusammen,

das geht einfacher.
Das Part, dessen Instance umbenannt werden soll, muss nur über sein Parent (CATProduct) aufgerufen werden. Selectionen sind keine notwendig.

Set oInstNameChangeProd = Catia.Documents.Item(oPartToRenameTheInstance.Parent.Parent.ReferenceProduct.Parent.Name)
Set oInstNameChangeItem = oInstNameChangeProd.Product.Products.Item(oPartToRenameTheInstance.Name)
oInstNameChangeItem.Name = sNewInstanceName

Gruss

TomTom

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

[Diese Nachricht wurde von tomtom1972 am 02. Mai. 2006 editiert.]

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

V5-Guru
Mitglied
CAD-Anwendungsbetreuer

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

Beiträge: 9
Registriert: 15.06.2005

erstellt am: 02. Mai. 2006 18:09    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 Lusilinie und tomtom,

vielen Dank für euere Beiträge. Habe jetzt die längere Version von Luslinie eingebaut und es klappt ganz gut. Das übergeordnete Product brauche ich aber nicht vorher selektieren. Es geht auch so.

Hallo mathias.bergundthal hier meine entgültige Version falls du Sie noch benötigst.

---------------------------------------------------------------------
Language="VBSCRIPT"

Sub CATMain()
   
    Set ListeProduct = CATIA.ActiveDocument.selection
   
    ' Suche nach Instanzen vom jeweiligen CATPart im gesamten Dokument
    ListeProduct.Clear
    ListeProduct.Search "'Assembly Design'.Part;all"
   
    'Ausgabe der Meldung, wieviele Produkte gefunden wurden
    Dim BoxProduct
    BoxProduct = MsgBox("Anzahl der gefundenen Instanzen:" & ListeProduct.Count & "", 64)
   
    Dim ProductDoc
    Dim ProductParent
    Dim ProductParentProds
    Dim ProductObject
    Dim A
   
    For A = 1 To ListeProduct.Count
         
        Set ProductDoc = ListeProduct.Item(A).Value.Parent.Parent.ReferenceProduct.Parent
        Set ProductParent = ProductDoc.Product       
        Set ProductParentProds = ProductParent.products       
        Set ProductObject = ProductParentProds.Item(ListeProduct.Item(A).Value.name)
        ProductObject.name = ProductObject.PartNumber
       
    Next
   
BoxProduct = MsgBox("Instanzen der CATParts wurden umbenannt", 64)

End Sub 
---------------------------------------------------------------------

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

mathias.bergundthal
Mitglied
informatiker


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

Beiträge: 153
Registriert: 03.08.2005

HP xw6000 - WXP Pro SP2 - CATIA V5 R16 SP9 - Visual Studio 2005

erstellt am: 05. Mai. 2006 10: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 V5-Guru 10 Unities + Antwort hilfreich

Dank dir vielmals für die Lösung


bis zum nächsten mal  %20

schöner tag

gruss, mathias

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

masterwinni
Mitglied
Admin


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

Beiträge: 37
Registriert: 16.02.2006

erstellt am: 18. Aug. 2006 12: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 Nur für V5-Guru 10 Unities + Antwort hilfreich

Hi,

ich habe mal versucht das Script bei uns zu verwenden.
Leider läuft es immer wieder auf einen Fehler hinaus, wenn der Instanzname das zwiete Mal vergeben werden soll. (Schraube xy wurde 38 Mal verwendet...)
Wie kann man das Makro erweitern, sodass bei doppelten Instanznamen eine automatische inkrementierung hinzugefügt wird?
Beispiel:
Instanz.01
Instanz.02

Über eine helfende Antwort währe ich sehr glücklich.
bis dahin.
Marco

------------------
alles wird guuuut....

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

okl
Mitglied
Wirtsch-Ing (Maschbau)


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

Beiträge: 157
Registriert: 21.04.2006

2x3,6 GHz, 2 GB RAM, NVIDIA Quadro FX 1800, Delmia V5R16 SP1, Win XP Prof SP2, Office, VS 2005, VB 6, Inventor (Test), VBExpress .NET 2005
Adminrechte

erstellt am: 18. Aug. 2006 13: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 Nur für V5-Guru 10 Unities + Antwort hilfreich

Hallo!

ProductObject.name = ProductObject.PartNumber & A.

schüs

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

masterwinni
Mitglied
Admin


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

Beiträge: 37
Registriert: 16.02.2006

erstellt am: 18. Aug. 2006 14: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 V5-Guru 10 Unities + Antwort hilfreich

hmmm...
das ist nicht ganz das, was gesucht wird.
Dann wird ja jede Instanz mit 1...n erweitert.
Ich suche aber eine Art, wo nur die Instanzen, die doppelt sind, mit 1...n erweitert werden.

Ist das auch machbar?

trotzdem danke.

------------------
alles wird guuuut....

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

okl
Mitglied
Wirtsch-Ing (Maschbau)


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

Beiträge: 157
Registriert: 21.04.2006

2x3,6 GHz, 2 GB RAM, NVIDIA Quadro FX 1800, Delmia V5R16 SP1, Win XP Prof SP2, Office, VS 2005, VB 6, Inventor (Test), VBExpress .NET 2005
Adminrechte

erstellt am: 18. Aug. 2006 14:39    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 V5-Guru 10 Unities + Antwort hilfreich

Geht schon, ist aber aufwendig in der Speichernutzung, da Du entweder wieder durch die vorherigen, bereits durchsuchten Instanzen gehen musst oder Du eine Liste deklarierst, in der Du die Namen der bereits durchsuchten Elemente auflistest und die durchgehst. Kommt auf's selbe raus.

Sub CATMain()
   
    Set ListeProduct = CATIA.ActiveDocument.Selection
   
    ' Suche nach Instanzen vom jeweiligen CATPart im gesamten Dokument
    ListeProduct.Clear
    ListeProduct.Search "'Assembly Design'.Part;all"
   
    'Ausgabe der Meldung, wieviele Produkte gefunden wurden
    Dim BoxProduct
    BoxProduct = MsgBox("Anzahl der gefundenen Instanzen:" & ListeProduct.count & "", 64)
   
    Dim ProductDoc
    Dim ProductParent
    Dim ProductParentProds
    Dim ProductObject
    Dim A
    Dim i As Integer
    For A = 1 To ListeProduct.count
         
        Set ProductDoc = ListeProduct.Item(A).Value.Parent.Parent.ReferenceProduct.Parent
        Set ProductParent = ProductDoc.Product
        Set ProductParentProds = ProductParent.Products
        Set ProductObject = ProductParentProds.Item(ListeProduct.Item(A).Value.Name)
        For i = 0 To A
            If ListeProduct.Item(i).Value.Name = ProductObject.PartNumber Then
                ProductObject.Name = ProductObject.PartNumber & A
                GoTo Weiter
            End If
               
        Next
        ProductObject.Name = ProductObject.PartNumber
Weiter:
    Next
    BoxProduct = MsgBox("Instanzen der CATParts wurden umbenannt", 64)
End Sub

Müsste so aus der Kalten geschrieben schon eine ganz gute erste Näherung sein (hab im Moment kein Catia, wo ich' testen könnte) Viel Spaß
okl

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

masterwinni
Mitglied
Admin


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

Beiträge: 37
Registriert: 16.02.2006

erstellt am: 18. Aug. 2006 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 V5-Guru 10 Unities + Antwort hilfreich

Hey Super!!!
Ich werde das sofort prüfen und ausgiebig testen.

Ich melde mich bei Erfolg / Misserfolg.

Marco

------------------
alles wird guuuut....

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

masterwinni
Mitglied
Admin


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

Beiträge: 37
Registriert: 16.02.2006

CATIA V5 R24
SmarTeam R24
Visual Studio 2015 Community

erstellt am: 22. Aug. 2006 08:09    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 V5-Guru 10 Unities + Antwort hilfreich

hi noch mals.
hat leider nicht geklappt. ich werde damit wohl einen Programmierer aufsuchen müssen, der mir den Code dementsprechend optimiert. Ich bin leider nicht so gut in der Materie..
dennoch vielen Dank für die Hilfe.

------------------
alles wird guuuut....

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

serrano
Mitglied
Student


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

Beiträge: 27
Registriert: 06.12.2005

erstellt am: 31. Aug. 2006 15: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 V5-Guru 10 Unities + Antwort hilfreich

Hallo,

Das Problem habe ich schon mal gehabt.
Eine mögliche lösung wäre:

----------------------------------------------
'CATScript

Sub CATMain()

Set oMainProduct = CATIA.ActiveDocument.product

Dim oMainProducts As Products
Set oMainproducts = oMainProduct.Products

Umbenennen oMainProducts

End Sub

Sub Umbenennen(oProducts As Products)

Dim oPartName As String
Dim oName As String
Dim i As Long

For x = 1 to oProducts.Count

Set oInstance = oProducts.Item(x)
oNumber = oInstance.PartNumber
oName = oInstance.Name

i=0
Do

On Error Resume Next

i = i+1

If i>5000 Then  ' Zahl soll angepasst werden
Exit Do
End If

oInstance.Name = oNumber & "." & i

If Err.Number = 0 Then

Umbenennen oProducts.Item(x).ReferenceProduct.Products
Exit Do
ElseIf Err.Number = -2147467259 Then
Err.Clear
Err.Number = 0
Else
Exit Do
End If
Loop
If oInstance.Products.Count > 0 Then
Umbenennen oInstance.Products
End If
Next
End Sub

------------------------------------------------------------

Zu beachten ist hier, dass der Instancename ein mehrfach benutztes Product entsprechend mit einem Zähler ".Zähler" umbenannt wird. Besitzt der Product mehrere Products oder Parts, werden diese Lokal mit einem "Zähler" Umbennant. Bsp:

X-WING(X-WING.1)
  Body(Body.1)
  Gehäuse(Gehäuse.1)
  Body(Body.2)

X-WING(X-WING.2)
  Body(Body.1)
  Gehäuse(Gehäuse.1)
  Body(Body.2)

Ich hoffe ihr habt verstanden was ich meine.

Viel Spass!!

------------------
mfg,

serrano

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

serrano
Mitglied
Student


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

Beiträge: 27
Registriert: 06.12.2005

erstellt am: 31. Aug. 2006 16: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 V5-Guru 10 Unities + Antwort hilfreich

Hallo,
bei dem Code den ich oben gescrhieben habe habe ich ein fehler gemacht. Beim

                          Dim oPartName As String

soll

                          Dim oNumber As String

stehen

------------------
mfg,

serrano

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

masterwinni
Mitglied
Admin


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

Beiträge: 37
Registriert: 16.02.2006

CATIA V5 R24
SmarTeam R24
Visual Studio 2015 Community

erstellt am: 01. Sep. 2006 10: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 Nur für V5-Guru 10 Unities + Antwort hilfreich

Hallo,
SUPER!!!!!!!!!

Es funzt...
Werde ich direkt ausgiebig testen.
10Us4U!!!

------------------
alles wird guuuut....

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

KaiWa
Mitglied
Techniker Maschinenbau


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

Beiträge: 201
Registriert: 27.05.2004

erstellt am: 08. Feb. 2008 16:19    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 V5-Guru 10 Unities + Antwort hilfreich

wie müsste dann das Macro aussehen wenn ich dem Part oder Produkt das ich einfüge einen Parameter Zuweise wie es im Produkt instanzennamen heissen soll?
der Parameter hat den namen: Instanzennamen und ist vom Typ: "String"
würd emich freuen wenn mir da jmd helfen kann

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: 10. Feb. 2008 01: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 Nur für V5-Guru 10 Unities + Antwort hilfreich

Hallo KaiWa,

Du änderst einfach die Zeile:

Code:
oInstance.Name = oNumber & "." & i
in:
Code:
oInstance.Name = Instanzennamen & "." & i
bzw., wenn Dein String eineindeutig ist, in:
Code:
oInstance.Name = Instanzennamen
Dann solltest Du das gewünschte Ergebnis bekommen. (Allerdings könnte die Fehlerquote je nach Komplexität noch sehr hoch sein!)


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

sschroeter
Mitglied



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

Beiträge: 86
Registriert: 16.05.2006

XEON 2.80 GHZ 6,00GB RAM
WINDOWS 7 PROF 64 bit SP1
CATIA V5 R19 SP9 HF 19 VW
CATIA V5 R19 SP9 HF 24 DAI
CATIA V5 R19 SP3 HF 34 BMW
CATIA V5 R19 SP3 HF 39 PORSCHE

erstellt am: 11. Feb. 2008 10:52    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 V5-Guru 10 Unities + Antwort hilfreich

Hallo,

wenn ich vorher noch prüfen will, ob PartNumber mit PartName übereinstimmt bzw. definitiv PartNumber mit PartName überschreiben will (bei allen Parts und Products) muss ich doch eigentlich nur oPartNumber = oPartName einfügen - ist aber nicht so  ...
(Sorry, wollte meine kaum vorhandenen Programmierkenntnisse eigentlich nicht ausweiten - aber diese Anwendung wäre echt nützlich).

Gruß Sven

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: 11. Feb. 2008 23:20    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 V5-Guru 10 Unities + Antwort hilfreich

Hallo sschroeter,

was ist nach Deiner Beschreibung denn der "PartName"?
PartNumber ist klar, doch was ist "PartName" - der "Dateiname" oder der "Instanzen-Name"?

Ich konnte den "Ausdruck" im letzen Code leider nicht finden, also poste doch mal den Code und Deine Änderungsversuche!


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

sschroeter
Mitglied



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

Beiträge: 86
Registriert: 16.05.2006

XEON 2.80 GHZ 6,00GB RAM
WINDOWS 7 PROF 64 bit SP1
CATIA V5 R19 SP9 HF 19 VW
CATIA V5 R19 SP9 HF 24 DAI
CATIA V5 R19 SP3 HF 34 BMW
CATIA V5 R19 SP3 HF 39 PORSCHE

erstellt am: 12. Feb. 2008 05:55    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 V5-Guru 10 Unities + Antwort hilfreich

Hallo Lusilnie,

ja ich meine den Dateinamen. PartNumber soll also vorher mit dem Dateinamen gleichgesetzt werden. Ich habe daher folgendes versucht:

.
.
.
For x = 1 to oProducts.Count

Set oInstance = oProducts.Item(x)
oInstance.PartNumber = oInstance.document.FullName  'PartNumber soll den Dateinamen erhalten
oNumber = oInstance.PartNumber
oName = oInstance.Name
.
.
.

Ich hoffe es sieht nicht zu unbeholfen aus, ich dachte bis vor kurzem, dass wir bei uns keinen Bedarf für Programmierung haben...

Grus Sven

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. Feb. 2008 20: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 Nur für V5-Guru 10 Unities + Antwort hilfreich

Hallo sschroeter,

ich versuch mal so aus dem Stehgreif, den Fehler einzuschränken:

".FullName" ist der Dateiname samt vollständigen Pfad. So kann die PartNumber wahrscheinlich nicht benannt werden. Du müsstest hier den Namen des Dokumentes nehmen und die Dateiendung vorher abschneiden, also in etwa so:

Code:
oInstance.PartNumber = Left(oInstance.document.Name, InStrRev(oInstance.document.Name, ".") - 1)
Allerdings bin ich mir nicht ganz sicher, ob Dein "Construct" nicht falsch ist, ich denke es sollte doch besser so lauten:
Code:
oInstance.PartNumber = Left(oInstance.ReferenceProduct.Parent.Name, InStrRev(oInstance.ReferenceProduct.Parent.Name, ".") - 1)


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

sschroeter
Mitglied



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

Beiträge: 86
Registriert: 16.05.2006

XEON 2.80 GHZ 6,00GB RAM
WINDOWS 7 PROF 64 bit SP1
CATIA V5 R19 SP9 HF 19 VW
CATIA V5 R19 SP9 HF 24 DAI
CATIA V5 R19 SP3 HF 34 BMW
CATIA V5 R19 SP3 HF 39 PORSCHE

erstellt am: 13. Feb. 2008 06: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 Nur für V5-Guru 10 Unities + Antwort hilfreich

Hallo Lusilnie,

das funktioniert super - danke. Macht auf jeden Fall schon mal ganz viele u's!
Man muss jetzt nur beachten, dass untergeordnete COMPONENTS auch den Dateinamen bekommen falls er im MainProduct noch nicht mit PartNumber übereinstimmt. Das verhindert aber schließlich, das man dem MainProduct hinterher den Dateinamen manuell als PartNumber geben kann. Also erst MainProduct kontrollieren und dann das Makro ausführen, oder gibt es eine Möglichkeit, COMPONENTS nur vom Umbenennen der PartNumber nicht aber von der Numerierung der Instanzen auszuschließen (IF oInstance <> COMPONENTE THEN oInstance.PartNumber = Left(oInstance.ReferenceProduct.Parent.Name, InStrRev(oInstance.ReferenceProduct.Parent.Name, ".") - 1) END IF o.s.ä.)?

Gruß Sven

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: 14. Feb. 2008 00: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 Nur für V5-Guru 10 Unities + Antwort hilfreich

Hallo sschroeter,

natürlich gibt es auch eine Möglichkeit, "Components" von "Products" zu unterscheiden. Da man normalerweise kein Product in sich selbst einfügen kann, muss man nur das Dokument der aktuellen Instance mit dem des übergeordneten Products bzw. der übergeordneten Instance vergleichen.

Code:
If oInstance.ReferenceProduct.Parent.Name = oInstance.Parent.[Parent.]ReferenceProduct.Parent.Name Then ...
(Das [Parent.] bedeutet hier, dass ich aus dem Stehgreif nicht genau weiß, ob ich das "2." noch brauche oder nicht. >> Einfach mal testen!!!)

Sind die Ausdrücke gleich, dann habe ich eine "Component"; sind sie unterschiedlich, habe ich ein "Product".


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

sschroeter
Mitglied



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

Beiträge: 86
Registriert: 16.05.2006

XEON 2.80 GHZ 6,00GB RAM
WINDOWS 7 PROF 64 bit SP1
CATIA V5 R19 SP9 HF 19 VW
CATIA V5 R19 SP9 HF 24 DAI
CATIA V5 R19 SP3 HF 34 BMW
CATIA V5 R19 SP3 HF 39 PORSCHE

erstellt am: 15. Feb. 2008 14: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 V5-Guru 10 Unities + Antwort hilfreich

Danke Lusilnie,

es klappt so:

If oInstance.ReferenceProduct.Parent.Name <>oInstance.Parent.Parent.ReferenceProduct.Parent.Name Then
      oInstance.PartNumber = Left(oInstance.ReferenceProduct.Parent.Name, InStrRev(oInstance.ReferenceProduct.Parent.Name, ".") - 1)
End If

Gruß Sven

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