| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: Text aus Lisp - Ribbon Texteditor (1916 mal gelesen)
|
kamehama Mitglied techn. Angestellter
Beiträge: 81 Registriert: 07.12.2004
|
erstellt am: 16. Dez. 2009 14:10 <-- editieren / zitieren --> Unities abgeben:
Hallo Möchte einen Text mittels Lisp erzeugen, um die Texthöhe und Stil vorzudefinieren. Den Text selbst soll der User dann wie gewohnt eintippen und dabei soll die Multifunktionsleiste auf den Texteditor umschalten. Soweit schaffe ich es mit folgender Befehlsreihenfolge: (initdia "mtext") (command "_mtext" pause "_s" "textstil" "_h" hoehe) Nun möchte ich jedoch auch, dass ich für die Erstellung des Textes nicht beide Eckpunkte antippen muss, sondern nur den oberen Rechten Punkt antippe und dass ich anschliessend den Text eintippen kann. Dies hatte ich in Autocad 2009 folgendermassen gelöst: (initdia "mtext") (command "_mtext" pause "_s" "textstil" "_h" hoehe "" "_w" "") Dabei wird nun leider, ab Autocad 2010, das initdia ignoriert, und die Multifunktionsleiste bleibt auf dem Menü Start. Ich habe leider keine Idee wie ich diese Befehlsreihenfolge anders realisieren könnte. Möchte auch den Aufruf über Lisp belassen, weil anschliessend noch eine Anpassung bzgl. Layer ebenfalls mittels Lisp durchgeführt wird. Bitt um Anregungen wie ich mein Problem lösen kann. mfg Kamehama Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 16. Dez. 2009 15:26 <-- editieren / zitieren --> Unities abgeben: Nur für kamehama
|
kamehama Mitglied techn. Angestellter
Beiträge: 81 Registriert: 07.12.2004
|
erstellt am: 16. Dez. 2009 15:39 <-- editieren / zitieren --> Unities abgeben:
Sorry Habe beim verallgemeinern vom Textstil und Höhe leider einen kleinen Fehler eingebaut. So sollte es klappen. Allerdings mit den vorhin beschriebenen Fehlern. (setq textstil "standard") (setq hoehe "5") (initdia) (command "_mtext" pause "_s" textstil "_h" hoehe "_w" "")
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 16. Dez. 2009 15:42 <-- editieren / zitieren --> Unities abgeben: Nur für kamehama
|
kamehama Mitglied techn. Angestellter
Beiträge: 81 Registriert: 07.12.2004
|
erstellt am: 16. Dez. 2009 15:45 <-- editieren / zitieren --> Unities abgeben:
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 16. Dez. 2009 16:23 <-- editieren / zitieren --> Unities abgeben: Nur für kamehama
|
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 Alles
|
erstellt am: 16. Dez. 2009 16:26 <-- editieren / zitieren --> Unities abgeben: Nur für kamehama
|
kamehama Mitglied techn. Angestellter
Beiträge: 81 Registriert: 07.12.2004
|
erstellt am: 16. Dez. 2009 16:31 <-- editieren / zitieren --> Unities abgeben:
Danke für euere Bemühungen Ich hätte gerne dass die Multifunktionsleiste (Ribbon) auf die, sonst verborgene, Registerkarte "Texteditor" umschaltet. Ich kann mir auch vorstellen, dies manuell über Lisp oder VBA zu machen, allerdings habe ich da auch keine Ahnung wie ich dies machen könnte. @CADium Leider auch dasselbe Ergebnis wie mit meinem Code. @cadffm Genau das ist mein Anliegen, Danke
[Diese Nachricht wurde von kamehama am 16. Dez. 2009 editiert.]
[Diese Nachricht wurde von kamehama am 16. Dez. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3336 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 17. Dez. 2009 11:36 <-- editieren / zitieren --> Unities abgeben: Nur für kamehama
Hi, ich habe mal kurz nachgeschaut. Über LISP oder ActiveX scheint es keine dokumentierte Möglichkeit zu geben, auf das Ribbon zuzugreifen. Was bleibt wären zwei Workarounds: 1. Vorher die Systemvariable MTEXTTOOLBAR auf 1 setzen. Dadurch wir der altbekannte Werkzeugkasten eingeblendet. 2. mit der Methode SendCommand arbeiten. Und damit's nicht zu unübersichtlich wird und sicherer läuft, sollten die verwendeten Variablen im Vorfeld gesetzt und abgefragt sein. So oder ähnlich:
Code:
(setvar "TEXTSTYLE" "Standard"); Horror (setq hoehe 5) (setq P (getpoint "\nunten Links:")) (vlax-invoke-method (vlax-get-property (vlax-get-acad-object) 'ActiveDocument) 'SendCommand "_mtext !P _h !hoehe (mapcar '+ P (list (* 5 hoehe) hoehe 0)) " )
Gruß CADchup
------------------ CADmaro.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
kamehama Mitglied techn. Angestellter
Beiträge: 81 Registriert: 07.12.2004
|
erstellt am: 17. Dez. 2009 13:03 <-- editieren / zitieren --> Unities abgeben:
Danke, das ist genau das was ich erreichen wollte. Nun habe ich nur noch das Problem, dass die nachfolgenden Befehle in meiner Funtion leider nicht mehr ausgeführt werden, weil der Befehl nach meiner Texteingabe abgebrochen wird. mfg Kamehama Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Claudio Mitglied Architekt
Beiträge: 334 Registriert: 13.04.2002 ACA, Revit, MAX 2020
|
erstellt am: 27. Dez. 2009 14:55 <-- editieren / zitieren --> Unities abgeben: Nur für kamehama
Hallo Kamehama! "Ich hätte gerne dass die Multifunktionsleiste (Ribbon) auf die, sonst verborgene, Registerkarte "Texteditor" umschaltet." -> Das ist nur über die API möglich -> im Anhang stelle ich Dir die RIB_Tabact.dll rein, mit der es möglich ist, einen Tab direkt über den Namen zu aktivieren (auch verborgene) ->z.b. Befehl: (Ribtabact "Texteditor") - mit Klammern, Tabname in Anführungszeichen. Der Befehl: Ribtablist listet alle im Ribbon vorhandenen Tabs auf. Der C#-Quellcode ist beigefügt und Du kannst ihn, wenn notwendig, an Deine Bedürfnisse anpassen. RIB_Tabact.dll mit Befehl: netload laden, dann stehen die 2 Befehle zur verfügung. (Benützung auf eigene Gefahr) Gruß Claudio
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |