Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  CATIA V5 Programmierung
  Skizze unter VBA erzeugen

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
  
CATIA V5 Grundkurs | Einsteiger - 5 Std. 15 Min 48
  
Dassault PLM Integrationen mit der 3DViewStation, eine Pressemitteilung
Autor Thema:  Skizze unter VBA erzeugen (3166 mal gelesen)
Feyza
Mitglied



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

Beiträge: 605
Registriert: 12.01.2004

CATIA Catia V5-R6 R2014 - Windows Win/Windows Server 2008
AutoCAD Mechanical 2014
Oracle
VB.NET

erstellt am: 13. Nov. 2014 13:50    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 erstelle ein neues Thema, da das andere abgeschlssen wurde. Warum auch immer 

Ich kopiere mir Elemente aus einer geöffneten DXf datei aus Catia V5 und
gehe wieder auf den CATPart zurück und möchte den kopierten Inhalt in eine neue Skizze einfügen.

        '-------------------------------------------------------------------------------
        'CATPart öffnen
        '-------------------------------------------------------------------------------
       
        oDoc.Activate

        '-------------------------------------------------------------------------------
        'In Skizze wechseln
        '-------------------------------------------------------------------------------


        Dim partDocument1 As PartDocument
        Set partDocument1 = CATIA.ActiveDocument

        Dim part1 As Part
        Set part1 = partDocument1.Part

        Dim bodies1 As Bodies
        Set bodies1 = part1.Bodies

        Dim body1 As Body
        Set body1 = bodies1.Item("PartBody")

        Dim sketches1 As Sketches
        Set sketches1 = body1.Sketches

        Dim sketch1 As Sketch
-->      Set sketch1 = sketches1.Item("Sketch.1")

        part1.InWorkObject = sketch1

        Dim factory2D1 As Factory2D
        Set factory2D1 = sketch1.OpenEdition()

Das VBA programm bricht an der markierten Stelle ab.

Habe gemerkt, wenn die Sketch.1 vorhanden ist, läuft das Programm durch.

Aber ich möchte die kopierten Elemente in eine neue Skizze einfügen, also muss ich eine neue Skizze erzeugen.

Kann mir bitte hier weiterhelfen.

Wie würde das funktionieren? 

Vielen Dank im Voraus.

------------------
Schöne Grüße
Feyza : )

------------------
Schöne Grüße
Feyza : )

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

MarkusK
Mitglied



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

Beiträge: 131
Registriert: 09.08.2002

Dell Precision T5500
Intel Xenon X5560 4x 2,8 GHz
12 GB Ram
NVIDIA Quadro FX 3800
Win XP
Catia V5R19 SP3

erstellt am: 13. Nov. 2014 20: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 Feyza 10 Unities + Antwort hilfreich

Hallo,

Ja klar gibt es ein Fehler wenn es Sketch.1 nicht gibt.
So was muss man zuvor auch abfragen.
Falls es den Sketch nicht gibt muß man ihn erstellen.

Hier mal der Code mit einer möglichen Abfrage.

Code:

Sub CATMain()
Dim partDocument1 As PartDocument
        Set partDocument1 = CATIA.ActiveDocument

        Dim part1 As Part
        Set part1 = partDocument1.Part

        Dim bodies1 As Bodies
        Set bodies1 = part1.Bodies

        Dim body1 As Body
        Set body1 = bodies1.Item("Hauptkörper") '("PartBody")

        Dim sketches1 As Sketches
        Set sketches1 = body1.Sketches

        Dim sketch1 As Sketch
        If ExistSketch("Sketch.1", sketches1, sketch1) = False Then
            Set sketch1 = sketches1.Add(part1.OriginElements.PlaneXY())
            sketch1.Name = "Sketch.1"
      End If


        part1.InWorkObject = sketch1

        Dim factory2D1 As Factory2D
        Set factory2D1 = sketch1.OpenEdition()
End Sub

Public Function ExistSketch(Name As String, Sizzen As Sketches, Optional ByRef GeoSet As Sketch) As Boolean
On Error GoTo fehler:
Set GeoSet = Sizzen.Item(Name)
ExistSketch = True
fehler:

End Function


------------------
Gruss Markus

[Diese Nachricht wurde von MarkusK am 13. Nov. 2014 editiert.]

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

Feyza
Mitglied



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

Beiträge: 605
Registriert: 12.01.2004

CATIA Catia V5-R6 R2014 - Windows Win/Windows Server 2008
AutoCAD Mechanical 2014
Oracle
VB.NET

erstellt am: 14. Nov. 2014 10:16    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 markusK,

vielen Dank für Deine schnelle Hilfe.

Der Script erzeugt die Skizze. Aber aktivieren kann ich es leider nicht.

        Dim factory2D1 As Factory2D
        Set factory2D1 = sketch1.OpenEdition()

Ich kann zwar mit z.b. factory2d1.createcircle --> kreis erzeugen.

Was ich brauche ist, dass ich die kopierten Elemente von der anderen zeichnung in die Skizze einfügenkann.

Die Möglichkeit z.b. factory2d1.paste gibt es leider nicht.

Könntest Du mir hier bitte noch einen Tip geben.

Vielen Dank 

------------------
Schöne Grüße
Feyza : )

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

MarkusK
Mitglied



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

Beiträge: 131
Registriert: 09.08.2002

Dell Precision T5500
Intel Xenon X5560 4x 2,8 GHz
12 GB Ram
NVIDIA Quadro FX 3800
Win XP
Catia V5R19 SP3

erstellt am: 15. Nov. 2014 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 Feyza 10 Unities + Antwort hilfreich

Hallo,

ich wollt gerade schon schreiben, dass ich auch keine Möglichkeit kenne die Skizze zu öffnen,und dann was einzufügen.
Wenn ich es aufzeichne, sieht das Makro dann so aus, als ob ich die Linien selbst gezeichnet hätte.
(so wie du es schon beschreiben hast factory2d1.createcircle )

Dann aber dachte ich, warum eigentlich so kompliziert.
Warum sich die Arbeit machen und erst in die Skizze rein?
Geht doch auch ohne...

Code:

Sub CATMain()
Dim partDocument1 As PartDocument
Dim selection1 As Selection

Set partDocument1 = CATIA.ActiveDocument

Dim part1 As Part
Set part1 = partDocument1.Part

Dim bodies1 As Bodies
Set bodies1 = part1.Bodies

Dim body1 As Body
Set body1 = bodies1.Item("Hauptkörper") '("PartBody")

Dim sketches1 As Sketches
Set sketches1 = body1.Sketches

Dim sketch1 As Sketch
If ExistSketch("Sketch.1", sketches1, sketch1) = False Then
    Set sketch1 = sketches1.Add(part1.OriginElements.PlaneXY())
    sketch1.Name = "Sketch.1"
End If


part1.InWorkObject = sketch1

Set selection1 = partDocument1.Selection

selection1.Clear
selection1.Add sketch1
selection1.Paste

'        Dim factory2D1 As Factory2D
'        Set factory2D1 = sketch1.OpenEdition()
End Sub

Public Function ExistSketch(Name As String, Sizzen As Sketches, Optional ByRef GeoSet As Sketch) As Boolean
On Error GoTo fehler:
Set GeoSet = Sizzen.Item(Name)
ExistSketch = True
fehler:

End Function


------------------
Gruss Markus

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)2025 CAD.de | Impressum | Datenschutz