Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Im Textfeld die Schriftfarbe Gelb zuweisen

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:  Im Textfeld die Schriftfarbe Gelb zuweisen (2318 mal gelesen)
cChris
Mitglied
Konstrukteur


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

Beiträge: 53
Registriert: 27.09.2010

CATIA V5 R19
Microsoft Windows XP; Professionalx64 Edition; Version 2003; SP 2; Intel Core2 Duo CPU E8600 3.33Ghz; 7.98Gb RAM
CATScript

erstellt am: 24. Jan. 2011 15: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 versuche mittels Macro die Schriftfarbe Gelb zu erzeugen. Leider klappt das nicht ganz. Kann mir bitte jemand helfen ?

Code:

Sub CATMain()

Dim oDoc As Document
Set oDoc = CATIA.ActiveDocument
Dim oSheets As Sheets
Set oSheets = oDoc.Sheets

For i = 1 To oSheets.count
Dim oSheet As Sheet
Set oSheet = oSheets.Item(i)     
Next

Dim oViews as Views
Set oViews = oSheet.Views
Dim oView as DrawingView
Set oView  =  oViews.ActiveView

'**********************************Textfeld einfügen
Dim MyText As DrawingText
Set MyText =oView.Texts.Add("AU_" & CHR(10) &"OP_" & CHR(10) & "_", 600.,420.)

'**********************************Name des Textfeldes
MyText.Name =  "Text"

'**********************************Eigenschaften Textfeld ändern

Dim FontSize as Integer
Dim FontName As String
Dim RealColor As Integer
FontSize = 7
MyText.SetFontSize 0, 0, iFontSize
MyText.SetFontName 0,0, "SSS1"
MyText.SetRealColor 255, 255, 30, 1 'Hier kommt die Fehlermeldung; Das Objekt unterstüzt diese Eigenschaft oder Methode nicht
'***********************************Ankerpunkt des Textfeldes ändern
Dim Anchorpoint As CatTextAnchorPosition
MyText.AnchorPosition = CATMiddleCenter


End Sub


Ich möchte das Problem aber nicht mit einer Selection lösen!

Vielen Dank im vorraus.

------------------
Mit freundlichen Grüßen,

cChris

[Diese Nachricht wurde von cChris am 24. Jan. 2011 editiert.]

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 24. Jan. 2011 16:46    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 cChris 10 Unities + Antwort hilfreich

Hallo Chris,
wo hast du die Methode her? Das Objekt Drawingtext besitzt diese garnicht.

Code:

Sub CATMain()
    Dim oDoc    As Document
    Dim oSheets 'As Sheets
    Dim oSheet  'As Sheet
    Dim oViews  'As Views
    Dim oView   'As DrawingView
    Dim FontSize As Integer
    Dim FontName As String
    Dim RealColor As Integer
    Dim MyText As DrawingText
    Dim Anchorpoint As CatTextAnchorPosition
   
    Set oDoc = CATIA.ActiveDocument
    Set oSheets = oDoc.Sheets

    For i = 1 To oSheets.Count
        Set oSheet = oSheets.Item(i)

        Set oViews = oSheet.Views
        Set oView = oViews.ActiveView

