Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Part Eigenschaften bearbeiten

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:  Part Eigenschaften bearbeiten (1602 mal gelesen)
Rudi38
Mitglied
Konstrukteur

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

Beiträge: 8
Registriert: 21.09.2016

Workstation
Intel(R)Core(TM) i7-3930K
16G Ram
Quaddro 4000<P>Win7 64bit<P>Catia V5R24

erstellt am: 21. Sep. 2016 08:22    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


Start-Part1.zip

 
Hallo Zusammen,

ich bin neu hier im Forum, aber lese eigentlich schon immer wiedermal hier im Forum wenn ich hilfe brauche.
Für das Problem was ich nun habe konnte ich leider noch keine passende Antwort finden.
Ich möchte mit dem makro die Eigenschaften unserer Normteile anpassen. Dazu werden neue Eigenschaften erstellt und sollen mit den vorhanden Informationen, wie Teilenummer, Definition u.s.w. gefüllt werden was auch soweit alles funktioniert bis auf die Tatsache das ich die Nomenklatur nicht hinbekomme. Zum schluß soll es unserem Startmodell information ähnlich sein.(hänge mal ein Part dran)
Vielleicht kann mir jemand einen Tipp geben. Danke schonmal vorab für eure Hilfe.

MfG
Hendrik

hier meine gebastelter Code (catscript)

Sub CATMain()

Dim Produkt As Product
Dim partDocument1 As PartDocument
Dim AppShell As Object
Dim BrowseDir As Variant
Dim Folder As Folder
Dim part1 As Part
Dim File As File

Set documents1 = CATIA.Documents

Set AppShell = CreateObject("Shell.Application")
Set BrowseDir = AppShell.BrowseForFolder(0, "Ordner auswählen", &H1, 17)
If BrowseDir Is Nothing Then
    Exit Sub
End If

Set Folder = CATIA.FileSystem.GetFolder(BrowseDir.self.Path)

For Each File In Folder.Files
    If InStr(File.Name, ".CATPart") <> 0 Then
        Set partDocument1 = documents1.Open(File.Path)

Set partDocument1 = CATIA.ActiveDocument
Set PartParameter = CATIA.ActiveDocument.Product.UserRefProperties
Set part1 = partDocument1.Part

set PropertiesParameter = PartParameter.CreateBoolean("Normteil", true)
set PropertiesParameter = PartParameter.CreateString("Einheit", "")
set PropertiesParameter = PartParameter.CreateString("Benennung", "")
set PropertiesParameter = PartParameter.CreateString("Sachnummer/Norm-Kurzbezeichnung", "")
set PropertiesParameter = PartParameter.CreateString("PPS-Nummer", "")
set PropertiesParameter = PartParameter.CreateString("Material", "")

Set parameters1 = part1.Parameters
Set parameters2 = part1.Parameters
Set parameters3 = part1.Parameters
Set parameters4 = part1.Parameters
Set parameters5 = part1.Parameters
Set parameters6 = part1.Parameters
Set parameters7 = part1.Parameters
Set parameters8 = part1.Parameters

Set relations1 = part1.Relations

Set strParam1 = parameters1.Item("Eigenschaften\Einheit")
Set strParam2 = parameters2.Item("Eigenschaften\Material")
Set strParam3 = parameters3.Item("Eigenschaften\Benennung")
Set strParam4 = parameters4.Item("Eigenschaften\Sachnummer/Norm-Kurzbezeichnung")
Set strParam5 = parameters5.Item("Eigenschaften\PPS-Nummer")
Set strParam6 = parameters6.Item("Teilenummer")
Set strParam7 = parameters7.Item("Definition")
Set strParam8 = parameters8.Item("Nomenklature")  hier meckert Catia


Dim arrayOfVariantOfBSTR1(8)
arrayOfVariantOfBSTR1(0) = "Stk."
arrayOfVariantOfBSTR1(1) = "cm"
arrayOfVariantOfBSTR1(2) = "m"
arrayOfVariantOfBSTR1(3) = "cm²"
arrayOfVariantOfBSTR1(4) = "m²"
arrayOfVariantOfBSTR1(5) = "cm³"
arrayOfVariantOfBSTR1(6) = "m³"
arrayOfVariantOfBSTR1(7) = "g"
arrayOfVariantOfBSTR1(8) = "Kg"
strParam1.SetEnumerateValues arrayOfVariantOfBSTR1

Set formula1 = relations1.CreateFormula("Übertrag-Material", "", strParam2, "`Hauptkörper\Material` ")

strParam3.Value = strParam8.Value
strParam4.Value = strParam6.Value
strParam5.Value = strParam7.Value

'partDocument1.Save
        'partDocument1.Close

End If
Next

End Sub

------------------
Catia V5R24

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

moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 21. Sep. 2016 09: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 Rudi38 10 Unities + Antwort hilfreich

Hallo Hendrik,

hat sich da ein Schreibfehler eingeschlichen?

Zitat:
Set strParam8 = parameters8.Item("Nomenklature")  hier meckert Catia

Müsste es nicht "Nomenklatur" (deutsche Umgebung) und "Nomenclature"(englische Umgebung) heisen?

------------------
Gruß Uwe

Auch Catia ist nur ein Mensch!    

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

Rudi38
Mitglied
Konstrukteur

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

Beiträge: 8
Registriert: 21.09.2016

Workstation
Intel(R)Core(TM) i7-3930K
16G Ram
Quaddro 4000<P>Win7 64bit<P>Catia V5R24

erstellt am: 21. Sep. 2016 09:23    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 Uwe,

ja Schreibfehler sorry den hab ich vergessen durch das ganze hin und her probieren.
Ist aber leider nicht die Lösung, der Fehler besteht weiterhin.

MfG
Hendrik

------------------
Catia V5R24

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: 21. Sep. 2016 09: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 Rudi38 10 Unities + Antwort hilfreich

Servus
Willkommen im Forum.
An die Teilenummer, Nomenklatur usw. kommst du über:
Code:
partDocument1.Product.PartNumber
partDocument1.Product.Nomenclature
partDocument1.Product.Definition
Siehe dazu auch in der Doku beim PartDocument -> Product
Warum erstellst du erst die Parameter und greifst danach umständlich neu darauf zu?
Sprechende Variablennamen machen deine Code besser lesbar. zB
Code:
set MyPropertyBenennung = PartParameter.CreateString("Benennung", "")
MyPropertyBenennung.Value = partDocument1.Product.Definition
Gruß
Bernd

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

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

Rudi38
Mitglied
Konstrukteur

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

Beiträge: 8
Registriert: 21.09.2016

Workstation
Intel(R)Core(TM) i7-3930K
16G Ram
Quaddro 4000<P>Win7 64bit<P>Catia V5R24

erstellt am: 21. Sep. 2016 10: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

Hallo Bernd,

Super schau da es geht!! 

Danke erstmal ich habe alles geändert nach deinem Vorschlag. Warum ich alles so umständlich mache, ich habe nicht soviel Anhnung vom scripten. Ich mach viel mit dem Recorder und mit Codes die ich hier im Forum oder in der Hilfe finde und Bastel mir etwas daraus, meistens funktioniert das auch.

------------------
MfG
Hendrik

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

Rudi38
Mitglied
Konstrukteur

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

Beiträge: 8
Registriert: 21.09.2016

Workstation
Intel(R)Core(TM) i7-3930K
16G Ram
Quaddro 4000<P>Win7 64bit<P>Catia V5R24

erstellt am: 21. Sep. 2016 11: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 nochmal,

bei einem part im Ordner funktioniert es, sobald aber das erste part gespeichert ist und das nächste geöffnet wird steigt das makro beim erzeugen der Variantenliste aus.

Code:

Sub CATMain()

Dim partDocument As PartDocument
Dim AppShell As Object
Dim BrowseDir As Variant
Dim Folder As Folder
Dim part1 As Part
Dim File As File

Set documents = CATIA.Documents

Set AppShell = CreateObject("Shell.Application")
Set BrowseDir = AppShell.BrowseForFolder(0, "Ordner auswählen", &H1, 17)
If BrowseDir Is Nothing Then
    Exit Sub
End If

Set Folder = CATIA.FileSystem.GetFolder(BrowseDir.self.Path)

For Each File In Folder.Files
    If InStr(File.Name, ".CATPart") <> 0 Then
        Set partDocument1 = documents1.Open(File.Path)

Set partDocument = CATIA.ActiveDocument
Set PartParameter = CATIA.ActiveDocument.Product.UserRefProperties
Set part1 = partDocument.Part

set PropertiesParameter = PartParameter.CreateBoolean("Normteil", true)

set MyPropertyBenennung = PartParameter.CreateString("Benennung", "")
MyPropertyBenennung.Value = PartDocument.Product.Nomenclature

set MyPropertySachnummer = PartParameter.CreateString("Sachnummer/Norm-Kurzbezeichnung", "")
MyPropertySachnummer.Value = PartDocument.Product.PartNumber

set MyPropertyPPS = PartParameter.CreateString("PPS-Nummer", "")
MyPropertyPPS.Value = PartDocument.Product.Definition

set MyPropertyEinheit = PartParameter.CreateString("Einheit", "")

set MyPropertyMaterial = PartParameter.CreateString("Material", "")

Set parameters1 = part1.Parameters

Set strParam1 = parameters1.Item("Eigenschaften\Einheit")

Dim arrayOfVariantOfBSTR1(8)
arrayOfVariantOfBSTR1(0) = "Stk."
arrayOfVariantOfBSTR1(1) = "cm"
arrayOfVariantOfBSTR1(2) = "m"
arrayOfVariantOfBSTR1(3) = "cm²"
arrayOfVariantOfBSTR1(4) = "m²"
arrayOfVariantOfBSTR1(5) = "cm³"
arrayOfVariantOfBSTR1(6) = "m³"
arrayOfVariantOfBSTR1(7) = "g"
arrayOfVariantOfBSTR1(8) = "Kg"
strParam1.SetEnumerateValues arrayOfVariantOfBSTR1

'partDocument1.Save
        'partDocument1.Close

End If
Next

End Sub

------------------
MfG
Hendrik

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: 21. Sep. 2016 11: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 Rudi38 10 Unities + Antwort hilfreich

Hi Hendrik,

Dim-Anweisungen haben in einer Schleife nix verloren.

setze den Block

Code:
Dim arrayOfVariantOfBSTR1(8)
arrayOfVariantOfBSTR1(0) = "Stk."
arrayOfVariantOfBSTR1(1) = "cm"
arrayOfVariantOfBSTR1(2) = "m"
arrayOfVariantOfBSTR1(3) = "cm²"
arrayOfVariantOfBSTR1(4) = "m²"
arrayOfVariantOfBSTR1(5) = "cm³"
arrayOfVariantOfBSTR1(6) = "m³"
arrayOfVariantOfBSTR1(7) = "g"
arrayOfVariantOfBSTR1(8) = "Kg"


vor die Schleife, am Besten direkt nach den anderen Dims.

Tschau,
Joe

------------------
Inoffizielle Catia Hilfeseite

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

Rudi38
Mitglied
Konstrukteur

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

Beiträge: 8
Registriert: 21.09.2016

Workstation
Intel(R)Core(TM) i7-3930K
16G Ram
Quaddro 4000<P>Win7 64bit<P>Catia V5R24

erstellt am: 21. Sep. 2016 13:27    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 Zusammen,

Danke an alle jetzt läuft es. SUPER   

------------------
MfG
Hendrik

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