Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Syntax Search Drafting.Text mit Variable

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:  Syntax Search Drafting.Text mit Variable (1517 mal gelesen)
moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 12. Aug. 2015 07: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

Hallo,

ich möchte einen Textsuche über eine Variable suchen lassen leider bekomme ich den Syntax für die Zeile:

Code:
objSel.Search "Drafting.Text.Name=WKZ_NR"

mit einer Variablen nicht hin.


Code:
Sub CATMain()

    Dim objDoc As Document
    Dim objSel As Selection
    Dim i As Long
    Dim objModelElement As ModelElement
    Dim sTextName As String
   
    sTextName = "WKZ_NR"
    MsgBox sTextName
   
  
    Set objDoc = CATIA.ActiveDocument
    Set objSel = objDoc.Selection
    objSel.Clear
  
    '***EXPLIZITER NAME OHNE WILDCARDS
    CATIA.HSOSynchronized = False
    objSel.Search "Drafting.Text.Name=sTextName"
    CATIA.HSOSynchronized = True
  
    MsgBox "Es wurden " & objSel.Count & " Textfelder selektiert!" + vbNewLine + _
            "Name der Textfelder: " + objSel.Item(1).Value.Name
  
    For i = 1 To objSel.Count
        Set objModelElement = objSel.Item(i).Value.GetItem("ModelElement")
        MsgBox "Interne Name für Textfeld " & CStr(i) + vbNewLine + objModelElement.InternalName
    Next
    objSel.Clear
      


End Sub


Hat jemand einen Tipp für mich.

------------------
Gruß Uwe

Auch Catia ist nur ein Mensch!      

[Diese Nachricht wurde von moppesle am 12. Aug. 2015 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: 12. Aug. 2015 08: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 moppesle 10 Unities + Antwort hilfreich

Servus Uwe
So wie du es geschrieben hast wird nicht der Inhalt der Variabel ausgewertet sondern nur der Variablenname als Sting verwendet (steht in " "):
Code:
objSel.Search "Drafting.Text.Name=" & sTextName & ",all"
Gruß
Bernd

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

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

moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 12. Aug. 2015 12: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

Servus Bernd.

Danke hat geklappt. 

Ich dachte ""Drafting.Text.Name" wäre ein Objekt und kein Text. Da bin ich wohl auf dem falschen Dampfer? Oder? 

Habe noch ein anderes Problem.

In folgendem Code erstelle ich mir Attribut Links zu Textfeldern her, die ein Dummyzeichen haben.
Funzt soweit gut, bis das wenn nur einstellige Werte in den Parametern stehen das Dummyzeichen nicht ersetzt wird.
Hast du dazu auch eine Idee? ...Bestimmt 

Ich möchte später auf den Text eines Bestimmten Detail zugreifen. Wie müßte ich den Code dazu anpassen?


Code:
Sub CreateAtribLink(Param_Name As String, Einfuegeset As Parameters, ZIELSETName As String, TextName As String)

If Parameter_pruefen(Param_Name, Einfuegeset, ZIELSETName) = True Then
    MsgBox "Parameter " & Param_Name & " nicht vorhanden. Bitte Parameter anlegen"
    Exit Sub
  End If
    If Text_pruefen(TextName) = False Then
    MsgBox "Textfeld " & TextName & " nicht vorhanden. Bitte " & TextName & " Textfeld anlegen"
        Exit Sub
Else
    Dim intDrwDocObj As DrawingDocument
    Dim intDrwParametersObj As Parameters
    Dim intDrwParameter 'As Length
    Dim intDrwSheetsObj As DrawingSheets
    Dim intDrwSheetObj As DrawingSheet
    Dim intDrwViewsObj As DrawingViews
    Dim intDrwViewObj As DrawingView
    Dim intDrwTextsObj As DrawingTexts
    Dim intDrwTextObj As DrawingText
    Dim intStartPosLng As Long
    Dim intReplaceLenLng 'As Long
    Dim InParamName
   
 
    Set intDrwDocObj = CATIA.ActiveDocument
    Set intDrwSheetsObj = intDrwDocObj.Sheets
    Set intDrwSheetObj = intDrwSheetsObj.Item(1)
    Set intDrwViewsObj = intDrwSheetObj.Views
    Set intDrwViewObj = intDrwViewsObj.Item(1)
    Set intDrwTextsObj = intDrwViewObj.Texts
    Set intDrwTextObj = intDrwTextsObj.GetItem(TextName)
   
    Set intDrwParametersObj = intDrwDocObj.Parameters
    Set intDrwParameter = intDrwParametersObj.Item(Param_Name)
    'MsgBox intDrwParameter.Value
    intReplaceLenLng = CLng(Len(intDrwParameter.ValueAsString))
 
    intDrwTextObj.InsertVariable intStartPosLng, intReplaceLenLng, intDrwParameter

End If


End Sub



------------------
Gruß Uwe

Auch Catia ist nur ein Mensch!    

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. Aug. 2015 12:58    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 moppesle 10 Unities + Antwort hilfreich

Servus Uwe
zu 1.: Überschreibe doch den Dummy-Text vor dem erstellen des Attibutlinks durch ein Leerzeichen.
zu 2.: Schau mal hier.

Gruß
Bernd

PS: Vielleicht wäre es einfacher/stabiler wenn du deinen Funktion/Unterroutinen gleich die Objekte (Parameter/Textfeld) übergibst anstatt diese dort "neu zu suchen"

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

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

moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 12. Aug. 2015 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

Hallo Bernd,

Punkt 1: habe ich umgesetzt. War noch einfach.
Punkt 2: Kann ich nicht nachvollziehen.Kannst du näher darauf eingehen?

Punkt PS: Ich dachte ich hätte das schon gemacht?! Hast du mal ein Beispiel?

------------------
Gruß Uwe

Auch Catia ist nur ein Mensch!    

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: 13. Aug. 2015 14: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 Nur für moppesle 10 Unities + Antwort hilfreich

Servus Uwe
Anbei ein Beispiel.
Code:
Sub Catmain()

Dim drawingDocument1 As DrawingDocument
Set drawingDocument1 = CATIA.ActiveDocument

Dim drawingSheets1 As DrawingSheets
Set drawingSheets1 = drawingDocument1.Sheets

Dim drawingSheet1 As DrawingSheet
Set drawingSheet1 = drawingSheets1.Item("Blatt .1")

Dim drawingViews1 As DrawingViews
Set drawingViews1 = drawingSheet1.Views

Dim drawingView1 As DrawingView
Set drawingView1 = drawingViews1.Item("Main View")

Dim drawingComponents1 As DrawingComponents
Set drawingComponents1 = drawingView1.Components

Dim drawingComponent1 As DrawingComponent
Set drawingComponent1 = drawingComponents1.Item("Werkstueckkante.1")

SetDrwCompText drawingComponent1, "Text_min_Kehle", "-0,3"

End Sub

Sub SetDrwCompText(DrwComponent As DrawingComponent, StrDrwCompModTextName As String, StrDrwCompModTextValue As String)
    Dim i As Integer
    Dim DrwCompModObj As Variant
   
    For i = 1 To DrwComponent.GetModifiableObjectsCount
        Set DrwCompModObj = DrwComponent.GetModifiableObject(i)
        If DrwCompModObj.Name = StrDrwCompModTextName Then
            DrwCompModObj.Text = StrDrwCompModTextValue
            Exit Sub
        End If
    Next

End Sub


Gruß
Bernd

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

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

moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 13. Aug. 2015 15: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 Bernd,

das Licht im Tunnel wird heller.   

Vielen Dank. Werde es mal bei mir einarbeiten.

------------------
Gruß Uwe

Auch Catia ist nur ein Mensch!    

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

moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 13. Aug. 2015 19: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

Ich bin´s wieder,

Bekomme bei

Code:
Dim drawingComponent1 As DrawingComponent
Set drawingComponent1 = drawingComponents1.Item("WKZ_NR")

ein Automation error.

Hast du ne Idee was es sein könnte?

------------------
Gruß Uwe

Auch Catia ist nur ein Mensch!    

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: 13. Aug. 2015 19: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 moppesle 10 Unities + Antwort hilfreich

Servus
Heißt die Instanz der 2D-Komponente wirklich "WKZ_NR" oder "WKZ_NR.1"?

Gruß
Bernd

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

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

moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 13. Aug. 2015 19: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


13-08-201519-36-12.png

 
Hi

Ja.. oder ich bin wieder auf dem falschen Dampfer. 
Siehe Bild.

Code:
Dim drawingSheet1 As DrawingSheet
Set drawingSheet1 = drawingSheets1.Item("Details")


Dim drawingViews1 As DrawingViews
Set drawingViews1 = drawingSheet1.Views

Dim drawingView1 As DrawingView
Set drawingView1 = drawingViews1.Item("TEXT_PROJEKTINFO")

Dim drawingComponents1 As DrawingComponents
Set drawingComponents1 = drawingView1.Components

Dim drawingComponent1 As DrawingComponent
Set drawingComponent1 = drawingComponents1.Item("WKZ_NR")

SetDrwCompText drawingComponent1, "Text_min_Kehle", "-0,3"


------------------
Gruß Uwe

Auch Catia ist nur ein Mensch!      

[Diese Nachricht wurde von moppesle am 13. Aug. 2015 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: 13. Aug. 2015 19:49    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 moppesle 10 Unities + Antwort hilfreich

Servus
Moment, willst du die Instanz oder die Referenz (das "Orginal" auf dem Detail-Sheet) der 2D-Komponente ändern?
Wenn du die Referenz ändern willst, einfach die View und den Text "normal" ansprechen.

Gruß
Bernd

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

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

moppesle
Ehrenmitglied V.I.P. h.c.
Konstrukteur


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

Beiträge: 3418
Registriert: 28.05.2009

CATIA V5 R19 SP9
WIN 7 64bit

erstellt am: 13. Aug. 2015 20: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

Hi

Jetzt wird es wieder dunkler
Ich möchte den Textwert des Textes ändern der in dem Detailview "TEXT_PROJEKTINFO" ist.

Aber was bewirkt den der nachfolgende Code?

Code:
Dim drawingComponents1 As DrawingComponents
Set drawingComponents1 = drawingView1.Components

Dim drawingComponent1 As DrawingComponent
Set drawingComponent1 = drawingComponents1.Item("WKZ_NR")


------------------
Gruß Uwe

Auch Catia ist nur ein Mensch!    

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: 13. Aug. 2015 20:23    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 moppesle 10 Unities + Antwort hilfreich

Servus
Dieser Code greift auf die 2D-Komponente zu, die in einer "normalen" Ansicht (zB Vorderansicht, oder Vordergrund) eingefügt/vorhanden ist.
Wo änderst du von Hand den Inhalt der 2D-Komponenten? Ich bin davon ausgegangen, dass die 2D-Komponenten direkt aus einem Katalog kommen, und bei der Instanz der Inhalt angepasst wird.

Gruß
Bernd

------------------
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