Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  AddNewAssemble nur ein Mal funktioniert

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:  AddNewAssemble nur ein Mal funktioniert (494 / mal gelesen)
Sylas
Mitglied



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

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 31. Dez. 2021 01:18    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 zusammen!
Ich probiere gerade ein Makro schreiben welches neues Body einfugst und eventuell neue Assembly macht.

Es schein mir das AddNewAssembly Methode funct nur ein (erstes) Mal.

Guck mal an die Code unter bitte, und sag mir was habe ich Falsch gemacht 

Code:

Sub CATMain()
Dim oSel
Dim oBodyToAssemble As Body
Dim oPartBody As Body
Dim oFilter(0) As Variant
Dim oDummySel As Selection
Set oDummySel = CATIA.ActiveDocument.Selection
Set oSel = oDummySel

Dim part1 As Part
oFilter(0) = "Part"
Status = oSel.SelectElement2(oFilter, "Wybierz part", True)

Set part1 = oSel.Item(1).Value
Dim shapeFactory1 As ShapeFactory
Set shapeFactory1 = part1.ShapeFactory

Dim bodies1 As Bodies
Set bodies1 = part1.Bodies


Dim body0 As Body
Dim body1 As Body

Set body0 = part1.MainBody

Dim oDummy As Object

start:
Set body1 = bodies1.Add()
Status2 = MsgBox("Czy ma to być główne body?", vbYesNo, "Zmienić główne body?")
If Status2 = vbYes Then
    part1.MainBody = body1
    body1.Name = "PartBody"
    body0.Name = "DXF"
    shapeFactory1.AddNewAssemble body0
    part1.Update
    oSel.Clear
    oSel.Search "(Name=Assemble* & CATPrtSearch.Assemble),in"
    Set oDummy = oSel.Item(1).Value
    oDummy.Name = body0.Name
    oSel.Clear
    part1.Update
    Status = MsgBox("Powtórzyć operację?", vbYesNo, "Powórzyć operację?")
    If Status = vbYes Then
        GoTo start
    Else
        part1.InWorkObject = part1.MainBody
        End
    End If
Else
    body1.Name = InputBox("Podaj nazwę body: ", "Nazwa body")
    shapeFactory1.AddNewAssemble body1
    part1.Update
    oSel.Clear
    oSel.Search "(Name=Assemble* & CATPrtSearch.Assemble),in"
    Set oDummy = oSel.Item(1).Value
    oDummy.Name = body1.Name
    oSel.Clear
    part1.Update
    Status = MsgBox("Powtórzyć operację?", vbYesNo, "Powórzyć operację?")
    If Status = vbYes Then
        GoTo start
    Else
        part1.InWorkObject = part1.MainBody
        End
    End If
End If
End Sub


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: 31. Dez. 2021 08:15    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 Sylas 10 Unities + Antwort hilfreich

Servus

Ich muss zugeben mir ist der Ablauf des Makros nicht ganz klar.
Kommt eine Fehlermeldung? Wie lautet diese? Ist der richtige Körper beim AddNewAssemble in Bearbeitung?
Warum verwendest du Search? Geht da nicht auch zB Set MyAssemble = shapeFactory1.AddNewAssemble(body0)

Gruß
Bernd

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

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

Sylas
Mitglied



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

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 03. Jan. 2022 20: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

Zitat:
Original erstellt von bgrittmann:
Servus

Ich muss zugeben mir ist der Ablauf des Makros nicht ganz klar.
Kommt eine Fehlermeldung? Wie lautet diese? Ist der richtige Körper beim [i]AddNewAssemble
in Bearbeitung?
Warum verwendest du Search? Geht da nicht auch zB Set MyAssemble = shapeFactory1.AddNewAssemble(body0)

Gruß
Bernd

[/i]


Hallo Bernd  

Das Makro soll so laufen:
1. Fugt neues Body zu
2.Fragt, ob neues Body soll MainBody (PartBody) sein
2a. Wenn Ja - wechselt alteres Body mit neues. Macht neues Assembly (mit altes MainBody).
2b. Wenn Nein - macht neues Assembly mit neues Body.
3.Frag ob das alles ist. Wenn Ja - endest. Wenn Nein - geht zu Punkt 1

Änders Namen hier und da  

Mit zweites Assemly ich kriege Fehlermeldung:

Edit: Ich habe gerade gepruft, das Ich kriege das selbst Meldung, wenn ich springe MainBody Entscheindung uber 

[Diese Nachricht wurde von Sylas am 03. Jan. 2022 editiert.]

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: 03. Jan. 2022 20: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 Sylas 10 Unities + Antwort hilfreich

Servus

Und ist der richtige Body in Bearbeitung?

Gruß
Bernd

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

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

Sylas
Mitglied



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

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 03. Jan. 2022 21: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

Wenn du ein Body mit:
Code:

Set body1 = bodies1.Add()

fügst - neues Body automatisch InWorkObject bekommst, oder?

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: 03. Jan. 2022 21: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 Nur für Sylas 10 Unities + Antwort hilfreich

Und in beiden Fällen ist der richtige Körper in Bearbeitung?
(für doch das Makro schrittweise aus)

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

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

Sylas
Mitglied



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

Beiträge: 322
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 03. Jan. 2022 21: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

Zitat:
Original erstellt von bgrittmann:
Und in beiden Fällen ist der richtige Körper in Bearbeitung?
(für doch das Makro schrittweise aus)


Ich habe das Body bevor "If" hinzufugen, daswegen, bei jedes Fall, es geht um das gleiches Body...

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: 03. Jan. 2022 21:48    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 Sylas 10 Unities + Antwort hilfreich

Kannst du dem body1 den body1 hinzufügen?
Vermutlich nicht.
Die Boole'sche Operation wird immer im aktuellen in Bearbeitung befindlichen Körper erzeugt.

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

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