Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Schleife für Dxf-Umwandlung inkl. Farb- und Layer-änderung

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:  Schleife für Dxf-Umwandlung inkl. Farb- und Layer-änderung (1744 mal gelesen)
inx
Mitglied



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

Beiträge: 12
Registriert: 28.11.2013

Catia V5 R21
Win XP SP3
Intel Pentium Dual Core 2,7 GHz

erstellt am: 28. Nov. 2013 20: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

Hi Cad-Community,
gleich vorweg, ich bin was das Programmieren und Catia betrifft blutiger Anfänger. Ich wurde quasi von meiner Firma ins kalte Wasser geworfen.

Jetzt zum Problem.
Ich brauche ein Makro um mehrere Zeichnugen in einem Ordner X in DXF umzuwandeln (die DXF können in dem gleichen Ordner abgelegt werden), vorher sollen allerdings alle Elemente mit Linienstärke 2 auf den Layer 1 und alle Linien mit Linienstärke 2 in Cyan geändert werden.

Für die Umwandlung habe ich mir ein freies Makro runtergeladen und modifiziert. Es funktionierte auch.

Für die Änderung in der Zeichnung habe ich mit der Makroaufzeichnung ein Makro selbst erstellt und dann angepasst. Hat auch funktioniert, allerdings nur bei einer schon offenen Zeichnung.

Wenn ich nun beide zusammen bringe, funzt es nicht.
Ich bekomme einfach nicht raus woran es liegt. Hab schon Stunden das Forum durchsucht. Hoffe ihr könnt mir helfen.

Die Selection usw. innerhalb der Schleife ist das Makro was ich selbst erstellt habe, der Rest ist das Umwandlungsmakro.

Hier mein Code:

Language="VBSCRIPT"

Sub CATMain()

'On Error Resume Next
CATIA.DisplayFileAlerts = False

Dim Eingabe As String
Dim Ausgabe As String
Dim Format As String

Eingabe = "C:xxx\"
Eingabe = InputBox("Bitte geben Sie den Oeffnungs Ort ein.")

Ausgabe = "C:xxx\"
Ausgabe = InputBox("Bitte geben Sie den Ausgabeort der Export-Files ein.")

Set oFileSystem = CATIA.FileSystem
Set oFolder = oFileSystem.GetFolder(Eingabe)

Dim FileSep As String
FileSep = oFileSystem.FileSeparator

Dim Datei As String
Dim SDatei As String
Dim SName As String

Dim Pfad As String
Pfad = oFolder.Path + FileSep

Dim oActiveDoc As Document

Dim Name As String
Dim i As Integer
Dim F As Integer
F = 0

For i = 1 To oFolder.Files.Count
        Set oFile = oFolder.Files.Item(i)
    If Right(oFile.Name, 10) = "CATDrawing" Then
        Name = Left(oFile.Name, Len(oFile.Name) - 11)
        Datei = Pfad + Name + ".CATDrawing"
        F = F + 1
        Set oActiveDoc = CATIA.Documents.Open(Datei)
        Set Document = CATIA.ActiveDocument

Dim selection1 As Selection

Set selection1 = Document.Selection

selection1.Search "Weight=0,2mm,all"

Selection1.VisProperties.SetLayer catVisLayerBasic, 1

Set selection2 = drawingDocument1.Selection

selection2.Search "Weight=0,4mm,all"

Selection2.VisProperties.SetRealColor catVisRealColor=255,255,255,0

        SName = Name + "." + "dxf"
        SDatei = Ausgabe + FileSep + SName
        document.ExportData SDatei, "dxf"
        Datei = ""
        oActiveDoc.Close
    End If
Next

If Err.Number = 0 Then
    Dim MsgText As String

    MsgText = "Finished, " & F & " " & "dxf" & " files created in " & Ausgabe & "(counts without details)."

Else: MsgText = "Macro Save had errors - Please Check - www.tobeplus.de"

End If
    MsgBox MsgText

CATIA.DisplayFileAlerts = True
On Error GoTo 0

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: 29. Nov. 2013 06:42    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 inx 10 Unities + Antwort hilfreich

Servus
Willkommen im Forum.
Bei grob drüber lesen hab ich keinen Fehler gesehen.
Was geht beim Makro und was geht nicht?
Werden die Drawings nacheinander geöffnet?
Werden die dxf erstellt?
Werden die Layer geändert (ggf zum Text vor "oActiveDoc.Close" ein "Exit Sub" einfügen und in CATIA schauen ob die Layer angepasst wurden)

Gruß
Bernd

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

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

imation1999
Mitglied
dipl.-ing. Maschinenbau


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

Beiträge: 276
Registriert: 02.08.2011

Dell Precision T3500
Intel® Xeon® Quad Core
NVIDIA Quadro® 5000
Win7 x64 Ultimate
CATIA V5 R20 SP2

erstellt am: 29. Nov. 2013 07: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 inx 10 Unities + Antwort hilfreich

Hallo,

lass mal selection2 weg. Einfach mit selection1 weterarbeiten.

Code:

.
..
...
Dim selection1 As Selection
Set selection1 = Document.Selection

For i = 1 To oFolder.Files.Count
        Set oFile = oFolder.Files.Item(i)
    If Right(oFile.Name, 10) = "CATDrawing" Then
        Name = Left(oFile.Name, Len(oFile.Name) - 11)
        Datei = Pfad + Name + ".CATDrawing"
        F = F + 1
        Set oActiveDoc = CATIA.Documents.Open(Datei)
        Set Document = CATIA.ActiveDocument

selection1.Search "Weight=0,2mm,all"

Selection1.VisProperties.SetLayer catVisLayerBasic, 1

selection1.clear
selection1.Search "Weight=0,4mm,all"

Selection1.VisProperties.SetRealColor catVisRealColor=255,255,255,0

        SName = Name + "." + "dxf"
        SDatei = Ausgabe + FileSep + SName
        document.ExportData SDatei, "dxf"
        Datei = ""
        oActiveDoc.Close
    End If
Next
...
..
.


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

inx
Mitglied



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

Beiträge: 12
Registriert: 28.11.2013

Catia V5 R21
Win XP SP3
Intel Pentium Dual Core 2,7 GHz

erstellt am: 29. Nov. 2013 16: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

Danke für eure schnellen Antworten.

Also wenn ich es durchlaufen lasse wie in meinem Post, werden nur die DXF´s erstellt ohne die Änderungen, es kommt auch keine Fehlermeldung.

Wenn ich jetzt die Änderungen wie von imation1999 vorgeschlagen rein nehme, gibt es eine Fehlermeldung für die Zeile: Set selection1 = Document.Selection (Fehlerbeschreibung: Objekt erforderlich: 'Document')

Wenn ich nun diese Zeile in die Schleife verschiebe, wird wieder nur in DXF Umgewandelt ohne die Änderungen der Layer bzw. Farbe.

Habe auch schon versucht ein Makro zu machen wo nur die Zeichnung geöffnet und dann die Änderung vorgenommen wird.
Sobald die Befehle des Öffnens der Zeichnung und des Änderns der Eigenschaften zusammenkommen, geht das mit den Änderungen nicht mehr. Wie als wenn etwas fehlen würde. Sprich ein bestimmter Befehl nach dem öffnen der Zeichnung.

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

imation1999
Mitglied
dipl.-ing. Maschinenbau


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

Beiträge: 276
Registriert: 02.08.2011

Dell Precision T3500
Intel® Xeon® Quad Core
NVIDIA Quadro® 5000
Win7 x64 Ultimate
CATIA V5 R20 SP2

erstellt am: 29. Nov. 2013 17:00    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 inx 10 Unities + Antwort hilfreich

Achso thja, mein Fehler!
Versuch mal so...

Code:

.
..
...
Dim selection1 As Selection

For i = 1 To oFolder.Files.Count
        Set oFile = oFolder.Files.Item(i)
    If Right(oFile.Name, 10) = "CATDrawing" Then
        Name = Left(oFile.Name, Len(oFile.Name) - 11)
        Datei = Pfad + Name + ".CATDrawing"
        F = F + 1
        Set oActiveDoc = CATIA.Documents.Open(Datei)
        Set Document = CATIA.ActiveDocument
        Set selection1 = Document.Selection

selection1.Search "Weight=0,2mm,all"

Selection1.VisProperties.SetLayer catVisLayerBasic, 1

selection1.clear
selection1.Search "Weight=0,4mm,all"

Selection1.VisProperties.SetRealColor catVisRealColor=255,255,255,0

        SName = Name + "." + "dxf"
        SDatei = Ausgabe + FileSep + SName
        document.ExportData SDatei, "dxf"
        Datei = ""
        oActiveDoc.Close
    End If
Next
...
..
.


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

inx
Mitglied



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

Beiträge: 12
Registriert: 28.11.2013

Catia V5 R21
Win XP SP3
Intel Pentium Dual Core 2,7 GHz

erstellt am: 29. Nov. 2013 17:31    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

Hatte ich schon probiert, aber leider macht er mir dann wieder nur die DXF Umwandlung. Kann es sein das ich irgendwie noch vorher das Blatt oder so auswählen muss oder mit einem Befehl verklickern muss das dann eine Auswahl erfolgt?

Macht eigentlich Groß- bzw. Kleinschreibung einen Unterschied?
z.B. wenn ich mal Selection oder selection schreibe?

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

imation1999
Mitglied
dipl.-ing. Maschinenbau


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

Beiträge: 276
Registriert: 02.08.2011

Dell Precision T3500
Intel® Xeon® Quad Core
NVIDIA Quadro® 5000
Win7 x64 Ultimate
CATIA V5 R20 SP2

erstellt am: 29. Nov. 2013 17: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 inx 10 Unities + Antwort hilfreich

Bist Du sicher, dass die Liniestärke stimmen?
Die klein und großbuchstaben sind egal.

Wie schreibst Du den Pfad im Inputbox? Am Ende soll kein "\" sein. zB.: C:\CATIA_TEST

Bei mir funktioniert das Makro einwandfrei.

[Diese Nachricht wurde von imation1999 am 29. Nov. 2013 editiert.]

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

inx
Mitglied



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

Beiträge: 12
Registriert: 28.11.2013

Catia V5 R21
Win XP SP3
Intel Pentium Dual Core 2,7 GHz

erstellt am: 29. Nov. 2013 17: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

Ja, habs bisher mit dem \ gemacht. Brachte aber auch keine Veränderung. Er macht immer noch nur die Umwandlung.

Ich bilde mir auch ein das ich Anfangs wenn ich eine Zeichnung geöffnet hatte, einfach ein Element anklicken und damit auswählen konnte. Das geht jetzt nicht mehr. Ich muss jetzt vorher immer "Auswahlmodus erzwingen" anwählen bevor das geht. Könnte es daran liegen?

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

imation1999
Mitglied
dipl.-ing. Maschinenbau


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

Beiträge: 276
Registriert: 02.08.2011

Dell Precision T3500
Intel® Xeon® Quad Core
NVIDIA Quadro® 5000
Win7 x64 Ultimate
CATIA V5 R20 SP2

erstellt am: 29. Nov. 2013 18:09    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 inx 10 Unities + Antwort hilfreich

Hast Du schon die CATIA-SETTINGS gelöscht?

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

inx
Mitglied



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

Beiträge: 12
Registriert: 28.11.2013

Catia V5 R21
Win XP SP3
Intel Pentium Dual Core 2,7 GHz

erstellt am: 29. Nov. 2013 18: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

Nein. Sollte ich?
Wenn ja, wie und wo kann ich das machen?

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

inx
Mitglied



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

Beiträge: 12
Registriert: 28.11.2013

Catia V5 R21
Win XP SP3
Intel Pentium Dual Core 2,7 GHz

erstellt am: 29. Nov. 2013 21: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

Sry aber ich steig einfach nicht durch.
Hab mal was probiert und zwar mit folgenden Code:

Sub CATMain()

CATIA.Documents.Open ("C:xyz.catdrawing")

Set Document = CATIA.ActiveDocument

Dim selection1 As Selection

Set selection1 = Document.Selection

selection1.Search "Weight=0,2mm,all"

End Sub

Wenn ich das ausführe wird nur die Zeichnung geöffnet, mehr nicht. Wenn ich dann CATIA.Documents.Open auskommentiere (ich lass die Zeichnung geöffnet) und das Script nochmal starte, führt es die Selection aus. Oo
Das raff ich einfach nicht.

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

inx
Mitglied



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

Beiträge: 12
Registriert: 28.11.2013

Catia V5 R21
Win XP SP3
Intel Pentium Dual Core 2,7 GHz

erstellt am: 30. Nov. 2013 11: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

Vielleicht liegt es auch einfach an unseren alten Rechnnern, denn die Zeichnungen brauchen eine Weile bis sie geöffnet sind. Das würde zumindest erklären warum es bei imation1999 geht und hier nicht. Möglicherweise würde da eine Wartezeit helfen. Aber ich hab keinen Plan wie die aussehen müßte.

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: 30. Nov. 2013 12: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 inx 10 Unities + Antwort hilfreich

Servus
Gemäß meinen Verständnis sollte ein Warten nicht nötig sein.
Probiere mal folgende Änderung (in deinem TestScript):
Code:
Set Document = CATIA.Documents.Open ("C:\xyz.catdrawing")
'die Zeile mit "Set Document = CATIA.ActivDocument" dann löschen
Gruß
Bernd

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

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

inx
Mitglied



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

Beiträge: 12
Registriert: 28.11.2013

Catia V5 R21
Win XP SP3
Intel Pentium Dual Core 2,7 GHz

erstellt am: 02. Dez. 2013 06: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

Funzt leider auch nicht, dann bringt er:
Object erforderlich: 'document'

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: 02. Dez. 2013 07: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 inx 10 Unities + Antwort hilfreich

Servus
Arbeitest du mit einem CATScript oder einem CATvbs?
Musst du ggf noch die Variable "Document" deklarieren?
Was hast du alles probiert um den Code zum laufen zu bringen (aus zu schreiben "geht nicht")?

Gruß
Bernd

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

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

inx
Mitglied



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

Beiträge: 12
Registriert: 28.11.2013

Catia V5 R21
Win XP SP3
Intel Pentium Dual Core 2,7 GHz

erstellt am: 02. Dez. 2013 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

Ich arbeite CATScript.

Also ich hab zuletzt mit der Makroaufzeichnung die einfachsten Schritte aufgezeichnet und probiert:

Sub CATMain()

CATIA.Documents.Open ("C:xyz.catdrawing")

Set Document = CATIA.ActiveDocument

Dim selection1 As Selection

Set selection1 = Document.Selection

selection1.Search "Weight=0,2mm,all"

End Sub

Wenn ich ihn ausführe, wird die Zeichnung zwar geöffnet aber nichts selektiert. Und da liegt meines erachtens nach auch der Hund für den komplexeren Code begraben. Öffnen und in dxf umwandeln geht ja, nur nicht die Selektierung mit anschließender Bearbeitung. Die wird einfach bisher ausgelassen.

Hatte ja gedacht das eine sleep-Funktion helfen würde.
Tut es aber auch nicht. Hatte vor der Selektion folgendes eingebaut: MsgBox "Makro angehalten, zum weitermachen OK anklicken ..."

Bin nun wieder etwas Ratlos 

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: 02. Dez. 2013 09:26    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 inx 10 Unities + Antwort hilfreich

Servus
Bei mir läuft dieser Code auch bei einer recht großen Zeichnung ohne eine Warteschleife:
Code:
Sub CATMain()

Dim Document As Document
Dim selection1 As Selection

Set Document = CATIA.Documents.Open("C:\TestDrawing.catdrawing")

Set selection1 = Document.Selection

selection1.Search "Weight=0,5mm,all"

End Sub


Gruß
Bernd

PS: Ich hab im Code die selektierte Linienstärke verändert.

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

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

inx
Mitglied



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

Beiträge: 12
Registriert: 28.11.2013

Catia V5 R21
Win XP SP3
Intel Pentium Dual Core 2,7 GHz

erstellt am: 02. Dez. 2013 10: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

Hm, sehr komisch.
Ich bekomme heut Nachmittag noch die Version 21 drauf.
Vielleicht hilft das ja schon.

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

inx
Mitglied



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

Beiträge: 12
Registriert: 28.11.2013

Catia V5 R21
Win XP SP3
Intel Pentium Dual Core 2,7 GHz

erstellt am: 10. Jan. 2014 21: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

Hallo,
nach längerer Abwesenheit und vielen Stunden des Probierens und Lernens bin ich schon ziemlich weit gekommen. Das Problem mit dem Öffnen und Bearbeiten lagt schlicht weg and der falschen Dateiendung meines Scriptes. Es war .CADScript statt CATVbs. Nach der Änderung ging es dann.
Es läuft soweit eigentlich einwandfrei, nur bei bestimmten Zeichnungen ändert er mir die Sel4 nicht richtig. Die Farbänderung wird nicht ausgeführt. Wenn ich die Selektion in ein extra Makro zum testen packe und die Zeichnung händisch öffne, macht er gar nix. Erst wenn ich nach dem öffnen in die Zeichnung klicke wird die Änderung ausgeführt.
Ich habe es auch schon mit allen möglich Aktivierungen von Views und Sheets, dem erstellen von Punkten usw. probiert, alles ohne Erfolg. Weiß irgendjemand Rat?
Dank im Vorraus.

Hier noch der aktuelle Code:

Sub CATMain()

CATIA.DisplayFileAlerts = False

Eingabe = ""
Eingabe = InputBox("Bitte geben Sie den Oeffnungs Ort ein.")

Ausgabe = Eingabe + "\Dxf-Files"
CATIA.FileSystem.CreateFolder(Ausgabe)

Set oFileSystem = CATIA.FileSystem
Set oFolder = oFileSystem.GetFolder(Eingabe)

FileSep = oFileSystem.FileSeparator

Pfad = oFolder.Path + FileSep

F = 0

For i = 1 To oFolder.Files.Count
Set oFile = oFolder.Files.Item(i)

If Right(oFile.Name, 10) = "CATDrawing" Then
Name = Left(oFile.Name, Len(oFile.Name) - 11)
Datei = Pfad + Name + ".CATDrawing"
F = F + 1
Dim oActiveDoc
Set oActiveDoc = CATIA.Documents.Open(Datei)

Set oDoc = CATIA.ActiveDocument
Set Sel1 = oDoc.Selection
Sel1.Search "(Name=*ARROW*+*Punkt*+*Bemaßung*+*Referenzkreis*+*Bereichsfüllung*+*Text*),all"
Sel1.VisProperties.SetLayer catVisLayerBasic, 1
Sel1.VisProperties.SetRealColor catVisRealColor=0,220,0,0
Sel1.Clear

Set Sel2 = oDoc.Selection
Sel2.Search "(Name=*GeneriertesElement*+*Linie* & Weight=0,2mm),all"
Sel2.VisProperties.SetRealColor catVisRealColor=255,255,255,0
Sel2.VisProperties.SetLayer catVisLayerBasic, 3
Sel2.Clear

Set Sel3 = oDoc.Selection
Sel3.Search "(Name=*STAMP*+*2D*+*Variante*),all"
Sel3.VisProperties.SetRealColor catVisRealColor=255,255,255,0
Sel3.VisProperties.SetLayer catVisLayerBasic, 3
Sel3.Clear

Set Sel4 = oDoc.Selection
Sel4.Search "(Weight=0,4mm),all"
Sel4.VisProperties.SetRealWidth 1, 0
Sel4.VisProperties.SetLayer catVisLayerBasic, 2
Sel4.VisProperties.SetRealColor catVisRealColor=255,255,255,0 'diese Änderung wird mal fett ignoriert  
Sel4.Clear

Set Sel5 = oDoc.Selection
Sel5.Search "(Name=*Schaumring*+*Kreuzschlitz*+*Kreis*-*Referenzkreis*+*Variante*),all"
Sel5.VisProperties.SetRealColor catVisRealColor=255,255,255,0
Sel5.VisProperties.SetLayer catVisLayerBasic, 2
Sel5.Clear

Set Sel6 = oDoc.Selection
Sel6.Search "Color='(0,0,0)',all"
Sel6.VisProperties.SetLayer catVisLayerBasic, 2
Sel6.Clear

Set dSheets = oDoc.Sheets
Set dSheet = dSheets.ActiveSheet
Set pageSetup = dSheet.PageSetup
pageSetup.color = catColorMonochrome
dSheet.PrintOut

Set Sel7 = oDoc.Selection
Sel7.Search "(Name=*Scale*),all"
If Sel7.Count > 0 Then
SC1 = Sel7.Item(1).Value.Name
SC2 = Sel7.Item(1).Value.Text
Sel7.Clear
End If

