Autor
|
Thema: schwarzem Text in Annotated view (1928 mal gelesen)
|
iscariot Mitglied Engineer
Beiträge: 10 Registriert: 28.03.2012 Intel Core 2 Quad CPU Q8300 / 2.5 GHz / 3GB Win 7 Ultimate - 32bit CATIA V5 R16
|
erstellt am: 11. Apr. 2012 21:37 <-- editieren / zitieren --> Unities abgeben:
Ich möchte schwarzem Text in einer Annotated view machen, aber es kommt automatisch rot. Wie kann ich die Farbe ändern? Ich fand dieses Makro in der Dokumentation: ' COPYRIGHT DASSAULT SYSTEMES 2001 Option Explicit ' *********************************************************************** ' Purpose : Create an approbation stamp. ' Assumptions : A CATProduct document should be active. ' Author : ' Languages : VBScript ' Locales : English ' CATIA Level : V5R6 ' *********************************************************************** Sub CATMain() Const CHAR_HEIGHT = 0.05 Const CHAR_WIDTH = 0.03 Const ANCHOR_HEIGHT = -0.9 Const ANCHOR_WIDTH = 0.0 Const EPSILON = 0.5 'Acquire the name of the Responsible Dim sRespName As String sRespName = "John SMITH" 'Default value sRespName = InputBox("What is your name ?", "Responsible name", sRespName) If sRespName <> "" Then ' Retrieve the AnnotatedViews collection Dim cAnnotatedViews As AnyObject Set cAnnotatedViews = CATIA.ActiveDocument.Product.GetTechnologicalObject("AnnotatedViews") ' Create the AnnotatedView Dim oAnnotatedView As AnyObject Set oAnnotatedView = cAnnotatedViews.Add ' Retrieve the Marker2Ds collection Dim cMarker2Ds As Marker2Ds Set cMarker2Ds = oAnnotatedView.Marker2Ds ' Create the text Dim dPosition2(1) dPosition2(0) = ANCHOR_WIDTH dPosition2(1) = ANCHOR_HEIGHT Dim oMarker2DText As Marker2D Dim sText As String sText = "ACME, Approved by " & sRespName & ", " & Cstr(Now) Set oMarker2DText = cMarker2Ds.Add2DText (dPosition2, sText) ' Create the frame Dim dPosition4(3) dPosition4(0) = ANCHOR_WIDTH - CHAR_WIDTH*EPSILON dPosition4(1) = ANCHOR_HEIGHT + CHAR_HEIGHT*EPSILON dPosition4(2) = ANCHOR_WIDTH + CHAR_WIDTH*(Len(sText) +EPSILON) dPosition4(3) = ANCHOR_HEIGHT - CHAR_HEIGHT*(1 + EPSILON) Dim oMarker2DRectangle As Marker2D Set oMarker2DRectangle = cMarker2Ds.Add2DRectangle(dPosition4, 0) ' Update the view oAnnotatedView.Update ' Apply the view CATIA.ActiveDocument.GetWorkbench("NavigatorWorkbench").View oAnnotatedView End If End Sub
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: 11. Apr. 2012 23:32 <-- editieren / zitieren --> Unities abgeben: Nur für iscariot
|
iscariot Mitglied Engineer
Beiträge: 10 Registriert: 28.03.2012 Intel Core 2 Quad CPU Q8300 / 2.5 GHz / 3GB Win 7 Ultimate - 32bit CATIA V5 R16
|
erstellt am: 12. Apr. 2012 20:45 <-- editieren / zitieren --> Unities abgeben:
Ich habe bereits versucht mit der Selektion: Dim sel As Selection Set sel = CATIA.ActiveDocument.Selection Call sel.VisProperties.SetRealColor(0, 0, 0, 0) Aber ich möchte automatisch auf schwarzem Text zu erstellen. Ich lese die andere Seite von Ihnen, aber ich verstehe nicht, wie ich kann, dass auf meine Bedürfnisse anzupassen. 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: 12. Apr. 2012 21:02 <-- editieren / zitieren --> Unities abgeben: Nur für iscariot
Servus Vermutlich musst den deinen Text selektieren, und dann einfärben. Etwa so (ungetestet): Code: ... Dim sel As Selection Set sel = CATIA.ActiveDocument.Selection sel.clear 'alles deselektieren sel.add oMarker2DText 'dein erstellten Text selektieren Call sel.VisProperties.SetRealColor(0, 0, 0, 0) 'einfärben sel.clear 'alles deselektieren ...
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
iscariot Mitglied Engineer
Beiträge: 10 Registriert: 28.03.2012 Intel Core 2 Quad CPU Q8300 / 2.5 GHz / 3GB Win 7 Ultimate - 32bit CATIA V5 R16
|
erstellt am: 12. Apr. 2012 21:28 <-- editieren / zitieren --> Unities abgeben:
|
iscariot Mitglied Engineer
Beiträge: 10 Registriert: 28.03.2012 Intel Core 2 Quad CPU Q8300 / 2.5 GHz / 3GB Win 7 Ultimate - 32bit CATIA V5 R16
|
erstellt am: 15. Apr. 2012 11:05 <-- editieren / zitieren --> Unities abgeben:
|
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 16. Apr. 2012 11:16 <-- editieren / zitieren --> Unities abgeben: Nur für iscariot
Hm? Was erzählst Du da? Bernd hat Dir doch schon die richtige Methode dafür gegeben, hier meine Funktion: Code:
Private Sub setColorToWithe(ByRef i_selWork As INFITF.Selection, ByRef i_anyObjToInk) i_selWork.Clear i_selWork.Add i_anyObjToInk Call i_selWork.VisProperties.SetVisibleColor(255, 255, 255, 1) End Sub
In dem Fall ist mein Objekt vom Typ AnnotationTypeLib.Annotation Vielleicht ist in Deinen Settings irgendwas gesperrt. ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
iscariot Mitglied Engineer
Beiträge: 10 Registriert: 28.03.2012 Intel Core 2 Quad CPU Q8300 / 2.5 GHz / 3GB Win 7 Ultimate - 32bit CATIA V5 R16
|
erstellt am: 17. Apr. 2012 19:02 <-- editieren / zitieren --> Unities abgeben:
Ich habe den Code von Bernd getestet und es funktioniert nicht. Das Makro hält an dieser Linie: "sel.add oMarker2DText 'dein erstellten Text selektieren" Sub CATMain()
Const CHAR_HEIGHT = 0.05 Const CHAR_WIDTH = 0.03 Const ANCHOR_HEIGHT = -0.9 Const ANCHOR_WIDTH = 0.0 Const EPSILON = 0.5 'Acquire the name of the Responsible Dim sRespName As String sRespName = "John SMITH" 'Default value sRespName = InputBox("What is your name ?", "Responsible name", sRespName) If sRespName <> "" Then ' Retrieve the AnnotatedViews collection Dim cAnnotatedViews As AnyObject Set cAnnotatedViews = CATIA.ActiveDocument.Product.GetTechnologicalObject("AnnotatedViews") ' Create the AnnotatedView Dim oAnnotatedView As AnyObject Set oAnnotatedView = cAnnotatedViews.Add ' Retrieve the Marker2Ds collection Dim cMarker2Ds As Marker2Ds Set cMarker2Ds = oAnnotatedView.Marker2Ds ' Create the text Dim dPosition2(1) dPosition2(0) = ANCHOR_WIDTH dPosition2(1) = ANCHOR_HEIGHT Dim oMarker2DText As Marker2D Dim sText As String sText = "ACME, Approved by " & sRespName & ", " & Cstr(Now) Set oMarker2DText = cMarker2Ds.Add2DText (dPosition2, sText) ' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Dim sel As Selection Set sel = CATIA.ActiveDocument.Selection sel.clear 'alles deselektieren sel.add oMarker2DText 'dein erstellten Text selektieren ! funktioniert nicht ! Call sel.VisProperties.SetRealColor(0, 0, 0, 0) 'einfärben sel.clear 'alles deselektieren ' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ' Update the view oAnnotatedView.Update ' Apply the view CATIA.ActiveDocument.GetWorkbench("NavigatorWorkbench").View oAnnotatedView End If End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 18. Apr. 2012 09:04 <-- editieren / zitieren --> Unities abgeben: Nur für iscariot
Hm... gut okay, hatte es mit Annotations verwechselt. Dann kann ich nur noch empfehlen, das manuell mal zu testen, was für ein Objekt Du da selektiert hast, bevor Du einfärbst. Also manuell mal selektieren und schauen was in der Selection ist, oder Dir über die Suchfunktion dne Typ des Objektes zurückgeben lassen, sofern sich das Objekt selektieren lässt. Edit: Habe es mir noch einmal etwas näher angeschaut. Ich vermute, man muss es erst sichtbar machen Dim sel As Object Set sel = CATIA.ActiveDocument.Selection oAnnotatedView.Update Dim navigatorWorkbench1 As NavigatorWorkbench Set navigatorWorkbench1 = CATIA.ActiveDocument.GetWorkbench("NavigatorWorkbench") navigatorWorkbench1.View oAnnotatedView sel.Clear 'alles deselektieren Call sel.Add(oMarker2DText) 'dein erstellten Text selektieren ! funktioniert nicht ! Call sel.VisProperties.SetRealColor(0, 0, 0, 0) 'einfärben sel.Clear 'alles deselektieren
aber auch das hat noch nicht zum Erfolg geführt... :-( Manuell geht es aber über die Selection, jedoch ist das Marker2D-Objekt selbst nicht weiter greifbar und man kann auch die Suchfunktion nicht danach bemühen, das finde ich komisch. Wenn ich es manuell selektiere, dann ist jedoch exakt das richtige Marker2D-Objekt in der Selection und das macht keinen Sinn, also entweder ganz oder gar nicht. :-) Eventuell hat hier Dassault vergessen das Objekt an der richtigen Stelle zu registrieren... sieht sowieso alles so aus, als hätte es der Praktikant programmiert. :-) ------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing [Diese Nachricht wurde von HoBLila am 18. Apr. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |