Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Section in ein Part exportieren

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:  Section in ein Part exportieren (1844 mal gelesen)
Jonny1
Mitglied


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

Beiträge: 5
Registriert: 07.12.2006

Catia V5R14 SP5 HF15
XP Prof.

erstellt am: 14. Dez. 2006 13: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

Hallo V5-Programmierer

Ich versuche ein Makro zu schreiben, welches mir die Sections in ein Part exportiert.
Wenn man die original Funktion von Catia einsetzt (Sections selektieren und im Kontextmenü über die RM) wird ein Part gespeichert und alle selektierten Sections werden in separate Geometrical Sets eingefügt. Und ich möchte das der Name von Geometrical Set (üblich Geometrical Set.1)  überschrieben wird mit dem Namen der Section.

Aber ich scheitere schon an der  „Export“ Funktion. Bin aber auch nicht gerade DER Programmierer.

Set cSections = CATIA.ActiveDocument.Product.GetTechnologicalObject ("Sections")

Set oNewPartDocument = CATIA.Documents.Add ("Part")
oNewPartDocument = cSections.Item(1).Export

Was mach ich da falsch?

Gruß
Jonny

------------------
Gruß
Jonny

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: 14. Dez. 2006 18: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 Jonny1 10 Unities + Antwort hilfreich

Hallo Jonny1,

da scheint sich ein Fehler in der Dokumentation eingeschlichen zu haben!
Vereinfache einfach die Zeilen

Code:
Set oNewPartDocument = CATIA.Documents.Add ("Part")
oNewPartDocument = cSections.Item(1).Export
zu
Code:
Set oNewPartDocument = cSections.Item(1).Export
Dann solltest Du das gesuchte Ergebnis bekommen!


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

smodo1977
Mitglied



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

Beiträge: 263
Registriert: 28.07.2006

erstellt am: 14. Dez. 2006 19: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 Jonny1 10 Unities + Antwort hilfreich

Hallo Jonny,

funzt dein Makro schon?
Wär toll, wenn du es zur Verfügung stellen würdest.

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

tomtom1972
Mitglied
dipl ing maschinenbau


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

Beiträge: 605
Registriert: 22.03.2005

NVidia Quadro K4000
Intel Xeon E5-1620, 64GB RAM
Windows10 64bit
R30 <= CATIA V5 > =R19

erstellt am: 15. Dez. 2006 07: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 Nur für Jonny1 10 Unities + Antwort hilfreich

Hallo Lusilnie,

Fehler eingeschlichen ist gut.
In der Doku wimmelst nur so vor Fehlern.
In der Beschreibung des .Measureable z.B. ist bald jede zweite Code-Zeile falsch. Und das seit der R8.

Gruss
TomTom

------------------
tomtom1972

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: 15. Dez. 2006 14:47    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 Jonny1 10 Unities + Antwort hilfreich

Hallo tomtom1972,

ich weiß, die Doku ist immer an den "kritischen Stellen", d.h. die Passagen die man braucht, weil sie nicht ganz trivial sind, sehr lückenhaft oder fehlerbehaftet.
Doch ich wollte das nicht so krass darstellen, damit ich Anfänger nicht gleich so stark verunsichere, dass sie ganz darauf verzichten und nur noch das Forum als Ratgeber suchen.

Allerdings wissen wir doch alle, warum die Hilfe so "schlampig" gepflegt wird: Wir sollen doch bitte Unternehmen mit Programmierung und Schulung beauftragen, damit auch diese Geld verdienen können. Wenn diese dann mit DassaultSystemes zusammenarbeiten, fließt sicher auch dort noch Geld an DS zurück! ODER? 


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

Jonny1
Mitglied


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

Beiträge: 5
Registriert: 07.12.2006

Catia V5R14 SP5 HF15
XP Prof.

erstellt am: 17. Dez. 2006 10: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 Lusilnie,

Das die Doku mit Fehlerbehaftet ist, ist nicht neu. 

Zitat:
Original erstellt von Lusilnie:
Code:
Set oNewPartDocument = cSections.Item(1).Export


Danke schon mal, muss erstmal ausprobieren.
Was aber noch nicht so klar ist, wie komme ich dann an den Namen der Geometrical Sets?
Kann ich dann in "oNewPartDocument" nach einem Geometrical Set suchen, ich meine ist dann das "oNewPartDocument" mein Object der Klase "Part"?

Wie schon gesagt bin kein Profi was programmieren angeht.

------------------
Gruß
Jonny

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: 17. Dez. 2006 18: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 Jonny1 10 Unities + Antwort hilfreich

Hallo Jonny1,

nein, Dein "oNewPartDocument" ist, wie der Name schon sagt, ein PartDocument. Also ein Document (Datei) vom Typ "Part", welches natürlich einen "Knoten" Part enthält. Darin existiert ein "Knoten" HybridBodies unter dem die Hybridbodies, also (auch?) die "Geometrical Sets" existieren. Also wäre Dein "Geometrical Set" unter den "Items" von "oNewPartDocument.Part.HybridBodies" zu suchen.

PS: Du solltest das "oNewPartDocument" noch sichern, das geschieht nicht automatisch!


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

Jonny1
Mitglied


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

Beiträge: 5
Registriert: 07.12.2006

Catia V5R14 SP5 HF15
XP Prof.

erstellt am: 06. Sep. 2007 09: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

Hallo,

endlich kann ich mit dem Makro weitermachen, allerdings ist das mehr ein VB2005 Projekt geworden.

Die Lösung von Lusilnie funktioniert sehr gut. In meinem Programm kann ich es leider nicht ganz verwenden.

Ich habe mehrere Sections zu exportieren und bei Lusilnie Lösung wird immer ein neues Part mit dem Schnitt abgespeichert, was bei über 50 Sections etwas unübersichtlich und sehr aufwendig wird.

In Catia hab ich die Möglichkeit alle Sections in ein Part zu exportieren. Ich habe versucht über copy/paste es zu lösen, erhalte aber immer die gleiche Fehlermeldung allerdings Catiaseitig. (Selected Element(s) not allowed for this operation). Was mach ich falsch?

Code:

Public Sub exportSection(ByVal CATProductDocument As ProductDocument, _
                            ByVal CATSectionDocument As PartDocument, _
                            ByVal FirstSection As Integer, _
                            ByVal LastSection As Integer)

        Dim ClsPartDocument As PartDocument
        Dim ClsSelectionCopy As Selection
        Dim ClsSelectionPaste As Selection
        Dim ClsGeoSet As HybridBody
        Dim ClsSections As Sections
        Dim IntIndexGeoSet As Integer = 1
     
        ClsSelectionPaste = CATSectionDocument.Selection
        ClsSelectionPaste.Add(CATSectionDocument.Part)
        ClsSections = Me.getSections(CATProductDocument)

        If FirstSection = 0 Then
            FirstSection = 1
        End If

        For IntIndexSection As Integer = LastSection To FirstSection Step -1
            If Not BackWorker.CancellationPending Then
                ClsPartDocument = ClsSections.Item(IntIndexSection).Export()
                ClsSelectionCopy = ClsPartDocument.Selection

                ClsGeoSet = ClsPartDocument.Part.HybridBodies.Item(ClsPartDocument.Part.HybridBodies.Count)
                ClsGeoSet.Name = ClsSections.Item(IntIndexSection).Name

                Try
                    ClsSelectionCopy.Clear()
                    ClsSelectionCopy.Add(ClsGeoSet)
                    ClsSelectionCopy.Copy()
                    ClsSelectionPaste.Paste()
                Catch ex As Exception
                    Exit For
                End Try
            End If
        Next
    End Sub



------------------
Gruß
Jonny

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

Tweety79
Mitglied
Entwicklung Automotive


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

Beiträge: 269
Registriert: 09.12.2007

WPF, VBA, CATScript, Access

erstellt am: 12. Nov. 2016 19: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 Jonny1 10 Unities + Antwort hilfreich

Hallo zusammen,

ich versuche auch Schnitte zu exportieren.
Code ist ähnlich wie beim Johnny, ich bekomme aber eien Fehlermeldung in der Zeile ...Copy()

        Dim myPart As MECMOD.PartDocument


        mySection = myCatiaApp.ActiveDocument.Product.GetTechnologicalObject("Sections")

        myPart = myCatiaApp.Documents.Add("Part")

        Dim mySelection As INFITF.Selection
        myPart = mySection.Item(1).Export()
        mySelection = myPart.Selection
        mySelection.Copy()
        mySelection.Paste()

Was ist bei mir falsch?
Danke.

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: 12. Nov. 2016 23: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 Jonny1 10 Unities + Antwort hilfreich

Servus
Wie lautet die Fehlermeldung? Was könnte das bedeuten? Ist auch was selektiert dass du kopieren willst?

Gruß
Bernd

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

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

Tweety79
Mitglied
Entwicklung Automotive


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

Beiträge: 269
Registriert: 09.12.2007

WPF, VBA, CATScript, Access

erstellt am: 13. Nov. 2016 15: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 Jonny1 10 Unities + Antwort hilfreich

Servus,

ich habe inzwischen einen Ansatz gewählt, der mir einfacher erschien, vielleicht kannst du mir dabei Hilfestellung geben.

Code:

        mySection = myCatiaApp.ActiveDocument.Product.GetTechnologicalObject("Sections")
        For i = 1 To mySection.Count()
            myPartNumberSec = mySection.Item(i).Name

            myPart = mySection.Item(i).Export()
            Dim myFileName As String = "C:\Desktop\" & myPartNumberSec & "_" & Now.Date & ".CATPart"
            Dim a As String
            If System.IO.File.Exists(myFileName) Then

                a = MsgBox("Es existiert bereits ein Modell mit dem gleichen Namen. Möchten Sie es überschreiben?", vbYesNo)
                If a = vbYes Then
                    System.IO.File.Delete(myFileName)
                Else
                    Exit Sub
                End If
            End If
            myPart.ExportData(myFileName, "CATPart")
        Next

Fehlermeldung in Zeile: myPart.ExportData(myFileName, "CATPart") und heißt: "Alredy exists in this session"

Wenn ich aber in ExportDate(myFileName, "CATPart") das myFileName rausnehme und stattdessen z B. schreibe: "C:\Desktop\xy.CATPart", "CATPart") funktioniert der Export.

Ich möchte aber dass das CATPart so heißt wie die Section im Product schon heißt.

Irgendwas ist bei dem myFileName dann falsch.

Danke dir.

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

Tweety79
Mitglied
Entwicklung Automotive


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

Beiträge: 269
Registriert: 09.12.2007

WPF, VBA, CATScript, Access

erstellt am: 13. Nov. 2016 16:12    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 Jonny1 10 Unities + Antwort hilfreich

Um den Feher zu umgehen habe ich Zeilen geändert in:

Dim myFileName As String = myPartNumberSec & "_" & Now.Date & ".CATPart" --> hier Laufwerk raus

            myPart.ExportData("C:\Desktop\Z_" & i, "CATPart") --> hier myFileNAme raus und Name mit Laufwerk angegeben

            My.Computer.FileSystem.RenameFile("C:\Desktop\Z_" & i & ".CATPart", myFileName)--> hier wollte ich jetzt den NAmen auf dem LAufwerk umbenennen in myFileName

Jetzt gibt es keine Fehler ABER es erfolgt auf kein RenameFile; es heißt weiterhin Z_1.CATPart.
javascript:InsertSMI(' %20');

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