Set oView = CATIA.ActiveDocument.Sheets.ActiveSheet.Views
Set ScText1 = CATIA.ActiveDocument.Sheets.ActiveSheet.Views.Item(2).Texts
View = "nicht gefunden"

For j = 1 to oView.Count
If oView.Item(j).Name = "Vorderansicht" or oView.Item(j).Name = "FRONT VIEW" or oView.Item(j).Name = "VIEW LOOKING" Then
ViewName = oView.Item(j).Name
Scale1 = oDoc.Sheets.ActiveSheet.Views.Item(ViewName).Scale
Faktor1 = 100*Scale1
FN = Left(oDoc.Name, Len(oDoc.Name) - 14)
oDoc.ExportData Ausgabe+"\"+FN & "_" & Faktor1, "dxf"
View = "gefunden"
'MsgBox "View"
End If
Next

If View = "nicht gefunden" Then
For k = 1 To ScText1.Count
Set ScText2 = ScText1.Item(k)
If ScText2.Name = SC1 Then
Faktor2 = 100*Left (SC2, Len(SC2) - 2) / Right(SC2, Len(SC2) - 2)
FN = Left(oDoc.Name, Len(oDoc.Name) - 14)
oDoc.ExportData Ausgabe+"\"+FN & "_" & Faktor2, "dxf"
View = "gefunden"
'MsgBox "Text"
End If
Next
End If

If View = "nicht gefunden" Then
Do
MSInfo = "Bitte geben Sie einen Maßstab"& vbCr &"in folgenden Format ein, z.B.: 1:5"
MSVorgabe = "0:0"
MSEingabe = inputbox(MSInfo, "Maßstab-Eingabebox", MSVorgabe)

If Len(MSEingabe) = 3 Then
MSL = Left(MSEingabe, Len(MSEingabe) - 2)
MSLNum = IsNumeric(MSL)
MSR = Right(MSEingabe, Len(MSEingabe) - 2)
MSRNum = IsNumeric(MSR)
MSMid = Mid(MSEingabe,2,1)
End If

Loop until (Len(MSEingabe) = 3) And (MSMid = ":") And (MSLNum = True) And (MSRNum = True) And Not (MSEingabe = "")

MS = Left(MSEingabe, Len(MSEingabe) - 2) / Right(MSEingabe, Len(MSEingabe) - 2) * 100
FN = Left(oDoc.Name, Len(oDoc.Name) - 14)
oDoc.ExportData Ausgabe+"\"+FN & "_" & MS, "dxf"
End If

oDoc.Close

End If

Next

If Err.Number = 0 Then
    MsgText = "Abgeschlossen, " & F & " dxf" & " Dateien erstellt in " & Ausgabe
Else: MsgText = "Macro Save had errors"
End If
    MsgBox MsgText
CATIA.DisplayFileAlerts = True
On Error GoTo 0

End Sub

[Diese Nachricht wurde von inx am 10. Jan. 2014 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: 10. Jan. 2014 21: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 Nur für inx 10 Unities + Antwort hilfreich

Servus
Wie du die Farben änderst kommt mir sonderbar vor. Probiere es mal so:
Code:
Sel3.VisProperties.SetRealColor 255, 255, 255, 0
Gruß
Bernd

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

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

inx
Mitglied



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

Beiträge: 12
Registriert: 28.11.2013

Catia V5 R21
Win XP SP3
Intel Pentium Dual Core 2,7 GHz

erstellt am: 11. Jan. 2014 11:11    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

@Bernd

Danke, werd ich Montag mal probieren.
Bin natürlich auch Dankbar für jeden Vorschlag der das Macro verbessert.

Gruß inx

[Diese Nachricht wurde von inx am 11. Jan. 2014 editiert.]

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

Berges
Mitglied
Techniker


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

Beiträge: 119
Registriert: 16.08.2001

Catia V5 R24/ Sp1 unter WIN 7

erstellt am: 24. Jan. 2014 12:59    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 inx 10 Unities + Antwort hilfreich


FARBE.zip

 
Hallo,

Habe mal vor einiger Zeit als Übung ein Visual Basic Programm geschrieben.

Vielleicht hilft die das weiter.

Ob alles richtig ist weis ich nicht aber es läuft bei mir.


Gruß

Ralf

------------------
KOBUE

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