Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Normenclature ausfüllen

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:  Normenclature ausfüllen (1448 mal gelesen)
khaalankk
Mitglied



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

Beiträge: 11
Registriert: 19.11.2014

erstellt am: 27. Jan. 2015 12:00    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

Servus,

hatte hier vor einiger Zeit ein Makro gefunen und finde den Originalthread nicht mehr...deswegen der neue Thread.

Ich habe folgendes Probblem:
Ein bestimmter Text soll aus dem Partnamen bzw. Instancenamen übernommen, abgeändert und in die Normenclature eingetragen werden.

Beispiel:

Partname ist "123456_AP10_POS_0015_Druckplatte"
in der Normenclature soll nun "Druckplatte_POS_0015" stehen


Folgendes Script habe ich gefunden:

Code:
Language="VBSCRIPT"
' Globale Variable definieren (auch für Subroutinen)
Private Ausgabe
' jetzt gehts weiter

Sub CATMain()
Dim myproduct As Product
Set myproduct = CATIA.ActiveDocument.Product

Box = MsgBox("Nomenklatur wird gleich dem Filename gesetzt", , "Hinweis")

' Die ganze Produktstruktur wird gescannt
ScanProductStructure myproduct

MsgBox "Alle Nomenklaturen wurden geändert"
End Sub

Sub ScanProductStructure(myproduct2 As Product) ' aus myproduct wird myproduct3
Dim currentprod As Product
Dim ii As Integer
On Error Resume Next

'für CATProducts__________________________________________________________________________

'Filename extrahieren und Endung ab . entfernen

Ausgabe = Left(myproduct2.ReferenceProduct.Parent.Name, InStrRev(myproduct2.ReferenceProduct.Parent.Name, ".") - 1)
myproduct2.Nomenclature = ""&Ausgabe&""

' Für CATPart_____________________________________________________________________________

For ii = 1 To myproduct2.Products.Count
Set currentprod = myproduct2.Products.Item(ii)
If currentprod.Products.Count = 0 Then
Err.Clear

'Filename extrahieren und Endung ab . entfernen
'für alle Parts
Ausgabe = Left(currentprod.ReferenceProduct.Parent.Name, InStrRev(currentprod.ReferenceProduct.Parent.Name, ".") - 1)
currentprod.Nomenclature = ""&Ausgabe&""

If Err.Number <> 0 Then
End If

Else
ScanProductStructure currentprod.ReferenceProduct

End If
Next
On Error GoTo 0
End Sub


Ich hab bereits versucht mit

Code:
AString=Right(currentprod.ReferenceProduct.Parent.Name, InStrRev(currentprod.ReferenceProduct.Parent.Name, ".") - 14)
BString=Left(currentprod.ReferenceProduct.Parent.Name, InStrRev(currentprod.ReferenceProduct.Parent.Name, ".") - 15)
Ausgabe = AString&BString

komme aber auf keinen grünen zweig.


Jemand vielleicht ne Idee, wie ich da am besten vorgehe?

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 27. Jan. 2015 19: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 khaalankk 10 Unities + Antwort hilfreich

Anstelle von:
Zitat:

'für CATProducts
'Filename extrahieren und Endung ab . entfernen

Ausgabe = Left(myproduct2.ReferenceProduct.Parent.Name, InStrRev(myproduct2.ReferenceProduct.Parent.Name, ".") - 1)
myproduct2.Nomenclature = ""&Ausgabe&""



setze
Code:

  Dim Ausgabe As String
  Dim strTemp As String
  Dim strSplit ' As String

  'für CATProducts__________________________________________________________________________
  'Filename extrahieren und Endung ab . entfernen
  strTemp = Left(myproduct2.ReferenceProduct.Parent.Name, _
      InStrRev(myproduct2.ReferenceProduct.Parent.Name, ".") - 1)
  strSplit = Split(strTemp, "_")
  Ausgabe = strSplit(4) & "_" & strSplit(3) & "_" & strSplit(2) & "_" & strSplit(1)
  myproduct2.Nomenclature = Ausgabe



Der Code baut darauf auf, dass der Underscore("_") sonst nirgends im Dateinamen verwendet wird.
Welche Teile des strSplit-Arrays Du für die Nomenklatur brauchst, musst Du selbst entscheiden.
Bei den CatParts verfährst Du entsprechend.

Falls das nicht geht, hilft eine Kombination aus 'Instr' und 'Mid' weiter.

Ausserdem:
- Weshalb setzt Du 'Ausgabe' als Globale? Verwendet wird sie nur in 'ScanProductStructure'.
- Was sollte ""&Ausgabe&"" anders sein als Ausgabe?
- Die Variable 'Box' wird nicht definiert.
- Wenn Du den Rückgabewert einer MsgBox nicht weiter verwendest, kannst auch

Code:

  MsgBox "Ausgabetext",vbOkOnly or vbInformation, "Hinweis"


schreiben.

Hope it helps,
Joe


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

khaalankk
Mitglied



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

Beiträge: 11
Registriert: 19.11.2014

erstellt am: 28. Jan. 2015 11:42    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

Danke für die Antwort und die Hilfe

Bin noch ziemlich neu was diese ganze Makrogeschichte angeht. Daher auch die Groben Schnitzer

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

khaalankk
Mitglied



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

Beiträge: 11
Registriert: 19.11.2014

erstellt am: 05. Feb. 2015 09:00    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

,uss nochmal stören: wie müsste es denn aussehen, wenn die Info für die Nomenclature aus dem Part Number übernommen werden soll oder aus de, Instance name?

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 05. Feb. 2015 13: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 khaalankk 10 Unities + Antwort hilfreich

zB so:
Code:

  Dim oAD As Document
  Dim oADP As Product
  Dim oProd As Product
 
  Set oAD = CATIA.ActiveDocument
  Set oADP = oAD.Product
  Set oProd = oADP.Products.Item(1)
 
  Debug.Print oProd.Name
  Debug.Print oProd.PartNumber

Bedingung: Part im Designmode

Tschau,
Joe

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