| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
Autor
|
Thema: QSELECT oder SUCHEN im Skript einbinden (1284 / mal gelesen)
|
beex Mitglied
Beiträge: 12 Registriert: 20.03.2012 Voll 2018 und 2020
|
erstellt am: 27. Mai. 2020 18:48 <-- editieren / zitieren --> Unities abgeben:
Hallo, wie immer fummel ich mich hier alleine durch und somit muss ich euch mal fragen da meine Internet-Suchen keinen Erfolg gebracht haben. Also ich würde gerne die Befehle "qselect" oder "suchen" in ein Skript einbauen.
Leider basieren meine Kenntnisse alle auf "selber machen" und somit hänge ich da. Mein genaues Problem ist, dass sich bei diesen Befehlen immer ein Popup Fenster öffnet und das kann ich nicht verhindern. Bei dem Befehl "bereinig" kann man das verhindern mit in dem man den Befehl "-bereinig" nutzt, aber das geht bei den o.g. Befehlen nicht.
Es gibt noch ein kleines Problem, noch habe ich keine Ahnung von LISP, so wirklich gar keine. Und ich kann keine kleinen Programme auf meinen Firmen Rechner ziehen. Sorry. Deswegen Arbeite ich mit Skripten so wie diesem hier: -bereinig;alles;*;nein; So und jetzt noch zum Hintergrund. Einmal möchte ich Texte verändern. Aus einer "DN 100 GG" soll eine "M DN 100 GG" werden und das für über 50 Dimensionen. Und ein anderer Grund ist, dass ich Text von einem Layer auf einen andren schieben will. Leider gibt es auf den Layern auch noch anderes Zeug. So jetzt bin ich gespannt ob euch etwas einfällt.
Grüsse aus der Hauptstatt
P.S. wenn einer ein cooles Lernvideo für LISP kennt. Ja da hätte ich auch ein offenes Ohr für.
------------------ Oni ni Kanabo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
cadffm Moderator 良い精神
Beiträge: 22275 Registriert: 03.06.2002 System: F1 und Google
|
erstellt am: 27. Mai. 2020 20:55 <-- editieren / zitieren --> Unities abgeben: Nur für beex
Hi, wenn man es jetzt genau nehmen möchte bedarf es etwas mehr, oberflächlich betrachtet wäre das aber schnell zu lernen. 1. Es gibt keinen Standardbefehl 2. Was meinst du mit Dimensionen und was für Objekte sind es wirklich? Eine DWG mit einem dieser Beispielobjekte wäre ein leichter Weg es anderen besser zu erklären. 3. Auswählen ist das eine, aber wie willst du es ändern? Suchen&Ersetzen gibt es auch nicht als Befehlszeilenbefehl. Zeige erst einmal was es wirklich ist, dann wirst du Hilfe bei der Lösung bekommen.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
spider_dd Mitglied
Beiträge: 1144 Registriert: 27.11.2003 Win 10Pro Intel(R) Core(TM) i7-7700 NVIDIA Quadro P1000 ACAD, Civil-3D 2018
|
erstellt am: 28. Mai. 2020 08:41 <-- editieren / zitieren --> Unities abgeben: Nur für beex
Hallo beex, um solche kleinen Aufgaben auch in Zukunft schnell und flexibel zu lösen, wirst Du um Lisp nicht drumrum kommen. Und glaube mir, das erleichtert die Sache ungemein. Als Einstieg sie Dir dieses hier an's Herz gelegt. Aber auch die AutoLisp Hilfe von Acad ist zum nachschlagend der einzelnen Befehle ganz gut. Zur Auswahl von Elementen mit verschiedensten Kriterien gibt es dann z. B. den (ssget ...) Befehl. Ansonsten sieh dir mal den Befehl FILTER an. Gruß Thomas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
beex Mitglied
Beiträge: 12 Registriert: 20.03.2012 Voll 2018 und 2020
|
erstellt am: 29. Mai. 2020 10:10 <-- editieren / zitieren --> Unities abgeben:
Hi @cadffm Also es geht um Rohr Dimensionen (DN=Nenndurchmesser). Ich habe verschiedene Texte die alle auf einen Layer liegen z.B. 100 GG 225 GGG 32 PE 32,52 ST 50,36 Manche sind Nenndurchmesser und vor diese will ich etwas davor schreiben. T 100 GG T 225 GGG T 32 PE 32,52 ST 50,36 Ich habe jetzt auch mal eine DWG hochgeladen (ich hoffe es hat geklappt) Zitat: "Suchen&Ersetzen gibt es auch nicht als Befehlszeilenbefehl." genau das wäre aber mein Traum. @spider_dd Danke für den Link. Den Befehl Filter kenne ich noch nicht so genau. Aber auch dieser wird in einem Popup Fenster geöffne und somit bekomme ich ihn nicht in mein Skript. Ich habe jetzt ein DWG angehangen. Das ober Beispiel zeigt die Texte die ich bekomme und wo ich hin muss.
Das untere Beispiel zeigt mein zweites Problem. Ich habe einen Layer mit unterschiedlichsten Objekten und ich muss die Objekte alle trennen und auf unterschiedliche Layer packen.
Bis jetzt ist das eine händische Arbeit mit der "Schnellauswahl" Hier ist noch ein Beispiel wie ich meine Skripte schreibe. Die Skripte sind teilweise bis zu 5 DIN A4 Seiten lang. ^C^C-layzusf;name;M_H_T;name;M_S_T;name; T_H_T;name;T_V_T;;name;0;ja;-layer;frieren;*; tauen;0;;skaltext;alle;;links;0.45;-layer;tauen;*;; LG Christoph aus der Hauptstadt
------------------ Oni ni Kanabo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
spider_dd Mitglied
Beiträge: 1144 Registriert: 27.11.2003 Win 10Pro Intel(R) Core(TM) i7-7700 NVIDIA Quadro P1000 ACAD, Civil-3D 2018
|
erstellt am: 29. Mai. 2020 13:19 <-- editieren / zitieren --> Unities abgeben: Nur für beex
Hallo Christoph, Lisp wäre Dir da echt hilfreich. Hier mal was zum "anfüttern" Code:
; praefix.lsp ; Präfix vor Text setzen ; erstellt 10/06 Th.Jakob ; ; (defun c raefix() ; ; (princ "PRAEFIX - Präfix vor Texte setzen") (print ) (initget 1) ; keine Leereingaben (setq prae_txt (getstring "Präfix: ")) (setq tl (ssget '((0 . "TEXT")))) (setq anz (sslength tl)) (setq x 0) (while (< x anz) (setq ct (ssname tl x)) (setq ctl (entget ct)) ; ; alten Text holen (setq alt_txt (cdr (assoc 1 ctl))) (setq neu_txt (strcat prae_txt alt_txt)) ; textinhalt setzen auf neu_txt (setq ctl (subst (cons 1 neu_txt) (assoc 1 ctl) ctl))
(entmod ctl) (entupd ct) (setq x (1+ x)) ) )
Damit kannst Du einen beliebigen Präfix vor eine beliebige Anzahl ausgewählter Texte setzen. Probiere es aus und arbeite es mal durch, dann kannst Du gewiss auch schnell andere Aufgaben lösen (Layer ändern, Farbe ändern, ...) Bei Fragen einfach fragen! Wie Du eine Lisp speicherst und lädst weiß Du? Ansonsten hier nachlesen. Gruß Thomas ps. trotz Code smilies gemacht. Das oben wo :P ist muss heißen c: praefix (ohne Leerzeichen zwischen : und p)
[Diese Nachricht wurde von spider_dd am 29. Mai. 2020 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
beex Mitglied
Beiträge: 12 Registriert: 20.03.2012 Voll 2018 und 2020
|
erstellt am: 02. Jun. 2020 17:15 <-- editieren / zitieren --> Unities abgeben:
@Thomas Danke, ich habe es nach einigen Schwierigkeiten echt zum laufen gebracht. Und du hast Recht, es macht Lust auf mehr und ich würde am liebsten die nächsten 14 Tage rund um die Uhr mich damit beschäftigen. Das würde die Arbeit für mich und meine Kollegen sicher einfacher machen. Aber ob der Chef das auch so sieht.
Danke
------------------ Oni ni Kanabo Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
spider_dd Mitglied
Beiträge: 1144 Registriert: 27.11.2003 Win 10Pro Intel(R) Core(TM) i7-7700 NVIDIA Quadro P1000 ACAD, Civil-3D 2018
|
erstellt am: 03. Jun. 2020 09:17 <-- editieren / zitieren --> Unities abgeben: Nur für beex
Zitat: Original erstellt von beex: Das würde die Arbeit für mich und meine Kollegen sicher einfacher machen. Aber ob der Chef das auch so sieht.
Du musst ihm nur klar machen, das jede Stunde, die Du dort reinsteckst, im Laufe der Zeit durch schnelleres abarbeiten von ständigen Abläufen vielfach wieder zurück kommt. Mann kann ja mit kleinen Problemen anfangen, komplexer wird es dann von alleine mit der Zeit. Gruß Thomas
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |