Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Makro geometrische Set

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:  Makro geometrische Set (4935 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: 30. Jan. 2009 08:24    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 in einem CATPart automatisch durch ein Makro geometrische Sets erstellen lassen. Ich kenne mich mit der Makroprogrammierung nicht gut aus und kann das nur über die Makroaufzeichnung. Dadurch habe ich es geschafft, dass ein Set erstellt wird aber es bekommt dann nicht den Namen, den ich bei der Aufzeichnung eingegeben habe. Was füge ich in das Makro ein, damit das neue Set einen Namen bekommt. Bisher sieht es so aus:

Language="VBSCRIPT"

Sub CATMain()

Dim partDocument1 As Document
Set partDocument1 = CATIA.ActiveDocument

Dim part1 As Part
Set part1 = partDocument1.Part

Dim hybridBodies1 As HybridBodies
Set hybridBodies1 = part1.HybridBodies

Dim hybridBody1 As HybridBody
Set hybridBody1 = hybridBodies1.Add()

part1.Update

End Sub


Vielleicht gibt es auch eine elegantere Variante. Freue mich über jeden Vorschlag.

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

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

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

Jens Hansen
Mitglied
Senior Consult


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

Beiträge: 1055
Registriert: 05.08.2000

Win7
CATIA V5 R19
VB.Net
C#

erstellt am: 30. Jan. 2009 08: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 Nur für Beemer328 10 Unities + Antwort hilfreich

Hallo,
den namen kannst du nachträglich vergeben.

Dim hybridBody1 As HybridBody
Set hybridBody1 = hybridBodies1.Add()
hybridBody1.Name = "Ich_bin_Willi"

SG

Jens Hansen

------------------
Inoffizielle CATIA-Hilfeseite
Private Seite
Xing
Kochbuch - CATIA V5 automatisieren

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: 30. Jan. 2009 08: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 Nur für Beemer328 10 Unities + Antwort hilfreich

Hallo Julia,

du hast schon alles richtig gemacht dir fehlt nur noch die Methode das geometrische Set (hybridBody1-Objekt) umzubenennen. Das geht in deinem Fall mit hybridBody1.Name = "TEST"

Hier mal dein Code ein wenig übersichtlicher umgeschrieben:

Code:

Sub CATMain()

Dim oDoc As Document
Dim oPart As Part
Dim ohyBodies As hybridBodies
Dim ohyBody As HybridBody

Set oDoc = CATIA.ActiveDocument
Set oPart = oDoc.Part
Set ohyBodies = oPart.hybridBodies
Set ohyBody = ohyBodies.Add()
ohyBody.Name = "Test" 'Hier wird das Set umbenannt!

oPart.Update

End Sub


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

Die KATJA ist halt doch nur ne zickige Französin

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: 30. Jan. 2009 08: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 Beemer328 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Jens Hansen:
Hallo,
den namen kannst du nachträglich vergeben.

Dim hybridBody1 As HybridBody
Set hybridBody1 = hybridBodies1.Add()
hybridBody1.Name = "Ich_bin_Willi"

SG

Jens Hansen



Da hatte jemand flinkere Finger 

------------------
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: 30. Jan. 2009 08:41    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 nochmal. Habe in meinem Lieblingsforum (dieses hier) folgendes gefunden. Jetzt möchte ich nur noch die Sets an eine bestimmte Stelle z.B. unterhalb eines vorhandenen Sets erstellt haben. Kann man das da noch einbauen?

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

Jens Hansen
Mitglied
Senior Consult


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

Beiträge: 1055
Registriert: 05.08.2000

Win7
CATIA V5 R19
VB.Net
C#

erstellt am: 30. Jan. 2009 08: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 Nur für Beemer328 10 Unities + Antwort hilfreich

Hallo,
du musst hybridBodies1.Add() in dem jeweiligen GS ausführen, wo das neue GS hinein soll.

Set hybridBodies1 = part1.HybridBodies
Set hybridBody1 = hybridBodies1.Add()
Set hybridBody1_1 = hybridBody1.Hybridbodies.Add()

SG

Jens Hansen

------------------
Inoffizielle CATIA-Hilfeseite
Private Seite
Xing
Kochbuch - CATIA V5 automatisieren

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

Jens Hansen
Mitglied
Senior Consult


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

Beiträge: 1055
Registriert: 05.08.2000

Win7
CATIA V5 R19
VB.Net
C#

erstellt am: 30. Jan. 2009 08: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 Nur für Beemer328 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von denyo_1:

Da hatte jemand flinkere Finger    



YES !!!!!!  Ausnahmsweise mal 

------------------
Inoffizielle CATIA-Hilfeseite
Private Seite
Xing
Kochbuch - CATIA V5 automatisieren

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: 30. Jan. 2009 08:55    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

Erstmal vielen Dank für die schnellen Antworten.
Funktioniert auch super. Aber mit dem letzten komme ich nicht richtig zurecht. An welcher Stelle von dem Schleifenmakro mit den Biersorten muss das rein?

(ihr seid so schnell, da kommen meine Fragen später als die Antworten  )

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

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

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

Jens Hansen
Mitglied
Senior Consult


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

Beiträge: 1055
Registriert: 05.08.2000

Win7
CATIA V5 R19
VB.Net
C#

erstellt am: 30. Jan. 2009 09: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 Nur für Beemer328 10 Unities + Antwort hilfreich

Sollen die GS denn der Reihe nach geschaltelt werden? Wie genau soll die Struktur denn aussehen?

SG

Jens Hansen

------------------
Inoffizielle CATIA-Hilfeseite
Private Seite
Xing
Kochbuch - CATIA V5 automatisieren

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: 30. Jan. 2009 09: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

Es gibt eine vorhandene Struktur mit Sets und Untersets. Und nun sollen in diese Sets und auch in manche Untersets neue Sets automatisch erzeugt und automatisch benannt werden. Könnte auch sein, dass die neu erzeugten Sets als "Vater" für vorhandene dienen müssen. Es ist also eine verschachtelte Struktur. Das Schleifenmakro muss nicht unbedingt sein, hat mir nur gefallen, weil es nur neue Sets erzeugt, wenn diese noch nicht vorhanden sind.

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

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

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

Jens Hansen
Mitglied
Senior Consult


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

Beiträge: 1055
Registriert: 05.08.2000

Win7
CATIA V5 R19
VB.Net
C#

erstellt am: 30. Jan. 2009 09: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 Beemer328 10 Unities + Antwort hilfreich

Naja... es muss schon definiert sein, wann ein GS unterhalb eines anderen GS erzeugt werden soll und wann nicht. Generell ist es so, dass zu erst das "Vater"-Set angesprochen werden muss:
bei neues GS mit:
   Set hb1 = part1.HybridBodies.Add
bei bestehenden mit:
   Set hb1 = part1.HybridBodies.Item("Name_des GS_oder index")
wobei das letztere sich auf die oberste Ebene bezieht. Tiefer verschaltet sieht es dann so aus:
   Set hb1 = part1.HybridBodies.Item(2).Hybridbodies.Item(1).Hybridbodies.Item("Name")
Hier wären wir dann schon auf der 3. Unterebene

Wenn unterhalb des ausgewählten GS ein weiteres GS hin soll dann gehts mit
   Set hb2 = hb1.HybridBodies.Add
weiter

Das war es schon ...

SG

Jens Hansen


------------------
Inoffizielle CATIA-Hilfeseite
Private Seite
Xing
Kochbuch - CATIA V5 automatisieren

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: 30. Jan. 2009 09:32    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

Hi,

hier habe ich mal ein kleines Beispiel. Ist kein geo-Set im Part vorhanden, wird ein eingefügt. Ist aber eins vorhanden, muss das Anwender das geo-Set auswählen unter dem er das neue einfügen will.

Code:

Sub CATMain()

    Dim oDoc As Document
    Dim oPart As Part
    Dim ohyBodies As hybridBodies
    Dim ohyBody As HybridBody
    Dim oType(0)
    Dim Auswahl
    'Dim oSel As Selection
   

    Set oDoc = CATIA.ActiveDocument
    Set oSel = oDoc.Selection
    Set oPart = oDoc.Part
    Set ohyBodies = oPart.hybridBodies
    If ohyBodies.Count = 0 Then
        Set ohyBody = ohyBodies.Add()
        ohyBody.Name = "Erste Stufe" 'Hier wird das Set umbenannt!
    Else
        oType(0) = "HybridBody"
        Auswahl = oSel.SelectElement2(oType, "Bitte wählen Sie den Hauptkörper aus", False)
        If Auswahl = "Normal" Then
            Set ohyBody = oSel.Item(1).Value 'Hier hole ich mit das obere geometrische Set
            oSel.Clear
            Set ohyBodies = ohyBody.hybridBodies 'Hier hol ich mir alle geo-Sets meines geo-Set
            Set myNewBody = ohyBodies.Add() 'Hier füg ich das neu geo-Set unterhalb dem alten
            myNewBody.Name = "Zweite Stufe"
        Else
            Box = MsgBox("Der Anwender hat die Selektion abgebrochen!" + Chr(10) + "das Makro wird beendet!", vbExclamation + vbOKOnly, "Abbruch durch Anwender")
            oSel.Clear
            Exit Sub
        End If
    End If
   

    oPart.Update

End Sub



------------------
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: 30. Jan. 2009 09:36    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, werd gleich mal rumprobieren. Allerdings muss es gar nicht so aufwendig sein. Der Benutzer sollte keine Eingaben machen müssen / können. Die vorhandene Struktur steht fest und das Resultat seht ebenfalls fest. Soll nicht benutzerdefiniert erzeugt werden.

------------------
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: 30. Jan. 2009 09: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 Nur für Beemer328 10 Unities + Antwort hilfreich

Hallo,

ok aber mit dem Beispiel kommst du zurecht? Sonst beschreib hier mal kurz die Struktur mit den reallen Namen der Sets, dann mach ich dir ein anderes Beispiel.

------------------
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: 30. Jan. 2009 10: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

Ein Beispiel:

So sieht die Beispielstruktur vorher aus:

Konstrution
      - Kunststoff
              -  Flächen
              -  Zusammenbau
      - Metall
Fertigung
      - Werkstoff
      - Symmetrie

und so soll das Beispiel danach aussehen:

Bauteil
      - Konstruktion
      - Kunststoff
              - Flächen
              - Skizzen
              - Zusammenbau
      - Metall

Fertigung
      - Werkstoff
      - Symmetrie
            - Beispiele

------------------
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: 30. Jan. 2009 11: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 Nur für Beemer328 10 Unities + Antwort hilfreich

Hi,

ich hoffe das Teil hier bringt dich weiter. Sollte jetzt auf deine Struktur abgestimmt sein. Abfragen sind auch verwirklicht (die Sets werden NICHT doppelt erzeugt und die Grundgeometrie wird mit einer Fehlerbehandlung abgefragt, falls die Vater/Mutter -Sets nicht exisitieren)

Hier der Code:

Code:

Sub CATMain()
'by denyo_1

    Dim oDoc As Document
    Dim oPart As Part
    Dim ohyBodies As hybridBodies
    Dim ohyBody As HybridBody
    Dim oType(0)
    Dim Auswahl
    Dim Z As Integer
    Dim Check As Integer
    Dim mySkizBody As Object
   
   
   
    Check = 0
    Z = 0
    Set oDoc = CATIA.ActiveDocument
    Set oSel = oDoc.Selection
    Set oPart = oDoc.Part
    Set ohyBodies = oPart.hybridBodies
'Hier wird das geo-Set angesprochen in dem das neue eigefügt werden soll in dem Fall in "Kunststoff"
        On Error Resume Next
        Set myKunstBody = ohyBodies.GetItem("Konstruktion").hybridBodies.GetItem("Kunststoff")
        If Err.Number = 0 Then
            On Error GoTo 0
            Check = Check + 1
            Set myKunstBodies = myKunstBody.hybridBodies
            Set mySkizBody = myKunstBodies.GetItem("Skizzen")
            If mySkizBody Is Nothing Then
                Z = Z + 1
                Set mySkizBody = myKunstBodies.Add()
                mySkizBody.Name = "Skizzen"
            End If
        Else
            Box = MsgBox("Das geometrische Set ==> Skizzen <== kann nicht eingefügt werden!" + Chr(10) + _
                    "Grund: Das geometrische Set ==> Kunststoff <== wurde nicht gefunden!", vbExclamation + vbOKOnly, _
                    "Geo-Set nicht gefunden")
        End If
'Hier wird das geo-Set angesprochen in dem das neue eigefügt werden soll in dem Fall in "Symetrie"
        On Error Resume Next
        Set mySymBody = ohyBodies.GetItem("Fertigung").hybridBodies.GetItem("Symetrie")
        If Err.Number = 0 Then
            On Error GoTo 0
            Check = Check + 1
            Set mySymBodies = mySymBody.hybridBodies
            On Error Resume Next
            Set myBspBody = mySymBodies.GetItem("Beispiele")
            If Err.Number <> 0 Then
                On Error GoTo 0
                Z = Z + 1
                Set myBspBody = mySymBodies.Add()
                myBspBody.Name = "Beispiele"
            End If
        Else
            Box = MsgBox("Das geometrische Set ==> Beispiele <== kann nicht eingefügt werden!" + Chr(10) + _
                    "Grund: Das geometrische Set ==> Symetrie <== wurde nicht gefunden!", vbExclamation + vbOKOnly, _
                    "Geo-Set nicht gefunden")
        End If
    On Error GoTo 0
       
    If Check = 0 Then
        Box = MsgBox("Es konnte kein geometrisches Set erstellt werden" + Chr(10) + _
                    "Die Grundgeometrie ist nicht korrekt!", vbCritical + vbOKOnly, "Falsche Grundgeometrie")
    ElseIf Z = 0 Then
        Box = MsgBox("Es wurde kein geometrisches Set hinzgefügt, da die Sets schon existieren!", vbInformation + vbOKCancel, "Makro erfolgreich beendet")
    ElseIf Z = 1 Then
        Box = MsgBox("Es wurde " & Z & " geometrisches Set hinzugefügt", vbInformation + vbOKOnly, "Makro erfolgreich beendet")
    ElseIf Z = 2 Then
        Box = MsgBox("Es wurden " & Z & " geometrische Sets hinzugefügt", vbInformation + vbOKOnly, "Makro erfolgreich beendet")
    End If
                   
    oPart.Update

End Sub



------------------
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: 30. Jan. 2009 11:33    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

Supi und vielen Dank für die Mühe. Sieht gut aus und ich bastel es gerade auf meine Struktur um.
Gibts denn auch die Möglichkeit, dass ein Set "Bauteil" (siehe Beispiel) neu eingefügt wird und diesem dann eine vorhandene Setstruktur untergeordnet wird?
Bei Catia geht das auf normalem Wege so: Einfügen -> geometrisches Set
- > Auswahlfenster mit:
Name: Name des neuen Set, das wäre bei meinem Bsp. das neue Set 'Bauteil';
Father: Name des übergeordneten Elementes, das wäre dann das Catpart
Features: "Name des untergeordneten Sets, welches bei mir das bereits vorhandene Set 'Konstruktion' sein soll"

------------------
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: 30. Jan. 2009 11:36    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

..........Oder auch ein vorhandenes Set in ein anderes vorhandenes reinschieben

------------------
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: 30. Jan. 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

Hallo Julia,

das geht schon aber es gibt ein paar Einschänkungen. Diese Methode ("change geometrical Set") kann nicht direkt aufgerufen werden. D.h. es gibt zwei Möglichkeiten das selbe Zeil zu erreichen:

1. mit Cut & Paste das alte Set (mitsamt Unterstruktur) in das neue zu schieben
2. die Funktion (Cange geometrical Set) direkt über einen StartCommand

Beide haben große Nachteile.

zu 1. Die geometrischen Sets MÜSSEN komplett leer sein, d.h. das Makro funktioniert nur zum Erstellen von Startparts

zu 2. Es ist keine Automatisierung, da der Anwender nach dem Aufruf des Command per Hand weiter machen muss.

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

Die KATJA ist halt doch nur ne zickige Französin

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



Senior Ingenieur HKLS (m/w/d) Biopharma & Life Science

Unsere Mitarbeiter:innen sind das Geheimnis unseres Erfolgs. Als Teil eines weltweiten Teams entwickeln Sie Ingenieurskunst für die Hightech-Märkte der Zukunft weiter, darunter Halbleiter, Batterien, Pharma, Biotechnologie und Rechenzentren. Gemeinsam arbeiten wir leidenschaftlich und ambitioniert an den Herausforderungen von heute und den Innovationen für morgen. Damit setzen wir die Tradition unseres Unternehmens fort und leisten unseren Teil zum Aufbau einer besseren Welt....

Anzeige ansehenTeamleitung, Gruppenleitung
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: 30. Jan. 2009 13:29    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

Ok, dankeschön. Dann muss ich das geschickt umgehen. Ich wünsche noch einen schönen Tag und ein schönes WE.

------------------
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