'**********************************Textfeld einfügen
        Set MyText = oView.Texts.Add("AU_" & Chr(10) & "OP_" & Chr(10) & "_", 600#, 420#)

'**********************************Name des Textfeldes
        MyText.Name = "Text"

'**********************************Eigenschaften Textfeld ändern

        FontSize = 7
        MyText.SetFontSize 0, 0, FontSize
        MyText.SetFontName 0, 0, "SSS1"
        MyText.TextProperties.color = -65281
'***********************************Ankerpunkt des Textfeldes ändern
        MyText.AnchorPosition = catMiddleCenter
    Next
End Sub


So funktioniert der Code. die Farbe und Textproperties werden im Format Long für RGBA verlangt. Die kannst du entweder raussuchen oder über eine Routine selbstberechnen.

Ergänzung: Funktionen wie SetRealColor, die über bestimmte Selektionen oder Zuweisungen verfügbar sind, können nicht einfach für das Objekt verwendet werden. Das Problem ist, dass diese keine Funktion des Objektes ist, sondern der Selektion. Diese Funktion geht dann entsprechend auf die Eigenschaft des jeweiligen Objektes.

------------------
MFG
Rick Schulz

        Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

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

Christian.O
Mitglied
Konstrukteur


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

Beiträge: 1212
Registriert: 17.07.2009

erstellt am: 24. Jan. 2011 16: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 cChris 10 Unities + Antwort hilfreich

Servus Rick,

Zitat:
Original erstellt von RSchulz:
die Farbe und Textproperties werden im Format Long für RGBA verlangt. Die kannst du entweder raussuchen oder über eine Routine selbstberechnen.

ich ändere die Farbe über:

Code:
'***Element zur Selektion hinzufügen
objSel.Add drwText
'***Farbe festlegen
objSel.VisProperties.SetRealColor intRot, intGruen, intBlau, 1

Wobei drwText mein gerade erstellter/hinzugefügter Text ist.


------------------
Mit freundlichen Grüßen aus Tirol
Christian Obholzer

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 24. Jan. 2011 17:06    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 cChris 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Christian.O:
Servus Rick,

ich ändere die Farbe über:

Code:
'***Element zur Selektion hinzufügen
objSel.Add drwText
'***Farbe festlegen
objSel.VisProperties.SetRealColor intRot, intGruen, intBlau, 1

Wobei drwText mein gerade erstellter/hinzugefügter Text ist.


Hallo Christian,
das ist schon klar. Er sagt aber er möchte nicht extra selektieren. ObjSel muss aber eine Selektion sein, da die verwendete Methode "SetRealColor" eine Methode von Object "Selection" ist.

demnach würde es natürlich auch folgendermaßen gehen:

Code:

Sub CATMain()
    Dim oDoc    As Document
    Dim oSheets 'As Sheets
    Dim oSheet  'As Sheet
    Dim oViews  'As Views
    Dim oView  'As DrawingView
    Dim FontSize As Integer
    Dim FontName As String
    Dim RealColor As Integer
    Dim MyText As DrawingText
    Dim Anchorpoint As CatTextAnchorPosition
    Dim oSel as Selection
   
    Set oDoc = CATIA.ActiveDocument
    Set oSheets = oDoc.Sheets

    For i = 1 To oSheets.Count
        Set oSheet = oSheets.Item(i)

        Set oViews = oSheet.Views
        Set oView = oViews.ActiveView

'**********************************Textfeld einfügen
        Set MyText = oView.Texts.Add("AU_" & Chr(10) & "OP_" & Chr(10) & "_", 600#, 420#)

'**********************************Name des Textfeldes
        MyText.Name = "Text"

'**********************************Eigenschaften Textfeld ändern

        FontSize = 7
        MyText.SetFontSize 0, 0, FontSize
        MyText.SetFontName 0, 0, "SSS1"
        oSel.add MyText
        oSel.VisProperties.SetRealColor 255, 255, 0, 1
        oSel.clear
'***********************************Ankerpunkt des Textfeldes ändern
        MyText.AnchorPosition = catMiddleCenter
    Next
End Sub


------------------
MFG
Rick Schulz

    Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

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

cChris
Mitglied
Konstrukteur


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

Beiträge: 53
Registriert: 27.09.2010

CATIA V5 R19
Microsoft Windows XP; Professionalx64 Edition; Version 2003; SP 2; Intel Core2 Duo CPU E8600 3.33Ghz; 7.98Gb RAM
CATScript

erstellt am: 24. Jan. 2011 18:03    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

Guten Abend Rick, Guten Abend Christian,


@Rick: Du bist ein Gott, funktioniert bestens. Jetzt bin ich meinem Ziel ein ganzes Stück weiter gekommen.
10`Unitis für Dich!!

@Christian: Mit der Selektion funktioniert es natürlich auch, allerdings wollte ich diesen Weg nicht gehen.

Ich wünsch euch noch einen schönen Abend.

------------------
Mit freundlichen Grüßen,

cChris

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

Christian.O
Mitglied
Konstrukteur


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

Beiträge: 1212
Registriert: 17.07.2009

erstellt am: 24. Jan. 2011 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 cChris 10 Unities + Antwort hilfreich

Servus,

nur aus reine neugierde (will ja auch noch was dazulernen  ): Warum willst du diesen Weg über die Selektion nicht gehen? 

------------------
Mit freundlichen Grüßen aus Tirol
Christian Obholzer

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 24. Jan. 2011 18: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 Nur für cChris 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Christian.O:
Servus,

nur aus reine neugierde (will ja auch noch was dazulernen   ): Warum willst du diesen Weg über die Selektion nicht gehen? 


Das würde mich allerdings auch interessieren...

------------------
MFG
Rick Schulz

    Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

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

cChris
Mitglied
Konstrukteur


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

Beiträge: 53
Registriert: 27.09.2010

CATIA V5 R19
Microsoft Windows XP; Professionalx64 Edition; Version 2003; SP 2; Intel Core2 Duo CPU E8600 3.33Ghz; 7.98Gb RAM
CATScript

erstellt am: 24. Jan. 2011 18: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 Christian,

Mein Weg ist der, das wenn ein bestimmtes Product selektiert ist, eine Zeichnung abgeleitet und ein Textfeld erzeugt wird.

Da ich mich durch die Selection des Products schon in einer selection befinde, wäre an dieser Stelle Selection.Clear nicht wirklich angebracht. Denke ich zumindest.

Ich bin über den Weg der selection nicht zu einer zufriedenstellenden Lösung gekommen.

------------------
Mit freundlichen Grüßen,

cChris

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: 24. Jan. 2011 18:36    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 cChris 10 Unities + Antwort hilfreich

Servus
AFAIKAs far as i know (So viel ich weiss) hat jedes Dokument seine eigene Selection, nur den Zwischenspeicher (copy) gibt es nur einmal.

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