|  |  | 
|  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. | 
|  |  | 
|  | KISTERS 3DViewStation: Geniale 3D-Visualisierung für intuitiven HMI Einsatz, eine Pressemitteilung 
 | 
| Autor | Thema:  Drawing Textfeld FrameType ändern (2386 /  mal gelesen) | 
 | InFlames Mitglied
 techn. Productdesigner
 
  
 
      Beiträge: 72Registriert: 22.09.2014
 Windows 7 ProfessionalCatia V5R26
 |    erstellt am: 31. Mrz. 2016 11:25  <-- editieren / zitieren -->    Unities abgeben:            
  Servus, ich programmiere gerade ein VBA-Makro um Maße / Textfelder usw. nachbestimmten Richtlinien einzustellen.
 Nun möchte ich selektierte Textfelder rot einfärben und den Rahmen (Frame)Diamond aktivieren. Die Textfelder werden richtig vom VBA eingelesen
 und es werden auch alle Werte Einstellungen usw richtig erkannt.
 Allerdings stimmt irgendetwas nicht an der Zeile in der ich den
 CatTextFrameType ändern möchte. Weiß jemand wie das geht?!
 Set oDoc = CATIA.ActiveDocument
 '        On Error Resume Next'        CATIA.HSOSynchronized = False
 Set oSel = oDoc.Selection
                 Dim sFilter(0)sFilter(0) = "AnyObject"
 sStatus = oSel.SelectElement2(sFilter, "", True)
                 If sStatus = "Normal" ThenFor i = 1 To oSel.Count
 Set oText = oSel.Item(i).Value
 oText.CatTextFrameType = catDiamond
 Set VisPropertySet = oSel.VisProperties
 VisPropertySet.SetRealColor 255, 0, 0, 0
 Next
 Else
 Exit Sub
 End If
 '        CATIA.HSOSynchronized = True'        On Error GoTo 0
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | InFlames Mitglied
 techn. Productdesigner
 
  
 
      Beiträge: 72Registriert: 22.09.2014
 Windows 7 ProfessionalCatia V5R26
 |    erstellt am: 31. Mrz. 2016 11:30  <-- editieren / zitieren -->    Unities abgeben:            
  Ach echt ey das war doch wieder klar. Stunden lang mach ich an dem ****** rum und Sekunden nach dem ich hier mal nachfrage komme ich spontan auf die Lösung     Set oDoc = CATIA.ActiveDocument
         On Error Resume NextCATIA.HSOSynchronized = False
 Set oSel = oDoc.Selection
                 Dim sFilter(0)sFilter(0) = "AnyObject"
 sStatus = oSel.SelectElement2(sFilter, "", True)
                 If sStatus = "Normal" ThenFor i = 1 To oSel.Count
 Set oText = oSel.Item(i).Value
 oText.FrameType = CatTextFrameType.catDiamond
 Set VisPropertySet = oSel.VisProperties
 VisPropertySet.SetRealColor 255, 0, 0, 0
 Next
 Else
 Exit Sub
 End If
         CATIA.HSOSynchronized = TrueOn Error GoTo 0
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | joehz Mitglied
 Freiberuflicher Konstrukteur
 
     
 
      Beiträge: 1057Registriert: 25.11.2006
 Win7 Pro 64 + Ubuntu + Irix6.5.20Dell Precision M6600 i7-2960XM 2.7GHz 16GB
 NVidia Quadro M5010
 Catia V5R19
 VB6Pro.SP6/VBA 6.5.1053
 |    erstellt am: 31. Mrz. 2016 12:00  <-- editieren / zitieren -->    Unities abgeben:           Nur für InFlames   
  Hi InFlames, anstatt 
 Code:
 For i = 1 To oSel.Count
 Set oText = oSel.Item(i).Value
 oText.FrameType = CatTextFrameType.catDiamond
 Set VisPropertySet = oSel.VisProperties
 VisPropertySet.SetRealColor 255, 0, 0, 0
 Next
 
 
 probier bitte Code:
 For i = 1 To oSel.Count
 Set oText = oSel.Item(i).Value
 oText.FrameType = CatTextFrameType.catDiamond
 Next
    Set VisPropertySet = oSel.VisPropertiesVisPropertySet.SetRealColor 255, 0, 0, 0
 
 
 Tschau,Joe
 ------------------Inoffizielle Catia Hilfeseite
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | InFlames Mitglied
 techn. Productdesigner
 
  
 
      Beiträge: 72Registriert: 22.09.2014
 Windows 7 ProfessionalCatia V5R26
 |    erstellt am: 31. Mrz. 2016 12:26  <-- editieren / zitieren -->    Unities abgeben:            | 
                        | InFlames Mitglied
 techn. Productdesigner
 
  
 
      Beiträge: 72Registriert: 22.09.2014
 Windows 7 ProfessionalCatia V5R26
 |    erstellt am: 01. Apr. 2016 05:58  <-- editieren / zitieren -->    Unities abgeben:            
  Zu früh gefreut. Unter R24 läufts genau so wie es soll. Unter R19 allerdings nicht.Das Textfeld wird rot eingefärbt, der Frame aber nicht erstellt?!
 Die Typen, Benennungen usw sind aber alle zu R24 identisch und das
 Script läuft ohne Fehler durch. Es wir aber eben nicht das Frame
 Diamond erstellt.
 Weiß jemand woran das liegen kann? Da kein Fehler kommt denke ich maldas R19 die Befehle versteht... Bug?!
 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                        | bgrittmann Moderator
 Konstrukteur
 
         
 
      Beiträge: 12117Registriert: 30.11.2006
 CATIA V5R19 |    erstellt am: 01. Apr. 2016 09:08  <-- editieren / zitieren -->    Unities abgeben:           Nur für InFlames   | 
                        | joehz Mitglied
 Freiberuflicher Konstrukteur
 
     
 
      Beiträge: 1057Registriert: 25.11.2006
 Win7 Pro 64 + Ubuntu + Irix6.5.20Dell Precision M6600 i7-2960XM 2.7GHz 16GB
 NVidia Quadro M5010
 Catia V5R19
 VB6Pro.SP6/VBA 6.5.1053
 |    erstellt am: 01. Apr. 2016 10:09  <-- editieren / zitieren -->    Unities abgeben:           Nur für InFlames   | 
                        | InFlames Mitglied
 techn. Productdesigner
 
  
 
      Beiträge: 72Registriert: 22.09.2014
 Windows 7 ProfessionalCatia V5R26
 |    erstellt am: 02. Apr. 2016 11:23  <-- editieren / zitieren -->    Unities abgeben:            
  Servus, vielen Dank.Die Makros mit den Maßen funktionieren wunderbar und habe ich auch im
 Einsatz. Bei Textfeldern bringen die aber nichts.
 Es ist tatsächlich so. Wenn vorher ein Frame definiert war funktioniertes. Dann kann man da wohl nichts machen...
 Trotzdem vielen Dank :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP | 
                       
 | joehz Mitglied
 Freiberuflicher Konstrukteur
 
     
 
      Beiträge: 1057Registriert: 25.11.2006
 Win7 Pro 64 + Ubuntu + Irix6.5.20Dell Precision M6600 i7-2960XM 2.7GHz 16GB
 NVidia Quadro M5010
 Catia V5R19
 VB6Pro.SP6/VBA 6.5.1053
 |    erstellt am: 03. Apr. 2016 15:13  <-- editieren / zitieren -->    Unities abgeben:           Nur für InFlames   |