Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Geometrisches Set einfügen

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:  Geometrisches Set einfügen (3725 mal gelesen)
Beemer328
Mitglied
Konstrukteurin Dipl.Ing.(FH)


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

Beiträge: 104
Registriert: 22.10.2008

erstellt am: 10. Feb. 2009 10:08    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 möchte mittels Makro einem vorhandenen geometrischen Set ein weiteres hinzufügen. Dazu habe ich folgendes Makro:

Sub CATMain()

Dim HB1 As HybridBody
Set HB1 = CATIA.ActiveDocument.Part.Hybridbodies.Item ("Vorhanden")
Dim HKoerper As HybridBodies
Set HKoerper = HB1.Hybridbodies
Dim HB2 As HybridBody
Set HB2 = HKoerper.Add
HB2.Name = "NeuesSet"


End Sub

Wenn ich das Makro nochmal ausführe, wird natürlich das Set nochmal eingefügt. Was muss noch dazu, dass das Set dann nicht nochmal eingefügt wird?

------------------
Grüße
Julia

-------------------------------
Click OK to terminate

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

Beemer328
Mitglied
Konstrukteurin Dipl.Ing.(FH)


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

Beiträge: 104
Registriert: 22.10.2008

Intel XEON E3-1280
32GB Ram, Quadro P4000
Win 10 64bit
Catia V5R24
Solidworks 2018

erstellt am: 10. Feb. 2009 11:04    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 weiß schon, dass das sehr langweilig und banal ist, aber eine Lösung würde mich wirklich sehr freuen 

Danke im Voraus.

------------------
Grüße
Julia

-------------------------------
Click OK to terminate

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

Beemer328
Mitglied
Konstrukteurin Dipl.Ing.(FH)


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

Beiträge: 104
Registriert: 22.10.2008

erstellt am: 10. Feb. 2009 12:51    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

Will mir keiner helfen? Schade 

------------------
Grüße
Julia

-------------------------------
Click OK to terminate

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: 10. Feb. 2009 13: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 Beemer328 10 Unities + Antwort hilfreich

Servus
versuch es mal mit:
Code:
HB2 = HKoerper.Add("NeuesSet")

Gruß
Bernd

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

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

Beemer328
Mitglied
Konstrukteurin Dipl.Ing.(FH)


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

Beiträge: 104
Registriert: 22.10.2008

erstellt am: 10. Feb. 2009 13: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

Geht leider nicht. Es fügt trotzdem das "NeueSet" nochmal ein und dazu noch ein unbenanntes Set + Fehlermeldung.

------------------
Grüße
Julia

-------------------------------
Click OK to terminate

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

denyo_1
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 10. Feb. 2009 14:20    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 Beemer328 10 Unities + Antwort hilfreich

Hallo Beemer,

das er das Set nochmal hinzufügt ist ja auch logisch. Du fügst ja erstmal ein Set ein und benennst es dann um. Da es in CATIA auf der Partebene möglich ist das zwei Sets die selben Namen habe bekommst du auch keinen Fehler und das Set wird nochmal in den selben Namen umbenannt. Um da Abhilfe zu schaffen brauchst du eine Abfrage ob das Set schon existiert. Falls ja soll er nichts machen falls neín soll er es hinzufügen. Schau dir mal den Code unten an.

Code:

Sub CATMain()

Dim HB1 As HybridBody
Set HB1 = CATIA.ActiveDocument.Part.Hybridbodies.Item ("Vorhanden")
Dim HKoerper As HybridBodies
Set HKoerper = HB1.Hybridbodies
Dim HB2 As HybridBody
'Hier beginnt die Abfrage
On Error Resume next
Set HB2 = HKoerper.GetItem("NeuesSet")
If Err.Number <> 0 then
  On Error Goto 0
  Set HB2 = HKoerper.Add
  HB2.Name = "NeuesSet"
End If
'Hier endet die Abfrage


End Sub




EDIT:
F7 Taste vergessen 

------------------
MFG Daniel

Die KATJA ist halt doch nur ne zickige Französin

   

[Diese Nachricht wurde von denyo_1 am 10. Feb. 2009 editiert.]

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

Beemer328
Mitglied
Konstrukteurin Dipl.Ing.(FH)


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

Beiträge: 104
Registriert: 22.10.2008

erstellt am: 10. Feb. 2009 14:44    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 sehr. Das sieht aus, als ob es bald funktionieren könnte. Leider tut es noch nix. Was meinst du mit F7 vergessen? Ich versuche es zwischendurch selber, aber ich kenne mich leider nicht aus 

------------------
Grüße
Julia

-------------------------------
Click OK to terminate

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

denyo_1
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 10. Feb. 2009 14: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 Beemer328 10 Unities + Antwort hilfreich

Hallo,

ich hatte ein paar Rechtschreibfehler drinnen die ich mit dem Edit noch verbessert habe (F7 = Rechtschreibprüfung in WORD :lol

Was genau funktioniert den nicht bzw. wie sieht die Fehlermeldung aus. Ev. kann dir ja hier noch jemand helfen wenn du sagst wo deine Probleme sind

------------------
MFG Daniel

Die KATJA ist halt doch nur ne zickige Französin

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

Beemer328
Mitglied
Konstrukteurin Dipl.Ing.(FH)


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

Beiträge: 104
Registriert: 22.10.2008

erstellt am: 10. Feb. 2009 15: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

Achso  Keine Angst, Rechtschreibfehler interessieren mich überhaupt nicht.
Naja, es passiert überhaupt nichts. Auch keine Fehlermeldung. Es fügt auch kein GeoSet ein. (auch nicht, wenn es noch nicht mit dem Namen existiert, was ja der Sinn sein soll).
Hmmm. 2. Idee: Ich habe in dem Forum hier mal etwas gefunden, das zwar funktioniert, aber nur in der ersten Ebene des Strukturbaumes. Es ist mir noch nicht gelungen, es für Untersets umzubauen. Vielleicht habt ihr eine Idee, was ich verändern muss, damit ich mit diesem Code GeoSets in einem Unterset erzeugen kann.

sub CATMain()
  dim ar()
  set mypart = CATIA.ActiveDocument.Part
  pflichtnamen="Becks:Jever:Flens:Budwiser:Erdinger"
  set hybs = mypart.HybridBodies
  a = split(pflichtnamen,":")
  for j = 0 to UBound(a)
    if hybs.Count > 0 then
      found = 0
      for i = 1 to hybs.Count
        if a(j) = hybs.Item(i).Name then
          found = 1
        end if
      next
    end if
    if found = 0 then
      set newhb = mypart.HybridBodies.Add
      newhb.Name = a(j)
    end if
  next
end sub

------------------
Grüße
Julia

-------------------------------
Click OK to terminate

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

rattlesnake
Mitglied



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

Beiträge: 47
Registriert: 22.10.2007

Vb .NET CATIA V5R19

erstellt am: 11. Feb. 2009 08:37    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 Beemer328 10 Unities + Antwort hilfreich

ich hab da mal Funktionen zu geschrieben:

Code:
Public Function getHybridBody(nameOfHybridBody As String, Optional parent As Object, Optional createIfNotExists As Boolean)
    Dim userSel As selection
    Dim newHybridBody As HybridBody
   
    'search for hybrid body
    Set userSel = CATIA.activeDocument.selection
    userSel.Clear
    userSel.Search "CATPrtSearch.OpenBodyFeature.Name=" & nameOfHybridBody & "*,all"

    If userSel.Count > 0 Then
        Set newHybridBody = userSel.Item(1).value
    ElseIf createIfNotExists Then
        Set newHybridBody = parent.HybridBodies.Add
        newHybridBody.name = nameOfHybridBody
    End If
   
    'return results
    Set getHybridBody = newHybridBody
End Function


diese Funktion prüft ob bereits ein Geometrical Set mit dem Namen nameOfHybridBody vorahnden ist, fügt optional in parent eins hinzu, wenn createIfNotExists = true ist

------------------
                  \\\\|////
                  \\ _ _ //
                   ( o o )
================oOOo-(_)-oOOo==================
    The next time you think you are perfect,
           try walking on water
========================Oooo===================
                  oooO  (  )
                  (  )  ) /
                   \ ( (_/
                    \_)

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

Beemer328
Mitglied
Konstrukteurin Dipl.Ing.(FH)


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

Beiträge: 104
Registriert: 22.10.2008

erstellt am: 11. Feb. 2009 10:13    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 es mal mit dieser Funktion probiert. Ist es richtig, dass ich für "nameOfHybridBody" den Namen des gewünschten GeoSets eintragen muss? Ich kriege gleich bei der ersten Zeile einen Fehler.

------------------
Grüße
Julia

-------------------------------
Click OK to terminate

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: 12. Feb. 2009 00:20    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 Beemer328 10 Unities + Antwort hilfreich

Hallo Beemer328,

wo hast Du die Funktion getestet? Sie wird nur in "catvba" funktionieren, da optionale Parameter im VBScript nicht unterstützt werden.
Wenn Du die Funktion in einem "CATScript" oder "catvbs" nutzen willst, musst Du das "Optional" aus der Funktionsdefinition entfernen und beim Aufruf auch wirklich Parameter übergeben! Der "nameOfHybridBody" ist dann auch der Name des zu erzeugenden Set's!


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

Beemer328
Mitglied
Konstrukteurin Dipl.Ing.(FH)


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

Beiträge: 104
Registriert: 22.10.2008

Intel XEON E3-1280
32GB Ram, Quadro P4000
Win 10 64bit
Catia V5R24
Solidworks 2018

erstellt am: 12. Feb. 2009 08: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

Hallo,
vielen Dank für eure Hilfe. Ich habs etwas anders zusammengebastelt aus mehreren "Puzzlestückchen", aus diesem Thread und weiteren Forumsbeiträgen. Ich glaub, ich werd mir mal ein Buch darüber kaufen, dass ich nicht immer so raten muss.

------------------
Grüße
Julia

-------------------------------
Click OK to terminate

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