| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Turbocad |
| |
| TURBOCAD TRAINING CENTER IN DER UMWELTTECHNIK | Projekt PAMOS und CAMOS , ein Anwenderbericht
|
Autor
|
Thema: Textwinkel ändern (1530 mal gelesen)
|
Johannes G. Mitglied
Beiträge: 89 Registriert: 06.04.2004 Tc 10.prof
|
erstellt am: 15. Okt. 2004 11:55 <-- editieren / zitieren --> Unities abgeben:
Hallo, liebe Turbocad-Gemeinde Frage: Kennt jemand eine mögliche den Winkel von mehreren ausgewählten Texten gleichzeitig zu ändern? Problem: Ich importiere Zeichnungen aus anderen Anwendungen die eine Vielzahl von Texten beinhalten (z.B. Punktnummern aus Vermessungsplänen). Beim Einpassen und Drehen dieses Planes werden die jeweiligen Texte natürlich mitgedreht so dass die Texte dann nicht mehr horizontal angeordnet sind. Es besteht natürlich die Möglichkeit jeden Text einzeln wieder in die Horizontallage zu drehen. Bei zum Teil mehreren 100 Einzeltexten ist dies jedoch sehr mühsam. Daher die Frage ob es eine Möglichkeit gibt, den Textwinkel von mehreren ausgewählten Texten nachträglich und gleichzeitig zu ändern Hinweis: Beim Erstellen von neuem Text kann man den Textwinkel ja auch einstellen. Gruss Johannes G.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Satti Mitglied Dipl.-Ing.
Beiträge: 950 Registriert: 01.08.2003
|
erstellt am: 16. Okt. 2004 17:53 <-- editieren / zitieren --> Unities abgeben: Nur für Johannes G.
Hallo Johannes, ich habe mal getestet ob es irgend eine Lösung gibt (V10 Pro), aber leider habe ich nichts Elegantes gefunden. Das Drehen um 90° um den Objekt-Bezugspunkt für mehrere Objekte gleichzeitig ist mir nicht gelungen. Mit einem VBA-Makro könnte es aber gehen. Viele Grüße Frank
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
kd Mitglied Lehrkraft
Beiträge: 40 Registriert: 06.06.2003
|
erstellt am: 17. Okt. 2004 16:31 <-- editieren / zitieren --> Unities abgeben: Nur für Johannes G.
Hallo Johannes. Wahrscheinlich sind Deine Textfelder um unterschiedliche Winkel gedreht. Dann nützt Dir meine Lösung wahrscheinlich nicht allzu viel. Ich habe keine Möglichkeit gefunden, Textfelder, so zusagen in "Nullstellung", zurück zu drehen. Das Makro geht davon aus, dass Du alle ausgewählten Textfelder um den gleichen Winkel drehst. Du müßtest also messen, um wie viel Grad eine von Dir ausgewählte Anzahl Textfelder jeweils gedreht werden soll. Das Makro dreht nur Textfelder, so dass ein zufällig vielleicht mitmarkiertes anderes Zeichnungsobjekt nicht auch gedreht wird. Die Textfelder dürfen nicht zu einer Objektgruppe gruppiert sein, da sie dann nicht mehr als Textfelder erkannt werden. Code einfach in ein Standard-Modul einfügen und testen. Schönen Sonntag noch, kd. 'KD-2004-10-17 'TC8.2Pro 'Alle markierten Textfelder im Papierbereich 'werden um den gleichen bestimmten Winkel gedreht. 'Drehwinkel läßt sich in Const "ang" einstellen '("10" in die benötigte Altgradangabe ändern.) Option Explicit Sub TexteDrehen() Dim App As Application Dim ActDr As Drawing Dim ObjSel As Selection Dim Gr As Graphic Dim anz As Integer, I As Integer Dim GrSelTyp As String Const ang = 3.14159265359 * 10 / 180 '<<< Dreht um 10° On Error GoTo F Set App = IMSIGX.Application Set ActDr = App.ActiveDrawing Set ObjSel = ActDr.Selection 'Nur im Papierbereich: If ActDr.Views(0).SpaceMode <> imsiPaperSpace Then GoTo F anz = ObjSel.Count If anz = 0 Then GoTo F 'Nichts markiert With Selection For I = 0 To anz - 1 Set Gr = .Item(I) GrSelTyp = Trim(UCase(Gr.Type)) 'Drehen der einzelnen Textfelder: If GrSelTyp = "TEXT" Then Gr.RotateAxis (ang) Next End With ENDE: 'Erst hier werden Änderungen sichtbar: ActDr.Views(0).Refresh Set App = Nothing Set ActDr = Nothing Set ObjSel = Nothing Set Gr = Nothing Exit Sub F: Beep GoTo ENDE End Sub '#################### END OF CODE #############################
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
kd Mitglied Lehrkraft
Beiträge: 40 Registriert: 06.06.2003
|
erstellt am: 17. Okt. 2004 16:32 <-- editieren / zitieren --> Unities abgeben: Nur für Johannes G.
Hallo Johannes. Wahrscheinlich sind Deine Textfelder um unterschiedliche Winkel gedreht. Dann nützt Dir meine Lösung wahrscheinlich nicht allzu viel. Ich habe keine Möglichkeit gefunden, Textfelder, so zusagen in "Nullstellung", zurück zu drehen. Das Makro geht davon aus, dass Du alle ausgewählten Textfelder um den gleichen Winkel drehst. Du müßtest also messen, um wie viel Grad eine von Dir ausgewählte Anzahl Textfelder jeweils gedreht werden soll. Das Makro dreht nur Textfelder, so dass ein zufällig vielleicht mitmarkiertes anderes Zeichnungsobjekt nicht auch gedreht wird. Die Textfelder dürfen nicht zu einer Objektgruppe gruppiert sein, da sie dann nicht mehr als Textfelder erkannt werden. Code einfach in ein Standard-Modul einfügen und testen. Schönen Sonntag noch, kd. 'KD-2004-10-17 'TC8.2Pro 'Alle markierten Textfelder im Papierbereich 'werden um den gleichen bestimmten Winkel gedreht. 'Drehwinkel läßt sich in Const "ang" einstellen '("10" in die benötigte Altgradangabe ändern.) Option Explicit Sub TexteDrehen() Dim App As Application Dim ActDr As Drawing Dim ObjSel As Selection Dim Gr As Graphic Dim anz As Integer, I As Integer Dim GrSelTyp As String Const ang = 3.14159265359 * 10 / 180 '<<< Dreht um 10° On Error GoTo F Set App = IMSIGX.Application Set ActDr = App.ActiveDrawing Set ObjSel = ActDr.Selection 'Nur im Papierbereich: If ActDr.Views(0).SpaceMode <> imsiPaperSpace Then GoTo F anz = ObjSel.Count If anz = 0 Then GoTo F 'Nichts markiert With Selection For I = 0 To anz - 1 Set Gr = .Item(I) GrSelTyp = Trim(UCase(Gr.Type)) 'Drehen der einzelnen Textfelder: If GrSelTyp = "TEXT" Then Gr.RotateAxis (ang) Next End With ENDE: 'Erst hier werden Änderungen sichtbar: ActDr.Views(0).Refresh Set App = Nothing Set ActDr = Nothing Set ObjSel = Nothing Set Gr = Nothing Exit Sub F: Beep GoTo ENDE End Sub '#################### END OF CODE #############################
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Johannes G. Mitglied
Beiträge: 89 Registriert: 06.04.2004 Tc 10.prof
|
erstellt am: 20. Okt. 2004 08:46 <-- editieren / zitieren --> Unities abgeben:
Hallo KD vielen Dank für die schnelle Hilfe. Allerdings hatte ich bisher noch keinen Erfolg mit dem Makro. Vermutlich liegt es jedoch daran dass ich bisher noch sehr wenig mit Makros gearbeitet habe. Werde jedoch weiter versuchen. Gruss Johannes G. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
kd Mitglied Lehrkraft
Beiträge: 40 Registriert: 06.06.2003
|
erstellt am: 20. Okt. 2004 13:28 <-- editieren / zitieren --> Unities abgeben: Nur für Johannes G.
|
Johannes G. Mitglied
Beiträge: 89 Registriert: 06.04.2004 Tc 10.prof
|
erstellt am: 20. Okt. 2004 17:50 <-- editieren / zitieren --> Unities abgeben:
TC 10.prof Hallo KD, der Makro funktioniert mittlerweile. Das Problem lag darin dass ich zunächst im Modellbereich gearbeitet hatte und die markierten Texte nicht gedreht wurden. Im Papierbereich erstellte und markierte Texte wurden gedreht. Da ich die Funktion jedoch im Modellbereich benötige habe ich die Zeile 'Nur im Papierbereich: If ActDr.Views(0).SpaceMode <> imsiPaperSpace Then GoTo F gelöscht und der Makro funktioniert jetzt auch im Modellbereich. Nochmals vielen Dank! Durch die Verwendung des Makros spare ich mir sehr viel Arbeit. Dennoch eine Frage: Hatte es eine besondere Bedeutung dass der Makro nur im Papierbereich funktionierte. Gruss Johannes G.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
kd Mitglied Lehrkraft
Beiträge: 40 Registriert: 06.06.2003
|
erstellt am: 20. Okt. 2004 18:58 <-- editieren / zitieren --> Unities abgeben: Nur für Johannes G.
Hallo Johannes. Prima, dass Du das hinbekommen hast. Im Papierbereich war ich mir sicher, dass die Drehung auf diese Art klappt (im Modellbereich hat man es ja mit 3 Achsen zu tun...). Noch schönen Abend, kd. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |