Autor
|
Thema: Text/Polylinien mittig ausrichten (1842 mal gelesen)
|
White-Fox Mitglied E-Techniker
Beiträge: 24 Registriert: 23.01.2017
|
erstellt am: 25. Jan. 2017 21:11 <-- editieren / zitieren --> Unities abgeben:
Hallo Da ich hier ja schon sofort Hilfe gefunden habe probiere ich es gleich nochmal. Ich hab in einem Drawing einen Text, den ich in eine Skizze kopieren will (über dxf). Das funktioniert jetzt soweit. Jetzt möchte ich den Text mittig (in der Skizze im Part) ausrichten. Vertikal ist kleines Problem, da die Schrifthöhe zwar bekannt ist, aber irgendwie paßt meine Umrechnung nicht ganz. Aber wie mache ich das horizontal? Und mache ich das am Besten erst in der Skizze oder schon im Drawing? Ich hab hier ein dickes blaues Catia-Makro-Buch, aber zum Drawing steht da leider so gut wie gar nix. Gruß White_Fox 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: 25. Jan. 2017 21:27 <-- editieren / zitieren --> Unities abgeben: Nur für White-Fox
Servus Woher kommen die Konturen für den Text? Wenn diese auch aus Catia kommen würde ich den Text vor dem Export schon mit AnchorPosition (catMiddleCenter) und der Position (auf 0,0) ausrichten. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
White-Fox Mitglied E-Techniker
Beiträge: 24 Registriert: 23.01.2017
|
erstellt am: 25. Jan. 2017 21:44 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 25. Jan. 2017 22:01 <-- editieren / zitieren --> Unities abgeben: Nur für White-Fox
|
roccat Mitglied Konstrukteur
Beiträge: 172 Registriert: 19.02.2010 WinXP/Win7 Office XP/2007 Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR VB .Net 2010
|
erstellt am: 26. Jan. 2017 12:54 <-- editieren / zitieren --> Unities abgeben: Nur für White-Fox
Hallo White-Fox, wie Bernd schon geschrieben hat. mfG Mario Code:
Option ExplicitSub CATMain() Dim MyDrawing As DrawingDocument Dim MySheets As DrawingSheets Dim MySheet As DrawingSheet Dim MyViews As DrawingViews Dim MyView As DrawingView Dim MyTexts As DrawingTexts Dim MyText As DrawingText Set MyDrawing = CATIA.ActiveDocument Set MySheets = MyDrawing.Sheets Set MySheet = MySheets.Item(1) Set MyViews = MySheet.Views Set MyView = MyViews.Item(1) Set MyTexts = MyView.Texts Set MyText = MyTexts.Item(1) MyText.X = 0 MyText.Y = 0 MyText.AnchorPosition = catMiddleCenter End Sub End Sub
------------------ Wenn das die Lösung sein soll, will ich mein Problem zurück !! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
White-Fox Mitglied E-Techniker
Beiträge: 24 Registriert: 23.01.2017
|
erstellt am: 27. Jan. 2017 10:25 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 27. Jan. 2017 10:27 <-- editieren / zitieren --> Unities abgeben: Nur für White-Fox
|
White-Fox Mitglied E-Techniker
Beiträge: 24 Registriert: 23.01.2017
|
erstellt am: 27. Jan. 2017 11:03 <-- editieren / zitieren --> Unities abgeben:
Die Doku ist sehr nützlich. Auch schön und übersichtlich aufgebaut. Trortzdem hab ich noch zwei neue Fragen: 1. Wie kann ich eine Verknüpfung aus Elementen in einer Skizze erstellen? 2. Wie kann ich diese Elemente in meiner Skizze um einen Punkt drehen? Der Makro-Editor ist leider nutzlos. 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: 27. Jan. 2017 11:13 <-- editieren / zitieren --> Unities abgeben: Nur für White-Fox
Servus zu 1) siehe zB hierzu 2) IMHO gibt es keine Transformationsfunktionen innerhalb einer Skizze. Also entweder dies selbst programmieren oder die Ausrichtung der Skizze drehen (zB SetAbsoluteAxisData). Zusätzlich zum Makroeditor solltest du auch das Watchfenster bzw ggf auch die Objektauflösung im VBA-Editor nutzen. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
White-Fox Mitglied E-Techniker
Beiträge: 24 Registriert: 23.01.2017
|
erstellt am: 27. Jan. 2017 11:35 <-- editieren / zitieren --> Unities abgeben:
Da meldet Catia erst "Unbekannter Befehl" und bricht dann ab. Code: CATIA.Documents.Item(.Count).Selection.Clear With .Item(.Count).Part.Bodies.Item("IC-Gehäuse").Sketches.Item("Skizze Schriftzug") .OpenEdition i = 2 Do Until i > .GeometricElements.Count CATIA.Documents.Item(CATIA.Documents.Count).Selection.Add (.GeometricElements.Item(i)) i = i + 1 Loop CATIA.StartCommand "Fix Together" .CloseEdition End With
Oder muß ich der Selection noch etwas mitgeben? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 27. Jan. 2017 12:25 <-- editieren / zitieren --> Unities abgeben: Nur für White-Fox
|
roccat Mitglied Konstrukteur
Beiträge: 172 Registriert: 19.02.2010 WinXP/Win7 Office XP/2007 Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR VB .Net 2010
|
erstellt am: 27. Jan. 2017 13:02 <-- editieren / zitieren --> Unities abgeben: Nur für White-Fox
Hallo White-Fox, "Catia.StartCommand" würde ich vermeiden oder anders gesagt es wird meistens Probleme geben. Der StartCommand ist wie eine externe Befehlseingabe und läuft nicht mit deinem Makro synchron. Ich vermute mal dein Makro hat den Sketch schon geschlossen und danach erhält Catia erst den Befehl "Fix Together". StartCommand funktioniert Problemlos als letzte Zeile im Makro. Würdest du also vor deim CloseEdition das Makro mit "End" beenden, sollte das "FixTogether" funktionieren. Varianten mit Pausen im Makro funktionieren nach meiner Erfahrung eher schlecht alse recht. Versuch es mal über die constrains (z.B. Fix), sowas z.B.: Code:
Dim constraint9 As Constraint Set constraint9 = constraints1.AddMonoEltCst(catCstTypeReference, reference2)
mfG Mario ------------------ Wenn das die Lösung sein soll, will ich mein Problem zurück !! [Diese Nachricht wurde von roccat am 27. Jan. 2017 editiert.] [Diese Nachricht wurde von roccat am 27. Jan. 2017 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 27. Jan. 2017 15:44 <-- editieren / zitieren --> Unities abgeben: Nur für White-Fox
|
White-Fox Mitglied E-Techniker
Beiträge: 24 Registriert: 23.01.2017
|
erstellt am: 27. Jan. 2017 17:22 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von joehz: Hi Fox,Da hat Dich Deine eigene Methode geschlagen! Bist Du sicher, dass der Punkt da hin gehört? Tschau, Joe
Danke...aber doch, ich denke das passt so. Vollständig heißt es: Code: With CATIA.Documents With .Item(.Count).Part.Bodies.Item("IC-Gehäuse").Sketches.Item("Skizze Schriftzug") .OpenEdition i = 2 Do Until i > .GeometricElements.Count CATIA.Documents.Item(CATIA.Documents.Count).Selection.Add (.GeometricElements.Item(i)) i = i + 1 Loop CATIA.StartCommand "Fix Together" .CloseEdition End With End With
@roccat: Oha...also sowas ähnliches wie die Sendkeys-Methode unter MS Office. Mit sowas arbeite ich auch nur sehr ungern, bzw eigentlich gar nicht. Ich werd das mal mit den Constraints probieren...scheint ja am Ende genau das zu sein, was ich machen will. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 27. Jan. 2017 17:38 <-- editieren / zitieren --> Unities abgeben: Nur für White-Fox
|
White-Fox Mitglied E-Techniker
Beiträge: 24 Registriert: 23.01.2017
|
erstellt am: 27. Jan. 2017 18:45 <-- editieren / zitieren --> Unities abgeben:
|
roccat Mitglied Konstrukteur
Beiträge: 172 Registriert: 19.02.2010 WinXP/Win7 Office XP/2007 Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR VB .Net 2010
|
erstellt am: 27. Jan. 2017 18:56 <-- editieren / zitieren --> Unities abgeben: Nur für White-Fox
Hallo Joehz, RefreshDisplay ist meiner Erfahrung nach auch nicht sicher. Schleifen, DoEvents und Sleep war auch alles nicht sicher. Das kann funktionieren, muß aber nicht. Das einzige was bei mir relativ Sicher funktioniert hat war der Zugriff von Extern. Das war damals ein VB.Net Programm welche einzelne Makros zeitlich versetzt aus einem Timer Aufgerufen hat. Das war aber reichlich aufwand. mfG Mario ------------------ Wenn das die Lösung sein soll, will ich mein Problem zurück !! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 27. Jan. 2017 20:02 <-- editieren / zitieren --> Unities abgeben: Nur für White-Fox
|
White-Fox Mitglied E-Techniker
Beiträge: 24 Registriert: 23.01.2017
|
erstellt am: 27. Jan. 2017 21:48 <-- editieren / zitieren --> Unities abgeben:
|