| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Makro in eigenem Button (2584 mal gelesen)
|
janaboland Mitglied
Beiträge: 5 Registriert: 15.09.2010 ACAD 2000 Expresstools Win XP
|
erstellt am: 15. Sep. 2010 21:45 <-- editieren / zitieren --> Unities abgeben:
Liebe Gemeinde, ich arbeite mit Autocad 2000 und brauche es "nur", um .dwg-Dateien für die Lasermaschine zu erstellen, in der Regel Abwicklungen aus Blechteilen. Diese Dateien haben 2 Layer, den Layer 0 mit der zu schneidenden Kontur und den Layer GRAVUR mit den Beschriftungen für die Blechteile, die ebenfalls per Laser erfolgt. Um diese Beschriftungen geht es. Die Schrift muß für die Laseranlage in Linien und Bögen umgewandelt werden. Dazu wird der erstellte Text zunächst mit dem Befehl "txtexp" aus den Expresstools aufgelöst in Polylinien, dann in einem 2.Schritt mit dem Befehl "_explode" weiter aufgelöst in Linien und Bögen. In einem 3.Schritt muß der Text nun auf den Layer GRAVUR gelegt werden und die Farbe gelb erhalten. Ich möchte diese 3 Schritte in einem Button (Makro) zusammenfassen, scheitere aber daran, daß der Text immer wieder neu ausgewählt werden muß. Ich hoffe auf Eure Hilfe. Herzliche Grüße Jana Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 15. Sep. 2010 21:52 <-- editieren / zitieren -->
Hi, herzlich willkommen bei CAD-de! >> scheitere aber daran, daß der Text immer wieder neu ausgewählt werden muß Um den Text zu wählen, kannst Du LISP verwenden: (SSGET "X" (list (cons 0 "TEXT"))) HTH, - alfred - ------------------ www.hollaus.at |
janaboland Mitglied
Beiträge: 5 Registriert: 15.09.2010 ACAD 2000 Expresstools Win XP
|
erstellt am: 15. Sep. 2010 22:11 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank Alfred, Leider komme ich damit nicht weiter. Mit LISP kenne ich mich garnicht aus und zudem ist der ausgewählte Text nach dem Schritt 1 (txtexp) kein Text mehr sondern 2D-Polylinien. Wenn ich die erforderlichen Befehle unten in die Befehlszeile eingebe, funktioniert ja alles bestens. Wenn ich jedoch diese Befehle zu einem Makro zusammenfasse, scheitert der Ablauf daran, daß das Makro jedesmal stoppt und ich die erforderlichen Elemente (der ursprüngliche Text) von Hand auswählen muß, das ist nicht der Sinn des Makros Viele Grüße Jana Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 15. Sep. 2010 22:17 <-- editieren / zitieren -->
Hi, >> daß das Makro jedesmal stoppt Solange wir das Makro nicht sehen, haben wir auch keine Chance zu erkennen, wieso 'es stoppt'. >> zudem ist der ausgewählte Text nach dem Schritt 1 (txtexp) kein Text
Na dann wärs mit der zuvor gestellten Frage 'scheitere aber daran, daß der Text immer wieder neu ausgewählt' auch anders zu formulieren gewesen. Wenn Du die Kontourlinien auf dem Layer GRAVUR haben willst, dann leg zuerst das AutoCAD-Textobjekt auf den Layer GRAVUR (Befehl _CHPROP), und dann TXTEXP starten, denn dann kommen auch die resultierenden Linien auf den Layer GRAVUR. - alfred - ------------------ www.hollaus.at |
janaboland Mitglied
Beiträge: 5 Registriert: 15.09.2010 ACAD 2000 Expresstools Win XP
|
erstellt am: 15. Sep. 2010 22:46 <-- editieren / zitieren --> Unities abgeben:
Hallo Alfred, Der Befehl "txtexp" aus den Expresstools legt leider die Linien, die er aus den Textobjekten erzeugt, immer auf den Layer 0, egal von welchem Layer der Text stammt. Mein Makro sieht folgendermaßen aus: "txtexp;_explode;_p;eigändr;_p;la;GRAVUR;f;vonlayer" "_p" soll die zuletzt gewählten Objekte wieder aktivieren. Das funktioniert mit der Eingabe in die Befehlszeile, leider nicht, wenns im Makro eingebaut ist. Viele Grüße Jana Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 15. Sep. 2010 23:02 <-- editieren / zitieren -->
Hi, ich hätte es probiert, aber nicht mit AutoCAD 2000. Ich lege am Anfang das Textobjekt auf den Layer X (sicherheitshalber kannst Du ja zwischenzeitlich auch den Layer X zum aktuellen Layer machen), wenn dann TXTEXP gestartet wird, dann kommen als Resultat die Outlines auf den Layer X. Probier das mal. Oder hast Du auf die Befehlszeile geschaut, da steht 'The line objects have been placed on layer 0', das steht zwar in der Befehlszeile, stimmt aber nicht (bei mir). Wenn doch, dann kannst Du ja alternativ vorher alle Elemente von Layer 0 auf Layer TEMP legen, dann TXTEXP starten und nachfolgend statt _P bei der Selektion gibst Du (ssget "X" (list (cons 8 "0"))) ==>das sammelt alles zusammen, was auf Layer 0 liegt. - alfred - ------------------ www.hollaus.at |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 Kinder, kauft Kämme! Es kommen lausige Zeiten.
|
erstellt am: 16. Sep. 2010 09:16 <-- editieren / zitieren --> Unities abgeben: Nur für janaboland
Moin, da war mal was und dank Alfred ist's mir auch wieder eingefallen, was: EXPLODE verhält sich im Makro ein wenig eigen So sollte es klappen: Code: -la;_m;"Gravur";;_change;\;_properties;_la;"Gravur";;-la;_freeze;"*";;txtexp;_all;;_.PSELECT;_all;;_.EXPLODE
Getestet allerdings in der 2011-er Version. Teste und berichte :)Folgend ein Zitat von cadffm Zitat: [...] eine Standardantwort zum Thema: Ursprung (_explode) verhält sich in jeglicher Art von 'SKripten' anders als sonst - dokumentiert in der Acadhilfe.Möglichkeiten: 1. Eines der Lisps aus dem Forum (_explode für jedes Element in einem Auswahlsatz) 2. man nutzt "PSELECT" -> dafür muß man jedoch sicherstellen das die Funktion geladen wurde, also muß das _Propertie-Fenster einmal offen gewesen sein in der akt.Datei. ^C^C_.PSELECT;_all;;_.EXPLODE 3. Man nutzt einfach den Befehl _Xplode mit der Option "Ursprung" -> dies sollte 1:1 dem _explode-Befehl entsprechen (nie "100%ig" getestet, aber lt.Hilfe..) und er funktioniert auch in 'Skripten' ^C^C_.PSELECT;_all;;_.XPLODE;_p;;_g;URSPRUNG {<- ich war zu faul den engl. Optionstitel herauszusuchen }
HTH ------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... System-Info | Dateianhänge | FAQ-ACAD | CAD.de-Hilfe | Sei eine Antilope Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ingo Struck Mitglied Holztechniker
Beiträge: 459 Registriert: 08.01.2010 Intel Core i7-3770 16 GB RAM AMD FirePro V3900 (FireGL V) Windows 7 Pro SP1 AutoCAD 2017 SP1 - deutsch
|
erstellt am: 16. Sep. 2010 09:19 <-- editieren / zitieren --> Unities abgeben: Nur für janaboland
|
janaboland Mitglied
Beiträge: 5 Registriert: 15.09.2010 ACAD 2000 Expresstools Win XP
|
erstellt am: 16. Sep. 2010 12:15 <-- editieren / zitieren --> Unities abgeben:
Liebe Runkelrübe, dein Vorschlag geht in die richtige Richtung, da ich aber mit ACAD 2000 arbeite, steht mir der Befehl pselect nicht zur Verfügung. Die ganze Schwierigkeit liegt einfach darin, daß sich manche Befehle im Makro anders verhalten als bei der direkten Eingabe, dazu gehört _explode. Der entscheidende Tipp war, stattdessen _xplode zu nehmen. Mein Makro läuft nun zufriedenstellend: ----------------------- txtexp;eigändr;_p;;la;"GRAVUR";f;vonlayer;;_xplode;_p;;;; ------------------------- Ausgangslage ist: Layer 0 und Layer GRAVUR vorhanden, Linien und Textobjekte auf Layer 0, 1.) Texte auswählen 2. Makro (Button) starten Danach sind die Texte zerlegt in einzelne Linien und befinden sich auf dem Layer GRAVUR. Viele Grüße Jana Boland [Diese Nachricht wurde von janaboland am 16. Sep. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
janaboland Mitglied
Beiträge: 5 Registriert: 15.09.2010 ACAD 2000 Expresstools Win XP
|
erstellt am: 16. Sep. 2010 12:26 <-- editieren / zitieren --> Unities abgeben:
Lieber Ingo, Vielen Dank für Deinen Vorschlag. Im Prinzip funktioniert das so, nur der _txtexp-Befehl muß vor der Layergeschichte erfolgen, weil dieser Befehl nach vollbrachter Tat die zu 2D-Polylinien gewandelten Texte wieder auf den Layer 0 legt. Den _explode-Befehl habe ich ersetzt durch _xplode, weil _explode im Makro nicht mit anschließendem _p funktioniert. Viele Grüße Jana Boland
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|