Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Partname aus Produkt auslesen

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:  Partname aus Produkt auslesen (1679 mal gelesen)
Tiberius
Mitglied
 


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

Beiträge: 414
Registriert: 19.02.2002

erstellt am: 11. Jun. 2008 15:21    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

Hi,

mal angenommen ich hab ein größeres Produkt mit mehreren Unterbaugruppen. Dort wiederum mehrere Parts. Ich habe die Absicht ein kleines Tool zu erstellen welches die Namen der Parts prüft ob diese den allgemeinen Firmeinternen Vorgaben entsprechen.

Das Tool soll aber nicht nur von anfang bis Ende Durchlaufen, sondern in erster Line auch eine Hilfe beim Benennen der Parts sein. Ich hatte mir gedacht, dass ich das (noch falsch benannte) Part mit "Objekt in Bearbeitung" aktiv schalte und dann mein Skript starte das den namen des selektierten Parts übernimmt.

Kann mir einer sagen wie da die Codezeile heißt die den Namen des Aktiven Parts (im Produkt) ausliest?

Danke schonmal für Eure Hilfe.

Grüße

Tiberius

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

apollo11
Mitglied



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

Beiträge: 47
Registriert: 31.03.2007

MacBook Leopard 10.5.6 4GB Ram
VMWARE 3
WinXP Pro SP2
V5R16 SP5

erstellt am: 11. Jun. 2008 17: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 Nur für Tiberius 10 Unities + Antwort hilfreich

Das aktive Part kannst du meines Wissens nicht ermitteln.
Du kannst aber irgendwas von diesem Part selektieren und mit FindObjekt das Root des einzelnen Parts finden.
WICHTIG: Die Selektion muss immer mit CATIA.ActiveDocument.Selection definiert werden!
Andernfalls erhält man Fehler. (also nicht mit PartDocument.Selection arbeiten)
Es gibt ja nur eine Selektion und die ist immer in der obersten Ebene verankert.
Code:

'...
Set sel = CATIA.ActiveDocument.Selection.Item(1).Value

Set Product1 = CATIA.ActiveDocument.Selection.FindObject("CATIAProduct")
If TypeName(Product1.ReferenceProduct.Parent) = "PartDocument" Then
    Set PartDocu = Product1.ReferenceProduct.Parent
    'proceed iPartDoc
    'Dim Prt As Part
    'Set Prt = PartDocu.Part
    ' usw. oder über funktion
    proceedPartFunction PartDocu 'also vom Stamm/Ast in die Frucht *gg*)

Else 'kein PartDocument gefunden -> "ProductDocument";
    'd.h. es war ein Teil eines Products selektiert
    proceedProductFunction Product1.ReferenceProduct.Parent
    'im Baum eine Ebene tiefer (also vom Stamm in den Ast rein)

End If

'...


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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 12. Jun. 2008 08: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 Tiberius 10 Unities + Antwort hilfreich

Hallo,

also das Part hat eine Methode Part.InWorkObject, vielleicht hat das Product oder das Document diese auch?

Nur so ne Idee, weiß nicht ob's sowas gibt.

Ansonsten hat apollo11 recht, immer die oberste Selection nehmen, die vom Document kommt und auch wenn im Makrorecorder mehrere Selections definiert werden, es gibt wirklich nur eine. 

Zum umbenennen kann ich aber schon jetzt vorab sagen, dass es gewisse Schwierigkeiten mit sich bringen könnte, da CATIA sich etwas affig hat, was das automatische umbennen und dann speichern von mehreren Bauteilen angeht.

Noch ne Idee von mir wäre dem part eventuell einen entsprechenden partameter zu geben, dass es umbenannt werden soll und dnan diesen suchst.

MfG Lila

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: 13. Jun. 2008 17:25    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 Tiberius 10 Unities + Antwort hilfreich

eventuell hilfst

Suchen und ersetzen Seite1
Suchen und ersetzen Seite2
Suchen und ersetzen Seite3

Instanzenname (Exemplarnamen) an Partnumber anpassen

Ich glaube du bekommst Problem wenn du die Parts Automatisch Speicherst willst mit den  Zeichnungen die müssten vorher geladen werden bevor du die Parts neu Abspeicherst damit du die Links nicht zerschießt soweit wie ich weiß kannst du aber nicht abfragen ob das Part eine Zeichnung Link hat.
Du kannst nur abfragen ob die Zeichnung einen Link zum Part hat 

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

[Diese Nachricht wurde von K.Siebert am 13. Jun. 2008 editiert.]

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

Tiberius
Mitglied
 


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

Beiträge: 414
Registriert: 19.02.2002

erstellt am: 18. Jun. 2008 11:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Bin ne Zeit nicht dazu gekommen, nur jetzt sitz ich wieder drüber.

Ich hatte die Idee das ganze jetzt etwas anders anzugehen. Und zwar soll das Makro nicht
selbst feststellen welches Objekt in Bearbeitung ist, sondern ich klicke aktiv auf das Part/Produkt.

Code:
Dim EnableSelectionFor(0)
    EnableSelectionFor(0) = "Product"

    Do
   
        MySel.Clear
       
        UserSelection = MySel.SelectElement2(EnableSelectionFor, "umzubenennendes Objekt wählen", True)
       
        If UserSelection <> "Normal" Then
            MsgBox "Fehler bei der Auswahl des Objektes!", vbCritical, "Abbruch"
            Exit Sub
        End If
           
       
        Set MyObject = MySel.Item(1).Value
       
        HasRep = MyObject.HasAMasterShapeRepresentation
           
        If HasRep Then
            Exit Do
        Else
            MyMsg = MsgBox("Keine gueltiges Objekt ausgewaehlt! Bitte erneut auswaehlen", vbOKCancel, "Fehler")
            If MyMsg = vbCancel Then Exit Sub
        End If
       
    Loop

