Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Überprüfungsmakro

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:  Überprüfungsmakro (1830 mal gelesen)
donbastiano
Mitglied



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

Beiträge: 19
Registriert: 17.01.2011

Intel Core 2 Duo 3.00 Ghz
3 GB Arbeitsspeicher
Windows XP Professional SP3
Catia V5 R18

erstellt am: 09. Mrz. 2011 10:46    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 Leute,
Ich habe folgendes Problem:
Ich möchte über ein Makro abfragen, ob ein User defined Feature in meinem Part vorhanden ist. Code ist folgender:

Sub CATMain()
   
    Dim partDocument1 As PartDocument
    Set partDocument1 = CATIA.ActiveDocument
   
    Dim part1 As Part
    Set part1 = partDocument1.Part
   
    Dim Bodies1 As Bodies
    Set Bodies1 = part1.Bodies
   
    Dim Paläm As AnyObject
    Set Paläm = part1.Bodies.GetItem("Paläm")
   
    If Err.Number <> 0 Then
   
    MsgBox ("Test funktioniert")
    Err.Clear
   
    End If
   
   
End Sub

Mein Problem ist, dass das Makro nur einmal Funktioniert, nachdem ich Catia neu gestartet habe. Wo liegt mein Fehler?

mfg, donbastiano

------------------
bau den sofa grade

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. Mrz. 2011 00:10    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 donbastiano 10 Unities + Antwort hilfreich

Hallo donbastiano,

vielleicht solltest Du mal die Grundregeln (aus MEINER Sicht!) beherzigen und "Sonderzeichen" ("ä") in Variablennamen außen vor lassen.

In Deiner Version läuft der Code bei mir in einem R19 als "CATScript" überhaupt nicht. Bei Umbenennung von "Paläm" in "Palaem" kann ich überhaupt keine Probleme mehr erkennen, d.h. Deine Aussage nicht mehr bestätigen.


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

donbastiano
Mitglied



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

Beiträge: 19
Registriert: 17.01.2011

Intel Core 2 Duo 3.00 Ghz
3 GB Arbeitsspeicher
Windows XP Professional SP3
Catia V5 R18

erstellt am: 11. Mrz. 2011 10:38    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 Lusilnie,

danke schon mal für die Hilfe.... an sowas hab ich schon gar nicht mehr gedacht ^^.
Jetzt arbeitet das Programm auf jeden Falls schonmal... nur tut es nicht das, was es soll.
Ich dachte nämlich, dass wenn ich den Parameter palaem mit dem GetItem("UDF") belege und dieser "UDF" nicht im part vorhanden ist, sich die Fehlerzahl erhöht und das tut Sie aber nicht. also kommt immer nur die Nachricht, die ich ausgeben lasse, wenn kein Fehler auftritt, also der nach dem else.

Sub CATMain()
   
    Dim partDocument1 As PartDocument
    Set partDocument1 = CATIA.ActiveDocument
   
    Dim part1 As Part
    Set part1 = partDocument1.Part
   
    Dim Bodies1 As Bodies
    Set Bodies1 = part1.Bodies
   
    Dim Palaem1 As AnyObject
    Set Palaem1 = part1.Bodies.GetItem("UDF_Scheibe.1")
   
    If Err.Number <> 0 Then
   
    MsgBox ("Test funktioniert")
    Err.Clear
   
    Else
    MsgBox ("Palaem vorhanden")
    End If
   
    On Error GoTo 0
   
End Sub

------------------
bau den sofa grade

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: 11. Mrz. 2011 11: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 Nur für donbastiano 10 Unities + Antwort hilfreich

Servus
Verwende einfach bodies.item statt bodies.getitem.
Code:
Sub CATMain() 
    Dim partDocument1 As PartDocument
    Set partDocument1 = CATIA.ActiveDocument
 
    Dim part1 As Part
    Set part1 = partDocument1.Part
 
    Dim Bodies1 As Bodies
    Set Bodies1 = part1.Bodies

    on error resume next
 
    Dim Palaem1 As Body
    Set Palaem1 = part1.Bodies.Item("UDF_Scheibe.1")
 
    If err.Number <> 0 Then
 
    MsgBox ("Test funktioniert") 
 
    Else
    MsgBox ("Palaem vorhanden")
    End If
 
  on error goto 0
   
End Sub


Gruß
Bernd

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

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

donbastiano
Mitglied



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

Beiträge: 19
Registriert: 17.01.2011

Intel Core 2 Duo 3.00 Ghz
3 GB Arbeitsspeicher
Windows XP Professional SP3
Catia V5 R18

erstellt am: 11. Mrz. 2011 11: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

Habe ich versucht. Nun bekomme ich aber die Fehlermeldung:
"Objekt unterstützt diese Eigenschaft oder Methode nicht"

------------------
bau den sofa grade

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: 11. Mrz. 2011 12:01    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 donbastiano 10 Unities + Antwort hilfreich

Servus
Was für ein Objekt willst du erkennen? Ein Body? Ein UDF im Quellpart? (ggf hilft ein Bild)
Hast du "on error resume next" gesetzt?

Gruß
Bernd

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

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

donbastiano
Mitglied



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

Beiträge: 19
Registriert: 17.01.2011

Intel Core 2 Duo 3.00 Ghz
3 GB Arbeitsspeicher
Windows XP Professional SP3
Catia V5 R18

erstellt am: 11. Mrz. 2011 12:05    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

Also:
Ich füge über ein Makro ein UDF in ein neues Part ein. Dieses wird als erstes Objekt in den Hauptkörper eingesetzt. Und in diesem neuen Part soll mit dem angegebenen Makro überprüft werden, ob das UDF bereits vorhanden ist, oder nicht.
Ich hoffe, dass ich das verständlich erklärt hab ^^.

.... Ha... Moment..... ich glaube ich habe das On error resume next an der falschen Stelle eingefügt.
Ich denke es läuft jetzt wie es soll. Ich werd das nochmal überprüfen. Danke aber schonmal für die Hilfe.

@Bernd: Du scheinst dich ja wirklich gut auszukennen mit Makroprogrammierung. Vielleicht könntest du auch mal in meinen anderen Thread schauen (Komponenten verschwinden beim Speichervorgang). Da liegt nämlich das gravierendste Problem mit meinem Programm.

So... neuer Nachtrag: Jetzt springt er zwar in die if-Anweisung, wenn ich aber mein UDF eingebaut habe, sollte er eigentlich ja in die else-Anweisung springen, was das Makro leider noch nicht tut
lg, donbastiano
------------------
bau den sofa grade

[Diese Nachricht wurde von donbastiano am 11. Mrz. 2011 editiert.]

[Diese Nachricht wurde von donbastiano am 11. Mrz. 2011 editiert.]

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

em Michael Kirsch
Mitglied
Teamleiter KBE Methoden & Tools


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

Beiträge: 222
Registriert: 21.10.2002

CATIA V5 R16
CATIA V5 R18
CATIA V5 R19
NX 5
NX 6
NX 7.5

erstellt am: 29. Mrz. 2011 22:10    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 donbastiano 10 Unities + Antwort hilfreich

Hallo donbastiano,

was, wenn jemand das UDF anderswo eingebaut hat. Mit der Suche findest Du UDFs überall:

Sub CATMain()

    Dim i As Long
    Dim strMessage As String
    Dim oSelection As Selection
   
    Set oSelection = CATIA.ActiveDocument
    oSelection.Clear
    oSelection.Search "'Generative Shape Design'.Userfeature;all"
   
    strMessage = oSelection.Count & " Elements found:"
    If oSelection.Count > 0 Then
        For i = 1 To oSelection.Count
            strMessage = strMessage & Chr(10) & Chr(13) & oSelection.Item(i).Value.Name
        Next
    End If
   
    MsgBox strMessage

End Sub

Grüße,

Michael Kirsch

------------------
CATIA, sonst NX ;-)

www.em.ag

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