Autor
|
Thema: Im Textfeld die Schriftfarbe Gelb zuweisen (2318 mal gelesen)
|
cChris Mitglied Konstrukteur
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 / zitieren --> Unities abgeben:
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
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 / zitieren --> Unities abgeben: Nur für cChris
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
Beiträge: 1212 Registriert: 17.07.2009
|
erstellt am: 24. Jan. 2011 16:59 <-- editieren / zitieren --> Unities abgeben: Nur für cChris
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
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 / zitieren --> Unities abgeben: Nur für cChris
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
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 / zitieren --> Unities abgeben:
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
Beiträge: 1212 Registriert: 17.07.2009
|
erstellt am: 24. Jan. 2011 18:09 <-- editieren / zitieren --> Unities abgeben: Nur für cChris
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
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 / zitieren --> Unities abgeben: Nur für cChris
|
cChris Mitglied Konstrukteur
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 / zitieren --> Unities abgeben:
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
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 24. Jan. 2011 18:36 <-- editieren / zitieren --> Unities abgeben: Nur für cChris
|