Wie stelle ich nun fest ob es sich um ein Part gehandelt hat oder um ein Produkt?

Meine Absicht ist es nun den ausgelesenen Namen in ein temp File zu sichern und dann per TCL weiterzuverarbeiten. Das Skript und die Oberfläche in TCL sind schon fertig, es muß nur noch das temp File einlesen. Rückwärts gehts genau anders herum.

Im vbs müßte ich dann lediglich das zurückschreiben der neuen Bezeichnung realisieren.

Probleme mit Drawings wird es nicht geben da das Makro nur zur Verfügung stehen soll beim neuen Anlegen einer konstruktion, und da gibts noch keine Drawings.

Vielleicht hat ja noch einer ne Idee wie ich das realisieren könnte.

Grüße

Tiberius

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

BigCheese
Mitglied
Dipl-Ing


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

Beiträge: 130
Registriert: 12.05.2004

CATIA V5R19 SP3

erstellt am: 18. Jun. 2008 15:43    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 Tiberius 10 Unities + Antwort hilfreich

Hallo Tiberius,

wenn Du wissen willst, ob ein Part oder ein Product selektiert wurde, musst Du zunächst auch die Auswahlmöglichkeit auf ein Part erweitern.

Code:
Dim EnableSelectionFor(1)
    EnableSelectionFor(0) = "Product"
    EnableSelectionFor(1) = "Part"


Dann kannst Du mit
Code:
sTypeName = TypeName(MyObject)

den Typ auslesen.

Wenn Du allerdings nur auf die PartNumber bzw. Nomenclature zugreifen möchtest, kannst Du Dir diese Erweiterung sparen, da Du diese ja über die Instanz bekommen und verändern kannst

Code:
sPartNumber = MyObject.PartNumber
sNomenclature = MyObject.Nomenclature

HTHHope this helps (Hoffe, es hilft weiter)

Grüße, Alex

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 19. Jun. 2008 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 Tiberius 10 Unities + Antwort hilfreich

Wenn er nur die Parts haben will, warum dann überhaupt die Products in der Selection lassen?

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

Tiberius
Mitglied
 


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

Beiträge: 414
Registriert: 19.02.2002

erstellt am: 19. Jun. 2008 08: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

Hallo Alex,

danke für die Tipps. Mit sPartNumber = MyObject.PartNumber kann ich zwar jetzt den angewählten Namen auslesen, jedoch sPartNumber = MyObject.PartNumber liefert immer als Ergebnis Product zurück (was jetzt auch nicht tragisch wäre.

Wie schaffe ich es wenn ich den Namen des Parts/Produktes ausgelesen hab (notfalls veränderungen vorgenommen habe) dann wieder zurückzuschreiben???

Grüße

Tiberius

Edit:  hab es selbst gefunden

[Diese Nachricht wurde von Tiberius am 19. Jun. 2008 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: 20. Jun. 2008 00: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 Tiberius 10 Unities + Antwort hilfreich

Hallo Tiberius,

...GONG!...

Es ist ja schön, dass du die Lösung selbst gefunden hast, doch das Ganze hier ist ein Forum, wo auf Fragen Antworten/Lösungen kommen. Mit:

Zitat:
Original erstellt von Tiberius:
...
Edit:  hab es selbst gefunden
...

ist leider niemandem geholfen, der vielleicht das gleiche Problem hat.

Also sei doch so nett und lasse alle an Deiner Erkenntnis teilhaben.


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

Tiberius
Mitglied
 


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

Beiträge: 414
Registriert: 19.02.2002

SWX 2013 SP2 (unter anderen)
Windows 7 Prof. 64 Bit
Intel Xeon E5-2643
NVIDIA Quadro 4000
32 GB Ram

erstellt am: 23. Jun. 2008 08:21    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 einfachfach das ganze rumgedreht und mit My.Object.Partnumber = NeuerName das ganze erledigt.

Nun hab ich aber noch was anderes festgestellt.

Das Tool funktioniert nur solange ich ein Produkt geöffnet habe. Dort kann ich den produktname oder auch die darin verbauten Parts umbenennen.

Gehe ich jetzt aber her und lege ein neues Part an über Datei -> Neu -> Part, dann funktioniert das ganze nicht mehr.

Hier nochmal der Codeschnipsel mit dme ich das Aulesen erledigt habe:

Code:
set MyObject = MySel.Item(1).value
sTypeName = TypeName(MyObject)
sPartNumber = MyObject.PartNumber

Wenn ich mit ner Messagebox beim Part auf den Namen im Baum klicke, wird ein leerer String übergeben.

Ich denke mal dass das MyObject.Partnumber nicht ganz korrekt ist, jedoch hab ich dazu keine Unterlagen um dort für diese Stelle nachzuschlagen.

Mit MyObject.Name kann ich zwar den Namen des Parts abfragen aber irgendwie klappt es anders herum nicht, so daß ich dem Part nen neuen Namen vergeben kann (So wie als wenn ich ein produkt geöffnet habe)

Hat von Euch noch einer ne Idee?

Grüße

Tiberius

[Diese Nachricht wurde von Tiberius am 23. Jun. 2008 editiert.]

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 23. Jun. 2008 12: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 Tiberius 10 Unities + Antwort hilfreich

Hallo Tiberius,

die Partnumber ist nur vorhanden, wenn das Objekt im Dateisystem hinterlegt ist. Dies bedeutet, dass du vorher speichern musst.

MfG Lila

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