| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Text in Autocad (706 mal gelesen)
|
JoergAD Mitglied
Beiträge: 43 Registriert: 07.03.2007
|
erstellt am: 07. Mrz. 2007 13:00 <-- editieren / zitieren --> Unities abgeben:
Hallo, Leute. Ich habe ein Problem mit VBA in Autocad. Unter der Version 2004 ging es noch, dass man mittels sendcommand auf die Befehlszeile den Befehl TEXT senden konnte, und danach mittels SendCommand den Inhalt des Textes. Jetzt haben wir autocad 2007. Wenn man hier mittels SendCommand textinhalt im Befehl text schreiben will, so wird dieser nicht übernommen. Der Befehl bleibt einfach an der Stelle stehen, wo man den Text eingeben soll. Was mache ich falsch? Über jede Hilfe wäre ich sehr erfreut. Vielen Dank im voraus, JoergAD! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1357 Registriert: 24.07.2002 AutoCAD ACA 2018 Solidworks 2016 Sp5 Enterprise PDM 2016 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell T3620 Intel Core i7-7700K 16 GB Arbeitsspeicher 2x Samsung S24C650 Dell M4800
|
erstellt am: 07. Mrz. 2007 14:30 <-- editieren / zitieren --> Unities abgeben: Nur für JoergAD
Hi und Willkommen, Wie sieht denn euer Code-Ausschnitt bisher aus?! Normalerweise solltest du ein SendCommand mit dem Befehl abschicken können und dann den Text per 2. SendCommand. Gruß, Carsten Edit: Warum nutzt ihr denn denn nicht die Funktion "AddText" von VBA. Sendcommand sollte man meiner Meinung nach immer nur dann einsetzen, wenn es nicht anders geht. [Diese Nachricht wurde von Carsten1210 am 07. Mrz. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JoergAD Mitglied
Beiträge: 43 Registriert: 07.03.2007
|
erstellt am: 07. Mrz. 2007 15:00 <-- editieren / zitieren --> Unities abgeben:
Hallo Carsten, vielen Dank fpr Deine Antwort. Nun zu deinem Statement: Ich benutze SendCommand, weil das ganze ein Programmkomplex ist schon vor einiger Zeit so programmiert wurde und unter CAD 2004 immer funktioniert hat. Es ist ein Programm was Höhenquoten in Zeichnungen in Bezug auf andere Höhenquoten selbständig berechnet. Nun klappt es nicht mehr in 2007, weil es an der Stelle immer hängen bleibt, wo der Text eingegeben werden soll. Das alles umzuschreiben ist aufwendig, deshalb der Wunsch SendCommand beizubehalten. Aber es geht auch schon ohne den ganzen Programmkomplex nicht.
Beispiel:
Code: Public Sub testung() ThisDrawing.SendCommand "text 0,0 " ThisDrawing.SendCommand "blabla" End Sub
Wenn man das kleine obrige Programm ausführt passiert folgendes - text wird in Befehlszeile geschrieben - ein Return für Befehlseingabe - 0,0 wird für die Position gesendet und ein Leerzeichen für Return - ein Leerzeichen für Return, damit die Vorgabe 2,5 Schrifthöhe übernommen wird - ein Leerzeichen für weiteres Return um den Drehwinkel von 0 zu übernehmen. Und jetzt kommt es. Als nächstes sollte BlaBla im Text stehen. Tut es aber nicht. Anstatt wartet der Eingabecourser auf die Eingabe des Textes. Gibt man diesen von Hand ein und bestätigt mit return ist der Befehl beendet. In der Befehlszeile steht wieder Befehl, und erst JETZT steht dort BlaBla. SendCommand sendet nicht an die Texteingabe selber. Vielleicht gibt es einen Trick, einen Parameter, oder einen andern ähnlichen Befehl der den Text an die richtige Stelle sendet. (SendKeys) funzt auch nicht, habe ich schon probiert. Was ist zu machen? Danke, JörgAD
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 ACAD 2008 Mechanical
|
erstellt am: 07. Mrz. 2007 15:04 <-- editieren / zitieren --> Unities abgeben: Nur für JoergAD
wird vielleicht noch nach der Texthöhe gefragt, weil in gerade aktuellen Textstil die Texthöhe mit 0 vorgegeben wird? ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JoergAD Mitglied
Beiträge: 43 Registriert: 07.03.2007
|
erstellt am: 07. Mrz. 2007 15:09 <-- editieren / zitieren --> Unities abgeben:
Nein, das ist definitiv nicht das Problem. Der Courser wartet ja an der Stelle und blinkt, und wartet darauf, dass man den Text per Hand eingibt, obwohl noch ein SendCommand wartet abgeschossen zu werden. CU, JörgAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JoergAD Mitglied
Beiträge: 43 Registriert: 07.03.2007
|
erstellt am: 07. Mrz. 2007 15:11 <-- editieren / zitieren --> Unities abgeben:
Egal welche Eingabe per VBA kommt. Autocad wartet bis der text eingegeben wird. Auch ein einfaches Return, was ja keinen Text erzeugen würde, aber den Programmablauf weiter führt (entweder als Leerzeichen, oder codiert als vbCr) nimmt er nicht an. Was kann ich machen? CU, JörgAD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13508 Registriert: 30.11.2003 ACAD 2008 Mechanical
|
erstellt am: 07. Mrz. 2007 15:35 <-- editieren / zitieren --> Unities abgeben: Nur für JoergAD
probier's mal mit Public Sub testung() ThisDrawing.SendCommand "-text 0,0 " ThisDrawing.SendCommand "blabla" End Sub ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JoergAD Mitglied
Beiträge: 43 Registriert: 07.03.2007
|
erstellt am: 07. Mrz. 2007 15:45 <-- editieren / zitieren --> Unities abgeben:
Volltreffer CADmium!!! Das wars! So ein unscheinbarer kleiner Strich. Vielen Dank! Mensch wer denkt denn auch daran, dass der Textbefehl neuderdings zu den Befehlen mit Dialogfenstern gehört, wo doch gar kein richtiges Dialogfenster vorhanden ist. Ich meine, wer denkt schon daran, wenn man nicht gerade CADmium heisst. Danke nochmal. Jörg AD Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |