Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Boolesche Operation umbenennen - Fehler

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:  Boolesche Operation umbenennen - Fehler (1977 mal gelesen)
chrisspeed
Mitglied
Ingenier


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

Beiträge: 17
Registriert: 30.01.2014

Catia V5 R24
Windows 7 64 Bit
Intel Xeon ES-1650 @ 3,2GHz
4 GB RAM

erstellt am: 04. Feb. 2014 10:45    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 aus dem Catia Kochbuch ein Makro rausgeschrieben, aber ich bekomme die Fehlermeldung "Objekt erforderlich". Vielleicht wird die Boolesche Operation nicht gefunden?
Das Makro dient dazu, dass die Boolesche Operation den Namen des Body´s erhält.
ich weiß nicht, wo der Fehler liegt, vielleicht könnt ihr den finden!?!?
Danke schon mal....

Dim version, makroname
Sub CATMain()
version = "1.0"
makroname = "Boolesche Operation umbenennen"
On Error Resume Next
Set activedoc = CATIA.ActiveDocument
If Err.Number <> 0 then
  MsgBox "Es ist kein Bauteil geöffnet", 16, makroname + " " + version
  Exit Sub
End If
If (Right(activedoc.Name, 7) <> "CATPart") Then
MsgBox "Aktives Dokument ist kein Bauteil", 16, makroname + " " + version
Exit Sub
End If

Set activepart = CATIA.ActiveDocument.Part
Set Bodies = activepart.Bodies

For i = 1 To Bodies.Count
  Set body1 = Bodies.Item(i)

For k = 1 To body1.Shapes.Count
  Set shape1 = body1.Shapes.Item(k)

Set boolbody = shape1.Body
If Err.Number = 0 Then

shape1.Name = Left(shape1.Name, Len(shape1.name) - InStrRev(shape1.Name, ".") + 2) & "_" & boolbody.Name


Set Laenge_Originalname = Len(shape1.name)
Set Laenge_bis_Punkt = InStrRev(shape1.Name, ".")
Set shape1.Name = Left(shape1.Name, Laenge_Originalname - Laenge_bis_Punkt + 2)
Set shape1.Name = shape1.Name & "_" & boolbody.Name

  End If
  Error.Clear
  Next
Next

iErr = Err.Number
If (iErr <> 0) Then
  MsgBox (Err.Description)
  Exit Sub
End If
MsgBox "Makro ist beendet", 64, makroname + " " + version
End Sub

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

Hamlet
Mitglied
Konstruktions- und Entwicklungsingenieur


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

Beiträge: 57
Registriert: 14.05.2013

Catia V5 R21
Windows 7 64bit
using: Microsoft Visual Basic

erstellt am: 04. Feb. 2014 10:56    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 chrisspeed 10 Unities + Antwort hilfreich

Ich weiß, dass deine Zeile:
-----
Set Laenge_bis_Punkt = InStrRev(shape1.Name, ".")
-----

Den Fehler enthält. Was genau allerdings falsch ist, kann ich nicht sagen.  
Scheinbar fehlt da noch etwas.

[Diese Nachricht wurde von Hamlet am 04. Feb. 2014 editiert.]

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

chrisspeed
Mitglied
Ingenier


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

Beiträge: 17
Registriert: 30.01.2014

Catia V5 R24
Windows 7 64 Bit
Intel Xeon ES-1650 @ 3,2GHz
4 GB RAM

erstellt am: 04. Feb. 2014 10: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

ich habe jetzt die Zeile entgegen dem Buch abgeändert

Set boolbody = shape1.Body
If Err.Number = 0 then -> hier habe ich geschrieben If Err.Number <> 0 then

jetzt funktioniert das Umbenennen, aber ich bekomme trotzdem die Meldung "Objekt erforderlich".
Damit könnte ich leben, aber mich interessiert, was es damit auf sich hat.

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: 04. Feb. 2014 11: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 chrisspeed 10 Unities + Antwort hilfreich

Ich kann mir nicht vorstellen, dass das so im Kochbuch steht.

ist ja Unsinn, außer man möchte etwas demonstrieren.

Bist Du Dir sicher, dass ne Shape nen Body besitzt? Das würde ich schon stark anzweifeln.

Dann setzt Du 3x hintereinander die Namenseigenschaft. Wozu? Machs doch gleich beim ersten Mal richtig.

Wenn Du Hilfe möchtest teile doch die Zeile mit in der der Fehler auftritt.

Dann würde mich stark wundern, wenn der Herr Hansen so grobe Fehler begeht, dass der Integer-Werte mit Set einem Objekt zuweist.

Als nächstes würde ich mal die Variablen deklarieren, das macht es auch mir einfacher.

------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila

Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen

Xing

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

chrisspeed
Mitglied
Ingenier


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

Beiträge: 17
Registriert: 30.01.2014

Catia V5 R24
Windows 7 64 Bit
Intel Xeon ES-1650 @ 3,2GHz
4 GB RAM

erstellt am: 04. Feb. 2014 12:53    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

Zitat:
Original erstellt von HoBLila:
Ich kann mir nicht vorstellen, dass das so im Kochbuch steht.

ist ja Unsinn, außer man möchte etwas demonstrieren.

Bist Du Dir sicher, dass ne Shape nen Body besitzt? Das würde ich schon stark anzweifeln.

Dann setzt Du 3x hintereinander die Namenseigenschaft. Wozu? Machs doch gleich beim ersten Mal richtig.

Wenn Du Hilfe möchtest teile doch die Zeile mit in der der Fehler auftritt.

Dann würde mich stark wundern, wenn der Herr Hansen so grobe Fehler begeht, dass der Integer-Werte mit Set einem Objekt zuweist.

Als nächstes würde ich mal die Variablen deklarieren, das macht es auch mir einfacher.


Ich habe es genauso vom Buch abgeschrieben. Leider wird nie das Ganze als abgebildet, sondern immer abschnittsweise, um Erklärungen einfließen zu lassen.

Ich habe von Makroprogrammierung leider keine Ahnung, deswegen das Buch, aus dem ich stur abschreibe.

Ich weiß nicht, warum 3x hintereinander die Namenseigenschaft kommt, es ist so abgeschrieben.

Variablen deklarieren? Was bedeutet das?

Es kommt kein Hinweis auf eine Zeilennummer, nur die Meldung "Objekt erforderlich".

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: 04. Feb. 2014 12:56    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 chrisspeed 10 Unities + Antwort hilfreich

Servus
Dir ist bekannt das man die Makros (wie auch im Buch beschrieben) downloaden kann (siehe zB hier)

Gruß
Bernd

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

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

chrisspeed
Mitglied
Ingenier


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

Beiträge: 17
Registriert: 30.01.2014

Catia V5 R24
Windows 7 64 Bit
Intel Xeon ES-1650 @ 3,2GHz
4 GB RAM

erstellt am: 04. Feb. 2014 14: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

Zitat:
Original erstellt von bgrittmann:
Servus
Dir ist bekannt das man die Makros (wie auch im Buch beschrieben) downloaden kann (siehe zB hier)

Gruß
Bernd


Ja, die habe ich auch. Nur leider funktioniert hier auf Arbeit der vba Editor nicht, da wahrscheinlich es nicht richtig installiert worden ist. Ich habe es der IT schon weiter gegeben, aber das kann noch ne Weile dauern.
P.S. da der obige Threat von mir stammt, wusste ich von den Links.

[Diese Nachricht wurde von chrisspeed am 04. Feb. 2014 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: 07. Feb. 2014 09: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 chrisspeed 10 Unities + Antwort hilfreich

Haste nun das Set vor den Laengen weggemacht?

Wenn Du kein VBA-Editor hast wo schreibst Du die Makros dann?

------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila

Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen

Xing

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

Thomas Harmening
Ehrenmitglied V.I.P. h.c.
Arbeiter ツ



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

Beiträge: 2897
Registriert: 06.07.2001

NX 10
Win 7

erstellt am: 07. Feb. 2014 16: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 chrisspeed 10 Unities + Antwort hilfreich

vielleicht ist das auch sinnvoller?

Code:
'Boolesche Operationen-----------------------------------------------
objSel.Clear
objSel.Search "(((((CATPrtSearch.Assemble + CATPrtSearch.Trim) + CATPrtSearch.Add) + CATPrtSearch.Intersect) + CATPrtSearch.Split )+ CATPrtSearch.Remove),all"
If objSel.Count > 0 Then
    For i = 1 To objSel.Count
    Set objBooleOperation = objSel.Item(i).Value
        'Prüfen ob es sich um eine Boolesche Operation handlet. Ein Flächentrimm hat keine Methode Body
        On Error Resume Next
        If Left(objBooleOperation.Name, 1) = "#" Then 'wenn # dann nichts ändern
        ElseIf Not IsError(objBooleOperation.Body) Then
            Select Case TypeName(objBooleOperation)
            Case "Add"
                StrBooleOperation = "Hinzufügen "
            Case "Assemble"
                StrBooleOperation = "Zusammenbauen "
            Case "Intersect"
                StrBooleOperation = "Verschneiden "
            Case "Trim"
                StrBooleOperation = "Trimmen "
            Case "Split"
                StrBooleOperation = "Verschneiden "
            Case "Remove"
                StrBooleOperation = "Entfernen "
            End Select
            objBooleOperation.Name = StrBooleOperation & objBooleOperation.Body.Name
        End If
        On Error GoTo 0
    Next
End If

aus http://ww3.cad.de/foren/ubb/Forum133/HTML/010058.shtml#000021

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