Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Stempel Problem ModifiableInInstance

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:  Stempel Problem ModifiableInInstance (1163 mal gelesen)
gunngir
Mitglied
Technischer Produktdesigner


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

Beiträge: 17
Registriert: 17.06.2014

Catia V5R19 SP9 64Bit

erstellt am: 05. Aug. 2014 12:25    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 liebe CAD-Gemeinde

Leider habe ich ein Problem mit einem Makro.
Das Makro soll alle Stempel einer geöffneten CATDrawing-Datei auslesen.
Da einige Textfelder von einigen Stempeln nicht in der Instanz modifizierbar sind, kann ich diese nicht in einem Schub auslesen.

Gibt es eine Möglichkeit, ALLE Textfelder eines Stempels nacheinander durchzugehen, aber ohne die Unterscheidung, ob diese in der Instanz modifizierbar sind oder nicht?

Hier der momentane, unvollständige Quellcode:

(Option Explicit, usw. kommt bei mir erst zum Schluss)
Public Sub CATMain()
    Dim drawingComponent1 'As DrawingComponent
    Dim abc
    Dim iModifiableObjectsCount 'As Integer
    Dim iCurrModObj 'As Integer
   
Set DrawingDocument = CATIA.ActiveDocument
Set DrawingSheet = DrawingDocument.Sheets.ActiveSheet
Views_Max = DrawingSheet.Views.Count
For views_counter = 1 To Views_Max
    view_name = LCase(DrawingSheet.Views.Item(views_counter).Name)
    If view_name <> LCase("main view") And view_name <> LCase("background view") Then
        Set View = DrawingSheet.Views.Item(views_counter)
        Items_Max = View.Components.Count
       


        For item_counter = 1 To Items_Max
            Set DrawingComponent = View.Components.Item(item_counter)
            iModifiableObjectsCount = DrawingComponent.GetModifiableObjectsCount
            For iCurrModObj = 1 To iModifiableObjectsCount
                Set abc = DrawingComponent.GetModifiableObject(iCurrModObj)
                abc.Text = "^" 'Überprüfung, ob der Text greifbar und veränderbar ist. Unveränderte Inhalte werden nicht abgegriffen
            Next 'iCurrModObj
        Next 'Item_Counter
    End If
Next 'views_counter
End Sub

Nachtrag:
Meine bisherigen Versuche waren unter anderem :
View.components.item(nummer) => Keine Texte, Es gibt nur "CompRef"
Jeden Text von View.components.item(nummer).compref.texts.item(nummer2) SetModifiableIn2DComponentInstances setzen
=> Leider fand ich bis jetzt noch keine Möglichkeit,herauszufinden, ob die Instanz bereits modifizierbar ist. Dies braucht ewig zu rechnen.

[Diese Nachricht wurde von gunngir am 05. Aug. 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: 05. Aug. 2014 12:52    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 gunngir 10 Unities + Antwort hilfreich

Servus
Solltest du nicht einfach über "CompRef" des 2D-Details auf die "Referen-Ansicht" (auf dem Detailblatt) zugreifen können?
Diese sollte wieder eine Texts-Collection besitzen. Allerdings erhältst du natürlich bei "GetModifiableObject" definierten Texten den ursprünglichen Textinhalt der Vorlage. Deshalb musst du  wohl beide Wege parallel (oder nacheinander) zum auslesen verwenden.
Was hast du mit dem auslesen vor?

Gruß
Bernd

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

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

gunngir
Mitglied
Technischer Produktdesigner


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

Beiträge: 17
Registriert: 17.06.2014

Catia V5R19 SP9 64Bit

erstellt am: 05. Aug. 2014 13: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

Ich will die Texte eines Stempels auslesen und in eine Excel-Datei schreiben.

Diese Excel-Datei wird in einem weiteren Schritt wiederum ausgewertet und mit anderen Dateien verglichen, usw.

Geht es nicht auch, dass ich die Elemente eines Stempels herausfinden kann, die noch nicht "Modifiable in Instance" sind und diese modifizierbar mache - und danach die Auswertung des Stempels mit ModifiableObjects laufen lasse?

Leider habe ich noch keine Möglichkeit gefunden, dass man über VBA herausfinden kann, ob ein Objekt noch nicht in Instanz modifizierbar ist.

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: 05. Aug. 2014 13: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 gunngir 10 Unities + Antwort hilfreich

Servus
Schau dir mal die Methode "GetModifiableIn2DComponentInstances" an. (Für die Texte in der Referenzansicht).
Ist es das was du suchst?

Gruß
Bernd

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

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

gunngir
Mitglied
Technischer Produktdesigner


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

Beiträge: 17
Registriert: 17.06.2014

Catia V5R19 SP9 64Bit

erstellt am: 05. Aug. 2014 15:17    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

hat mir leider nicht weiter geholfen.
Werde mich wohl mit der Methode:

drawingComponent.ExplodeAndSelect
und
Set ExplodedObj = objSel.Item2(exploded_counter)
zufrieden geben müssen.

Dauert in der Berechnung zwar länger und die Datei muss ohne Speichern sofort nach Ausführung beendet werden.
Aber immerhin funktioniert die Variante ohne 2 Durchläufe von verschiedenen Schleifen.(Hoffentlich)

Danke für die Hilfe  Hat mir Inspiration für das nächste Makro gegeben.

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