Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Ändern makro für CATProduct

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:  Ändern makro für CATProduct (1702 mal gelesen)
xyon126
Mitglied
Ingenieur


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

Beiträge: 74
Registriert: 07.11.2011

erstellt am: 19. Sep. 2012 13:03    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 versucht, mehrere Möglichkeiten, aber ich kann das nicht rekursive Makro, mir von einem CATPart CATProduct statt, können Sie helfen?

Code:
Sub CATMain()

Dim PartNa as string
PartNa = "XXXXX"

Dim ID As Integer
ID = 0
Dim partDocument1 As PartDocument
Set partDocument1 = CATIA.ActiveDocument

Dim product1 As Product
Set product1 = partDocument1.GetItem("part_number")


Dim part1 As Part
Set part1 = partDocument1.Part

Dim IDName As String

    Set partDocument1 = CATIA.ActiveDocument
 
    Set product1 = partDocument1.GetItem(IDName)
 
    Dim parameters1 As Parameters
    Set parameters1 = product1.UserRefProperties
 
    Dim parameterName As String
    Dim counter As Integer
    Dim counter_1 As Integer

 
    counter = 1
    counter_1 = 0
    While counter <= parameters1.Count
        parameterName = parameters1.Item(counter).Name
        If Right(parameterName, Len("Name") + 1) = "\" & "Name" Then
            counter_1 = 1
         
        End If
        counter = counter + 1
    Wend
If counter_1 = 0 Then

ID = 1
Dim parameters21 As Parameters
Set parameters21 = product1.UserRefProperties

Dim strParam21 As StrParam
Set strParam21 = parameters21.CreateString("Name",PartNa)

strParam21.Value = PartNa


Set product1 = product1.ReferenceProduct

End If
 
counter = 1
    counter_1 = 0
    While counter <= parameters1.Count
        parameterName = parameters1.Item(counter).Name
        If Right(parameterName, Len("名称") + 1) = "\" & "名称" Then
            counter_1 = 1
         
        End If
        counter = counter + 1
    Wend
If counter_1 = 0 Then

ID = 1

Dim parameters22 As Parameters
Set parameters22 = product1.UserRefProperties


Set strParam22 = parameters22.CreateString("名称", PartNa)
strParam22.Value = PartNa


Set product1 = product1.ReferenceProduct


End If 

    counter = 1
    counter_1 = 0
    While counter <= parameters1.Count
        parameterName = parameters1.Item(counter).Name
        If Right(parameterName, Len("Copyright Statement") + 1)= "\" & "Copyright Statement"  Then
            counter_1 = 1
         
        End If
        counter = counter + 1
    Wend

If counter_1 = 0 Then

ID = 1
Set parameters1 = product1.UserRefProperties

Dim strParam1 As StrParam
Set strParam1 = parameters1.CreateString("Copyright Statement", "")

strParam1.ValuateFromString ""

Set product1 = product1.ReferenceProduct

Dim arrayOfVariantOfBSTR1(0)
arrayOfVariantOfBSTR1(0) = "THE INFORMATION CONTAINED HEREIN IS PROPERTY ."
Set strParam1Variant = strParam1
strParam1Variant.SetEnumerateValues arrayOfVariantOfBSTR1

strParam1.Value = "THE INFORMATION CONTAINED HEREIN IS PROPERTY."

End If


counter = 1
    counter_1 = 0
    While counter <= parameters1.Count
        parameterName = parameters1.Item(counter).Name
        If Right(parameterName, Len("Review Info.") + 1) = "\" & "Review Info." Then
            counter_1 = 1
         
        End If
        counter = counter + 1
    Wend
If counter_1 = 0 Then

ID = 1
Dim parameters2 As Parameters
Set parameters2 = product1.UserRefProperties

Dim strParam2 As StrParam
Set strParam2 = parameters2.CreateString("Review Info.", "")

strParam2.ValuateFromString ""

Set product1 = product1.ReferenceProduct

End If


counter = 1
    counter_1 = 0
    While counter <= parameters1.Count
        parameterName = parameters1.Item(counter).Name
        If Right(parameterName, Len("Symmetry") + 1) = "\" & "Symmetry" Then
            counter_1 = 1
         
        End If
        counter = counter + 1
    Wend
If counter_1 = 0 Then

ID = 1
Dim parameters4 As Parameters
Set parameters4 = product1.UserRefProperties

Dim strParam4 As StrParam
Set strParam4 = parameters4.CreateString("Symmetry", "")

strParam4.ValuateFromString ""

Set product1 = product1.ReferenceProduct

End If


counter = 1
    counter_1 = 0
    While counter <= parameters1.Count
        parameterName = parameters1.Item(counter).Name
        If Right(parameterName, Len("T Revision") + 1) = "\" & "T Revision" Then
            counter_1 = 1
         
        End If
        counter = counter + 1
    Wend
If counter_1 = 0 Then

ID = 1
Dim parameters99 As Parameters
Set parameters99 = product1.UserRefProperties

Dim strParam99 As StrParam
Set strParam99 = parameters99.CreateString("T Revision", "")

strParam99.ValuateFromString ""

Set product1 = product1.ReferenceProduct

End If

Set product1 = product1.ReferenceProduct
Set product1 = product1.ReferenceProduct
Set product1 = product1.ReferenceProduct
Set product1 = product1.ReferenceProduct
Set product1 = product1.ReferenceProduct
Set product1 = product1.ReferenceProduct

Set part1 = partDocument1.Part

Dim hybridBodies1 As HybridBodies
Set hybridBodies1 = part1.HybridBodies


counter = 1
    counter_1 = 0
    While counter <= hybridBodies1.Count
        If hybridBodies1.Item(counter).Name = "Geometry Sets" Then
          counter_1 = 1
         
        End If
        counter = counter + 1
        Wend
If counter_1 = 0 Then

ID = 1

Set hybridBody1 = hybridBodies1.Add()

hybridBody1.Name = "Geometry Sets"

part1.Update
End If

 
counter = 1
counter_1 = 0
    While counter <= hybridBodies1.Count
        If hybridBodies1.Item(counter).Name = "Material Info." Then
          counter_1 = 1
         
        End If
        counter = counter + 1
        Wend
If counter_1 = 0 Then

ID = 1
Dim hybridBody2 As HybridBody
Set hybridBody2 = hybridBodies1.Add()

hybridBody2.Name = "Material Info."

part1.Update

Set partDocument1 = CATIA.ActiveDocument


Set part1 = partDocument1.Part

Dim parameters7 As Parameters
Set parameters7 = part1.Parameters

Dim strParam7 As StrParam
Set strParam7 = parameters7.CreateString("", "")

strParam7.Rename "Material No."

Dim parameters9 As Parameters
Set parameters9 = part1.Parameters

Dim strParam9 As StrParam
Set strParam9 = parameters9.CreateString("", "")

strParam9.Rename "Material Criterion"

Dim parameters10 As Parameters
Set parameters10 = part1.Parameters

Dim strParam10 As StrParam
Set strParam10 = parameters10.CreateString("", "")

strParam10.Rename "Material Size"

part1.Update
part1.Update
part1.Update
part1.Update


Set partDocument1 = CATIA.ActiveDocument

Dim selection1 As Selection
Set selection1 = partDocument1.Selection

selection1.Clear

Set part1 = partDocument1.Part
Set parameters10 = part1.Parameters
Set strParam10 = parameters10.Item("Material No.")
selection1.Add strParam10


Set parameters8 = part1.Parameters


Set strParam8 = parameters8.Item("Material Criterion")

selection1.Add strParam8


Set parameters7 = part1.Parameters

Set strParam7 = parameters7.Item("Material Size")

selection1.Add strParam7


selection1.Cut

Set partDocument1 = CATIA.ActiveDocument

Dim selection2 As Selection
Set selection2 = partDocument1.Selection

selection2.Clear


Set hybridBodies1 = part1.HybridBodies


Set hybridBody1 = hybridBodies1.Item("Material Info.")

selection2.Add hybridBody1

selection2.Paste

part1.Update
part1.Update

End If

part1.Update

part1.Update


If ID = 0 Then


If MsgBox("请勿重复运行!", vbYes) = vbYes Then
       
Set product1 = product1.ReferenceProduct
Set product1 = product1.ReferenceProduct
Set product1 = product1.ReferenceProduct
Set product1 = product1.ReferenceProduct
Set product1 = product1.ReferenceProduct
Set product1 = product1.ReferenceProduct


End If

Else

Set partDocument1 = CATIA.ActiveDocument


Set part1 = partDocument1.Part

Dim axisSystems1 As AxisSystems
Set axisSystems1 = part1.AxisSystems

Dim axisSystem1 As AxisSystem
Set axisSystem1 = axisSystems1.Add()

axisSystem1.OriginType = catAxisSystemOriginByCoordinates

Dim arrayOfVariantOfDouble1(2)
arrayOfVariantOfDouble1(0) = 0.000000
arrayOfVariantOfDouble1(1) = 0.000000
arrayOfVariantOfDouble1(2) = 0.000000
axisSystem1.PutOrigin arrayOfVariantOfDouble1

axisSystem1.XAxisType = catAxisSystemAxisByCoordinates

Dim arrayOfVariantOfDouble2(2)
arrayOfVariantOfDouble2(0) = 1.000000
arrayOfVariantOfDouble2(1) = 0.000000
arrayOfVariantOfDouble2(2) = 0.000000
axisSystem1.PutXAxis arrayOfVariantOfDouble2

axisSystem1.YAxisType = catAxisSystemAxisByCoordinates

Dim arrayOfVariantOfDouble3(2)
arrayOfVariantOfDouble3(0) = 0.000000
arrayOfVariantOfDouble3(1) = 1.000000
arrayOfVariantOfDouble3(2) = 0.000000
axisSystem1.PutYAxis arrayOfVariantOfDouble3

axisSystem1.ZAxisType = catAxisSystemAxisByCoordinates

Dim arrayOfVariantOfDouble4(2)
arrayOfVariantOfDouble4(0) = 0.000000
arrayOfVariantOfDouble4(1) = 0.000000
arrayOfVariantOfDouble4(2) = 1.000000
axisSystem1.PutZAxis arrayOfVariantOfDouble4

part1.UpdateObject axisSystem1

axisSystem1.IsCurrent = True

part1.Update

Set product1 = product1.ReferenceProduct
Set product1 = product1.ReferenceProduct

End If

End Sub


M.f.G.

Manuel

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

DasDon
Mitglied
Konstruktuer


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

Beiträge: 169
Registriert: 25.07.2011

R18 SP2. WIN

erstellt am: 21. Sep. 2012 21: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 xyon126 10 Unities + Antwort hilfreich

Hallo xyon126,

gerne würde ich helfen, jedoch verstehe ich nicht die Problematik?

gruß

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



Elektrokonstrukteur (m/w/d)
Die besten Köpfe für die unterschiedlichsten Aufgaben zu finden sowie Menschen und Technologien zu verbinden, und zwar täglich aufs Neue - dafür schätzen unsere Kunden FERCHAU. Unterstütze uns: als ambitionierte:r Kolleg:in, der:die wie wir Technologien auf die nächste Stufe bringen möchte. Wir realisieren spannende Projekte für namhafte Kunden in allen Technologiebereichen und für alle Branchen und überzeugen täglich mit fundierter Expertise und fachlichem Know-how....
Anzeige ansehenElektrotechnik, Elektronik
xyon126
Mitglied
Ingenieur


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

Beiträge: 74
Registriert: 07.11.2011

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

Hallo Dasdon!

              Danke für eure Hilfe, das Problem ist, dass dieses Makro funktioniert nur aus einem CATPart und ich möchte Funktionen aus einer CATProduct-und CATPart alles auf einmal tun, ist es rekursiv. Können Sie mir helfen?

M.f.G.

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